Saya memiliki 8 mesin SQL Server 2008 R2, masing-masing hosting 1 database. Setiap basis data memiliki struktur dan skema tabel yang identik, dan data yang sepenuhnya unik.
Saya ingin membuat server pelaporan (mungkin 2008 atau 2012), yang mengkonsolidasikan baris dari tabel yang dipilih di 8 server sumber menjadi satu contoh tunggal dari tabel tersebut di server pelaporan. Ini adalah replikasi satu arah (tidak ada perubahan akan dilakukan ke server pelaporan). Saya perlu mereplikasi perubahan dari database sumber dengan latensi yang relatif rendah (katakanlah 20-30 detik).
Selain itu, saya ingin menemukan metode untuk mencapai ini dengan dampak yang kecil ke server sumber seperti praktis. Agen pihak ketiga, pemicu, atau mod skema ke server tersebut sulit di lingkungan saya.
Pertanyaan saya:
- Apa arsitektur dan teknologi yang menjanjikan untuk mencapai tujuan ini?
- Saya telah melihat Replikasi SQL Server Merge, tapi saya khawatir tentang latensi. Apakah ini teknologi yang tepat untuk tujuan ini?
- Apakah ada banyak-ke-satu arsitektur untuk replikasi transaksional?
- Haruskah saya melihat replikasi 1-ke-1 menjadi 8 database di server pelaporan saya, diikuti oleh beberapa fungsi gabungan kustom (replikasi 2 langkah)?
Terima kasih, John
sumber
Jawaban:
Anda dapat mencapai ini dengan replikasi Transaksional . Di bawah ini adalah bagaimana Anda dapat melakukannya.
Catatan : Anda harus sedikit mengubah skema tabel Anda untuk mencapai hal ini karena Anda harus secara unik mengidentifikasi baris ketika Anda mereplikasi ke pelanggan. Sebagai prasyarat T-Rep Anda harus memiliki tabel dengan PK yang ditentukan.
Di bawah ini adalah tabel sampel Anda di server Penerbit yang ada di semua 8 server yang Anda ingin gabungkan baris pada server pelaporan:
Di server pelanggan , Anda perlu membuat tabel yang sama tetapi dengan PK yang berbeda untuk secara unik mengidentifikasi baris di pelanggan (tidak melakukannya, T-Rep akan gagal dengan pelanggaran PK - saya berasumsi bahwa Anda tidak dapat mengubah struktur PK pada tinggal PRODUCTION daripada lebih baik untuk memodifikasi di pelanggan)
Skrip di bawah ini akan membantu Anda mengatur T-Rep, cukup ganti nama databasame, nama server tujuan bersama dengan nama objek.
Beberapa hal yang perlu diperhatikan:
Di sp_addsubscription pastikan itu
@sync_type = N'automatic'
Dan properti artikel harus diatur ke:
Jadi akhirnya, Anda dapat membuat baris terkonsolidasi dari semua (dalam server 3 kasus saya) seperti di bawah ini:
Jadi dalam ringkasan,
Buat tabel pada Pelanggan yang memiliki PK disertakan sebagai ServerName.
Buat replikasi tabel dengan @sync_type = N'automatic 'dan properti Article disetel ke "Simpan objek yang ada tidak berubah".
Jalankan agen snapshot.
Periksa data konsolidasi pada pelanggan.
sumber