Resolusi konflik untuk Replikasi Penggabungan
Berlaku untuk: SQL Server
Konflik dalam replikasi penggabungan diselesaikan berdasarkan pemecah masalah yang ditentukan untuk setiap artikel. Secara default, konflik diselesaikan tanpa perlu intervensi pengguna. Tetapi konflik dapat dilihat, dan hasil resolusi dapat diubah, di Penampil Konflik Replikasi Microsoft.
Data konflik tersedia di Penampil Konflik Replikasi untuk jumlah waktu yang ditentukan untuk periode retensi konflik (dengan default 14 hari). Untuk mengatur periode retensi konflik, baik:
Tentukan nilai retensi untuk
@conflict_retention
parameter sp_addmergepublication (Transact-SQL).Tentukan nilai conflict_retention untuk parameter dan nilai retensi untuk
@value
parameter sp_changemergepublication (Transact-SQL).@property
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 Publisher jika Pelanggan menjalankan SQL Server Compact. Data konflik tidak dapat disimpan pada Pelanggan Ringkas SQL Server.
Penyimpanan informasi konflik dikendalikan oleh properti publikasi conflict_logging . Untuk informasi selengkapnya, lihat sp_addmergepublication (Transact-SQL) dan sp_changemergepublication (Transact-SQL).
Konflik juga dapat diatasi secara interaktif selama sinkronisasi menggunakan Microsoft Interactive Resolver. Pemecah Masalah Interaktif tersedia melalui Microsoft Windows Synchronization Manager. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Menggunakan Pengelola Sinkronisasi Windows (Pengelola Sinkronisasi Windows).
Mengatasi konflik
Sambungkan ke Penerbit (atau Pelanggan jika sesuai) di Microsoft SQL Server Management Studio, lalu perluas simpul server.
Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.
Klik kanan publikasi yang ingin Anda lihat konfliknya, lalu klik Tampilkan Konflik.
Catatan
Jika Anda menentukan nilai 'pelanggan' untuk properti conflict_logging , opsi menu Lihat Konflik tidak tersedia. Untuk melihat konflik, mulai ConflictViewer.exe dari prompt perintah. Secara default, ConflictViewer.exe terletak di direktori berikut: Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE. Untuk daftar parameter startup yang valid, jalankan ConflictViewer.exe -?.
Dalam kotak dialog Pilih Tabel Konflik, pilih database, publikasi, dan tabel untuk menampilkan konflik.
Di Penampil Konflik Replikasi, Anda dapat:
Filter baris dengan tombol di sebelah kanan kisi atas.
Pilih baris di kisi atas untuk menampilkan informasi pada baris tersebut di kisi bawah.
Pilih satu atau beberapa baris di kisi atas, lalu klik Hapus, yang setara dengan mengklik tombol Kirim Pemenang (tanpa membuat perubahan apa pun pada data).
Klik tombol properti (...) untuk melihat informasi selengkapnya tentang kolom yang terlibat dalam konflik.
Edit data di kolom Pemenang konflik atau Pecundang konflik sebelum mengirimkan data (data bersifat baca-saja jika kolom berwarna abu-abu).
Klik Kirim Pemenang untuk menerima baris yang ditetapkan sebagai pemenang konflik.
Klik Kirim Pecundang untuk mengambil alih resolusi dan untuk menyebarluaskan nilai yang ditetapkan sebagai pecundang konflik ke semua simpul dalam topologi.
Pilih Catat detail konflik ini untuk mencatat data konflik ke file. Untuk menentukan lokasi file, arahkan ke menu Tampilan , lalu klik Opsi. Masukkan nilai, atau klik tombol telusuri (...), lalu navigasikan ke file yang sesuai. Klik OK untuk keluar dari kotak dialog Opsi .
Tutup Penampil Konflik Replikasi.
Lihat informasi konflik
Ketika konflik diselesaikan dalam replikasi penggabungan, data dari baris yang hilang ditulis ke tabel konflik. Data konflik ini dapat dilihat secara terprogram dengan menggunakan prosedur tersimpan replikasi. Untuk informasi selengkapnya, lihat Deteksi dan Resolusi Konflik Replikasi Gabungan Tingkat Lanjut.
Di Publisher pada database publikasi, jalankan sp_helpmergepublication. Perhatikan nilai kolom berikut dalam tataan hasil:
centralized_conflicts - 1 menunjukkan bahwa baris konflik disimpan di Publisher, dan 0 menunjukkan bahwa baris konflik tidak disimpan di Publisher.
decentralized_conflicts - 1 menunjukkan bahwa baris konflik disimpan di Pelanggan, dan 0 menunjukkan bahwa baris konflik tidak disimpan di Pelanggan.
Catatan
Perilaku pengelogan konflik publikasi penggabungan diatur dengan menggunakan
@conflict_logging
parameter sp_addmergepublication. Penggunaan@centralized_conflicts
parameter tidak digunakan lagi.
Tabel berikut ini menjelaskan nilai kolom ini berdasarkan nilai yang ditentukan untuk
@conflict_logging
.nilai @conflict_logging centralized_conflicts decentralized_conflicts penerbit 1 0 Pelanggan 0 1 keduanya 1 1 Di Penerbit pada database publikasi atau di Pelanggan pada database langganan, jalankan sp_helpmergearticleconflicts. Tentukan nilai untuk
@publication
hanya mengembalikan informasi konflik untuk artikel yang termasuk dalam publikasi tertentu. Ini mengembalikan informasi tabel konflik untuk artikel dengan konflik. Perhatikan nilai conflict_table untuk setiap artikel yang menarik. Jika nilai conflict_table untuk artikel adalah NULL, hanya konflik penghapusan yang terjadi dalam artikel ini.(Opsional) Tinjau baris konflik untuk artikel yang menarik. Bergantung pada nilai centralized_conflicts dan decentralized_conflicts dari langkah 1, lakukan salah satu hal berikut ini:
Di Publisher pada database publikasi, jalankan sp_helpmergeconflictrows. Tentukan tabel konflik untuk artikel (dari langkah 1) untuk
@conflict_table
. (Opsional) Tentukan nilai@publication
untuk membatasi informasi konflik yang dikembalikan ke publikasi tertentu. Ini mengembalikan data baris dan informasi lain untuk baris yang hilang.Di Pelanggan pada database langganan, jalankan sp_helpmergeconflictrows. Tentukan tabel konflik untuk artikel (dari langkah 1) untuk
@conflict_table
. Ini mengembalikan data baris dan informasi lain untuk baris yang hilang.
Konflik saat penghapusan gagal
Di Publisher pada database publikasi, jalankan sp_helpmergepublication. Perhatikan nilai kolom berikut dalam tataan hasil:
centralized_conflicts - 1 menunjukkan bahwa baris konflik disimpan di Publisher, dan 0 menunjukkan bahwa baris konflik tidak disimpan di Publisher.
decentralized_conflicts - 1 menunjukkan bahwa baris konflik disimpan di Pelanggan, dan 0 menunjukkan bahwa baris konflik tidak disimpan di Pelanggan.
Catatan
Perilaku pengelogan konflik dari publikasi penggabungan diatur menggunakan
@conflict_logging
parameter sp_addmergepublication. Penggunaan@centralized_conflicts
parameter tidak digunakan lagi.
Di Penerbit pada database publikasi atau di Pelanggan pada database langganan, jalankan sp_helpmergearticleconflicts. Tentukan nilai untuk
@publication
hanya mengembalikan informasi tabel konflik untuk artikel yang termasuk dalam publikasi tertentu. Ini mengembalikan informasi tabel konflik untuk artikel dengan konflik. Perhatikan nilai source_object untuk setiap artikel yang menarik. Jika nilai conflict_table untuk artikel adalah NULL, hanya konflik penghapusan yang terjadi dalam artikel ini.(Opsional) Tinjau informasi konflik untuk konflik penghapusan. Bergantung pada nilai centralized_conflicts dan decentralized_conflicts dari langkah 1, lakukan salah satu hal berikut ini:
Di Publisher pada database publikasi, jalankan sp_helpmergedeleteconflictrows. Tentukan nama tabel sumber (dari langkah 1) tempat konflik terjadi untuk
@source_object
. (Opsional) Tentukan nilai@publication
untuk membatasi informasi konflik yang dikembalikan ke publikasi tertentu. Ini mengembalikan informasi konflik penghapusan yang disimpan di Publisher.Di Pelanggan pada database langganan, jalankan sp_helpmergedeleteconflictrows. Tentukan nama tabel sumber (dari langkah 1) tempat konflik terjadi untuk
@source_object
. (Opsional) Tentukan nilai@publication
untuk membatasi informasi konflik yang dikembalikan ke publikasi tertentu. Ini mengembalikan informasi konflik penghapusan yang disimpan di Pelanggan.