Bagikan melalui


Deteksi dan Resolusi Konflik Replikasi Gabungan Tingkat Lanjut

Ketika Penerbit dan Pelanggan terhubung dan sinkronisasi terjadi, Agen Penggabungan mendeteksi apakah ada konflik. Jika konflik terdeteksi, Agen Penggabungan menggunakan penyelesai konflik (yang ditentukan saat artikel ditambahkan ke publikasi) untuk menentukan data mana yang diterima dan disebarluaskan ke situs lain.

Catatan

Meskipun Pelanggan menyinkronkan dengan Penerbit, konflik biasanya terjadi di antara pembaruan yang dibuat pada Pelanggan yang berbeda, alih-alih pembaruan dilakukan pada Pelanggan dan di Penerbit.

Perilaku deteksi dan resolusi konflik tergantung pada opsi berikut, yang dijelaskan dalam topik ini:

  • Baik Anda menentukan pelacakan tingkat kolom, pelacakan tingkat baris, atau pelacakan tingkat rekaman logis.

  • Apakah Anda menentukan mekanisme resolusi berbasis prioritas default atau menentukan pemecah masalah artikel. Penyelesai artikel dapat berupa:

    • Handler logika bisnis yang ditulis dalam kode terkelola.

    • Pemecah masalah kustom berbasis COM.

    • Resolver berbasis COM yang disediakan oleh Microsoft.

    Jika mekanisme resolusi default digunakan, perilaku ditentukan lebih lanjut oleh jenis langganan yang digunakan: klien atau server.

Deteksi Konflik

Apakah perubahan data memenuhi syarat sebagai konflik atau tidak bergantung pada jenis pelacakan konflik yang Anda tetapkan untuk artikel:

  • Jika Anda memilih pelacakan konflik tingkat kolom, itu dianggap sebagai konflik jika perubahan dilakukan pada kolom yang sama di baris yang sama pada lebih dari satu simpul replikasi.

  • Jika Anda memilih pelacakan tingkat baris, ini dianggap sebagai konflik jika perubahan dilakukan pada kolom apa pun di baris yang sama pada lebih dari satu simpul replikasi (kolom yang terpengaruh di baris terkait tidak perlu sama).

  • Jika Anda memilih pelacakan tingkat rekaman logis, itu dianggap sebagai konflik jika perubahan dilakukan pada baris mana pun dalam catatan logis yang sama pada lebih dari satu simpul replikasi (kolom yang terpengaruh di baris terkait tidak perlu sama).

Untuk informasi selengkapnya, lihat Mendeteksi dan Mengatasi Konflik dalam Rekaman Logis.

Untuk menentukan pelacakan konflik dan tingkat resolusi untuk artikel, lihat Menentukan Tingkat Pelacakan konflik dan Resolusi untuk Artikel Penggabungan.

Resolusi Konflik

Setelah konflik terdeteksi, Agen Penggabungan meluncurkan penyelesai konflik yang dipilih dan menggunakan resolver untuk menentukan pemenang konflik. Baris yang menang diterapkan di Penerbit dan Pelanggan, dan data dari baris yang kalah ditulis ke tabel konflik. Konflik diselesaikan segera setelah resolver dijalankan, kecuali Anda memilih untuk mengatasi konflik secara interaktif.

Tipe Pemecah Masalah

Dalam replikasi penggabungan, resolusi konflik terjadi di tingkat artikel. Untuk publikasi yang terdiri dari beberapa artikel, Anda dapat memiliki penyelesai konflik yang berbeda yang melayani artikel yang berbeda, atau penyelesai konflik yang sama yang melayani satu artikel, beberapa artikel, atau semua artikel yang terdiri dari publikasi.

Jika Anda berencana menggunakan pemecah masalah konflik berbasis prioritas default, Anda tidak perlu mengatur properti pemecah masalah artikel. Jika Anda ingin menggunakan pemecah masalah artikel alih-alih pemecah masalah default, Anda harus mengatur properti resolver untuk artikel yang akan menggunakannya dengan memilih pemecah masalah yang tersedia di Publisher. Informasi spesifik apa pun yang perlu diteruskan ke resolver juga dapat ditentukan dalam properti informasi resolver.

