Replikasi Penggabungan

Berlaku untuk:SQL Server

Menggabungkan replikasi, seperti replikasi transaksional, biasanya dimulai dengan rekam jepret objek dan data database publikasi. Perubahan data berikutnya dan modifikasi skema yang dilakukan di Penerbit dan Pelanggan dilacak dengan pemicu. Pelanggan menyinkronkan dengan Penerbit saat tersambung ke jaringan dan bertukar semua baris yang telah berubah antara Penerbit dan Pelanggan sejak terakhir kali sinkronisasi terjadi.

Replikasi penggabungan biasanya digunakan di lingkungan server-ke-klien. Replikasi penggabungan sesuai dalam salah satu situasi berikut:

  • Beberapa Pelanggan mungkin memperbarui data yang sama di berbagai waktu dan menyebarluaskan perubahan tersebut ke Penerbit dan ke Pelanggan lain.

  • Pelanggan perlu menerima data, membuat perubahan secara offline, dan kemudian menyinkronkan perubahan dengan Penerbit dan Pelanggan lainnya.

  • Setiap Pelanggan memerlukan partisi data yang berbeda.

  • Konflik mungkin terjadi dan, ketika terjadi, Anda memerlukan kemampuan untuk mendeteksi dan mengatasinya.

  • Aplikasi ini memerlukan perubahan data bersih daripada akses ke status data perantara. Misalnya, jika baris berubah lima kali pada Pelanggan sebelum disinkronkan dengan Penerbit, baris hanya akan berubah sekali di Penerbit untuk mencerminkan perubahan data bersih (yaitu, nilai kelima).

Replikasi penggabungan memungkinkan berbagai situs untuk bekerja secara otonom dan kemudian menggabungkan pembaruan menjadi satu hasil yang seragam. Karena pembaruan dilakukan pada lebih dari satu simpul, data yang sama mungkin telah diperbarui oleh Penerbit dan oleh lebih dari satu Pelanggan. Oleh karena itu, konflik dapat terjadi ketika pembaruan digabungkan dan replikasi penggabungan menyediakan sejumlah cara untuk menangani konflik.

Replikasi penggabungan diimplementasikan oleh SQL Server Snapshot Agent dan Merge Agent. Jika publikasi tidak difilter atau menggunakan filter statis, Agen Rekam Jepret membuat satu rekam jepret. Jika publikasi menggunakan filter berparameter, Agen Rekam Jepret membuat rekam jepret untuk setiap partisi data. Agen Penggabungan menerapkan rekam jepret awal kepada Pelanggan. Ini juga menggabungkan perubahan data bertahap yang terjadi di Penerbit atau Pelanggan setelah rekam jepret awal dibuat, dan mendeteksi dan menyelesaikan konflik apa pun sesuai dengan aturan yang Anda konfigurasi.

Untuk melacak perubahan, replikasi penggabungan (dan replikasi transaksional dengan langganan pembaruan antrean) harus dapat mengidentifikasi setiap baris secara unik di setiap tabel yang diterbitkan. Untuk menyelesaikan replikasi penggabungan ini menambahkan rowguid kolom ke setiap tabel, kecuali tabel sudah memiliki kolom pengidentifikasi unik tipe data dengan kumpulan properti ROWGUIDCOL (dalam hal ini kolom ini digunakan). Jika tabel dihilangkan dari publikasi, kolom rowguid dihapus; jika kolom yang ada digunakan untuk pelacakan, kolom tidak dihapus. Filter tidak boleh menyertakan rowguidcol yang digunakan oleh replikasi untuk mengidentifikasi baris. Fungsi newid() disediakan sebagai default untuk kolom rowguid , namun pelanggan dapat memberikan panduan untuk setiap baris jika diperlukan. Namun, jangan berikan nilai 000000000-0000-0000-0000-00000000000000.

Diagram berikut menunjukkan komponen yang digunakan dalam replikasi penggabungan.

Merge replication components and data flow