Replikasi penggabungan menawarkan empat jenis pemecah masalah konflik:

  • Pemecah masalah konflik berbasis prioritas default

    Mekanisme resolusi default bersifat berbeda, tergantung pada apakah langganan adalah langganan klien atau langganan server. Anda menetapkan nilai prioritas untuk pelanggan individual yang menggunakan langganan server; perubahan yang dilakukan pada simpul dengan prioritas tertinggi memenangkan konflik apa pun. Untuk langganan klien, perubahan pertama yang ditulis ke Penerbit akan memenangkan konflik.

    Setelah langganan dibuat, langganan tidak dapat diubah dari satu jenis ke jenis lainnya.

  • Handler logika bisnis

    Kerangka kerja handler logika bisnis memungkinkan Anda menulis rakitan kode terkelola yang dipanggil selama proses sinkronisasi penggabungan. Perakitan mencakup logika bisnis yang dapat merespons konflik dan sejumlah kondisi lain selama sinkronisasi. Untuk informasi selengkapnya, lihat Menjalankan Logika Bisnis Selama Sinkronisasi Penggabungan.

  • Penyelesai kustom berbasis COM

    Replikasi penggabungan menyediakan API untuk menulis resolver sebagai objek COM dalam bahasa seperti Microsoft Visual C++ atau Microsoft Visual Basic. Untuk informasi selengkapnya, lihat Pemecah Masalah Kustom Berbasis COM.

  • Resolver berbasis COM yang disediakan oleh Microsoft

    Microsoft SQL Server menyertakan sejumlah pemecah masalah berbasis COM. Untuk informasi selengkapnya, lihat Microsoft COM-Based Resolver.

Untuk informasi tentang cara memilih jenis pemecah masalah yang sesuai, lihat Memilih Pemecah Masalah.

Catatan

Beberapa penyelesai artikel ditulis untuk menangani konflik hanya untuk operasi tertentu. Misalnya resolver mungkin menangani pembaruan, tetapi tidak menyisipkan atau menghapus. Pemecah masalah konflik berbasis prioritas default menangani konflik apa pun yang tidak ditangani oleh pemecah masalah artikel.

Untuk menentukan jenis langganan gabungan dan prioritas resolusi konflik, lihat

Resolver Interaktif

Replikasi menyediakan antarmuka pengguna Interactive Resolver yang dapat digunakan bersama dengan pemecah masalah konflik berbasis prioritas default atau penyelesai artikel. Saat melakukan sinkronisasi sesuai permintaan melalui Microsoft Windows Synchronization Manager, Pemecah Masalah Interaktif menampilkan data konflik pada run-time, dan memungkinkan Anda memilih cara mengatasi konflik. Untuk informasi selengkapnya tentang cara mengaktifkan resolusi interaktif dan meluncurkan Pemecah Masalah Interaktif, lihat Resolusi Konflik Interaktif.

Menampilkan Konflik

Cara paling mudah untuk melihat konflik adalah dengan menggunakan Penampil Konflik Replikasi, tersedia dari SQL Server Management Studio (SQL Server juga menyediakan prosedur tersimpan yang memungkinkan tabel konflik dikueri.). Penampil Konflik dan Pemecah Masalah Interaktif adalah alat serupa, tetapi Pemecah Masalah Interaktif memungkinkan Anda mengatasi konflik saat sinkronisasi terjadi, sedangkan Penampil Konflik dirancang untuk melihat konflik setelah diselesaikan. Jika metadata konflik masih tersedia dalam tabel sistem (metadata konflik dipertahankan selama 14 hari secara default), Anda dapat mengambil alih hasil penyelesaian konflik di Penampil Konflik, tetapi jika intervensi langsung diperlukan secara teratur, pertimbangkan untuk menggunakan Pemecah Masalah Interaktif.

Catatan

Konflik yang melibatkan rekaman logis tidak ditampilkan di Penampil Konflik. Untuk melihat informasi tentang konflik ini, gunakan prosedur tersimpan replikasi. Untuk informasi selengkapnya, lihat Menampilkan Informasi Konflik untuk Publikasi Gabungan (Pemrograman Transact-SQL Replikasi).

Penampil Konflik menampilkan informasi dari tiga tabel sistem:

  • Replikasi membuat tabel konflik untuk setiap tabel dalam artikel penggabungan, dengan nama dalam formulir MSmerge_conflict_<PublicationName>_<ArticleName>.

    Tabel konflik memiliki struktur yang sama dengan tabel yang menjadi dasarnya. Baris dalam salah satu tabel ini terdiri dari versi baris konflik yang kalah (versi baris yang menang ada di tabel pengguna yang sebenarnya).

  • Tabel MSmerge_conflicts_info menyediakan informasi tentang setiap konflik, termasuk jenis konflik.

  • Tabel sysmergearticles mengidentifikasi tabel pengguna mana yang memiliki tabel konflik dan menyediakan informasi tentang tabel konflik.

Secara default, informasi konflik disimpan:

  • Di Penerbit dan Pelanggan jika tingkat kompatibilitas publikasi adalah 90RTM atau lebih tinggi.

  • Di Publisher jika tingkat kompatibilitas publikasi lebih rendah dari 80RTM.

  • Di Penerbit jika Pelanggan menjalankan SQL Server Compact. Data konflik tidak dapat disimpan pada pelanggan SQL Server Compact.

Untuk melihat konflik

Lihat juga

Menyinkronkan Data