Topik ini menjelaskan cara mengonfigurasi kebijakan resolusi konflik untuk instance sinkronisasi dua arah guna memaksimalkan stabilitas melalui deteksi dan penyelesaian konflik.
Informasi latar belakang
Instance DTS yang didukung
Tipe kebijakan resolusi konflik | Instance DTS |
Kebijakan resolusi konflik global | Semua instance sinkronisasi dua arah kecuali instance Tair (Enterprise Edition). Untuk instance sinkronisasi dua arah yang didukung oleh DTS, lihat Sinkronisasi dua arah. |
Kebijakan resolusi konflik independen |
|
Tipe deteksi konflik yang didukung
Sinkronisasi dua arah antara instance ApsaraDB for MongoDB
Konflik Unik Disebabkan oleh INSERT
Ketika rekaman yang akan dimasukkan oleh operasi INSERT bertentangan dengan rekaman yang sudah ada di instance tujuan, DTS secara otomatis mengabaikan operasi INSERT.
Rekaman yang akan diperbarui oleh UPDATE Tidak Sesuai Sepenuhnya
Ketika rekaman yang akan diperbarui oleh operasi UPDATE tidak ada atau bertentangan dengan rekaman yang sudah ada di instance tujuan, DTS secara otomatis mengabaikan operasi UPDATE.
Rekaman yang akan dihapus oleh DELETE Tidak Ada
Ketika rekaman yang akan dihapus oleh operasi DELETE tidak ada di instance tujuan, DTS secara otomatis mengabaikan operasi DELETE.
Sinkronisasi dua arah antara database lainnya
Konflik Unik Disebabkan oleh Operasi INSERT
Operasi INSERT yang tidak sesuai dengan batasan unik tidak dapat disinkronkan. Sebagai contoh, jika sebuah rekaman dengan nilai kunci utama yang sama dimasukkan ke dalam dua node sinkronisasi hampir pada saat yang bersamaan, salah satu dari rekaman yang dimasukkan gagal disinkronkan karena rekaman dengan nilai kunci utama yang sama sudah ada di node lainnya.
Rekaman Tidak Konsisten Disebabkan oleh Operasi UPDATE
Jika rekaman yang akan diperbarui tidak ada di instance tujuan, DTS mengubah operasi UPDATE menjadi operasi INSERT. Namun, konflik unik mungkin terjadi.
Kunci utama atau kunci unik dari rekaman yang akan dimasukkan mungkin bertentangan dengan rekaman yang sudah ada di instance tujuan.
Rekaman yang akan Dihapus Tidak Ada
Rekaman yang akan dihapus tidak ada di instance tujuan. Dalam kasus ini, DTS mengabaikan operasi DELETE tanpa memandang kebijakan resolusi konflik yang Anda tentukan.
Kebijakan resolusi konflik yang didukung
Kebijakan resolusi konflik global
Timpa
Jika terjadi konflik selama tugas sinkronisasi data, rekaman yang bertentangan di database tujuan ditimpa.
TugasGagal
Jika terjadi konflik selama tugas sinkronisasi data, tugas sinkronisasi melaporkan kesalahan dan keluar (masuk ke status gagal), memerlukan intervensi Anda untuk memperbaiki tugas tersebut.
Abaikan
Jika terjadi konflik selama tugas sinkronisasi data, tugas sinkronisasi mengabaikan pernyataan saat ini dan tugas berlanjut. Rekaman yang bertentangan di database tujuan digunakan.
Kebijakan resolusi konflik independen
TugasGagal
Jika terjadi konflik selama tugas sinkronisasi data, tugas sinkronisasi melaporkan kesalahan dan keluar (masuk ke status gagal), memerlukan intervensi Anda untuk memperbaiki tugas tersebut.
Abaikan
Jika terjadi konflik selama tugas sinkronisasi data, tugas sinkronisasi mengabaikan pernyataan saat ini dan tugas berlanjut. Rekaman yang bertentangan di database tujuan digunakan.
Timpa
Jika terjadi konflik selama tugas sinkronisasi data, rekaman yang bertentangan di database tujuan ditimpa.
UseMax
Selama tugas sinkronisasi data, jika terjadi konflik, sistem membandingkan rekaman yang bertentangan di kolom relevan dan menulis rekaman dengan nilai lebih tinggi ke database tujuan. Jika rekaman target tidak ada atau tipe bidang tidak memenuhi kriteria yang diperlukan, sistem menyelesaikan konflik dengan cara yang sama seperti Timpa.
Gunakan Min
Selama tugas sinkronisasi data, jika terjadi konflik, sistem membandingkan dua rekaman yang bertentangan di kolom relevan dan menulis rekaman dengan nilai lebih rendah ke database tujuan. Jika rekaman target tidak ada atau tipe bidang tidak memenuhi persyaratan, sistem menyelesaikan konflik dengan cara yang sama seperti Abaikan.
Prasyarat
Anda dapat mengakses fase Configure Objects baik untuk tugas maju maupun mundur dalam instance sinkronisasi dua arah.
Synchronization Topology untuk instance sinkronisasi dua arah harus dikonfigurasi ke Two-way Synchronization.
Perhatian
Untuk sinkronisasi dua arah antara instance ApsaraDB for MongoDB, kebijakan resolusi konflik hanya mendukung Abaikan.
Hanya sinkronisasi tambahan yang mendukung kebijakan resolusi konflik independen.
Kolom dengan kebijakan resolusi konflik independen tidak terpengaruh oleh kebijakan resolusi konflik global.
Jika kebijakan resolusi konflik independen tidak diatur untuk instance sinkronisasi dua arah, Anda tidak dapat mengatur kebijakan resolusi konflik independen saat memodifikasi objek sinkronisasi.
Karena waktu sistem di kedua ujung sinkronisasi data mungkin berbeda dan latensi sinkronisasi mungkin terjadi, DTS tidak dapat sepenuhnya menjamin bahwa mekanisme deteksi konflik dapat mencegah semua konflik data. Saat menggunakan sinkronisasi dua arah, Anda perlu membuat modifikasi yang sesuai di tingkat bisnis untuk memastikan bahwa rekaman dengan kunci utama yang sama, kunci utama bisnis, atau kunci unik hanya diperbarui di salah satu node sinkronisasi dua arah.
Untuk memastikan konsistensi data, pastikan bahwa rekaman data dengan kunci utama yang sama, kunci utama bisnis, atau kunci unik hanya diperbarui di salah satu node sinkronisasi. Jika rekaman data diperbarui di kedua node, DTS merespons konflik berdasarkan kebijakan resolusi konflik yang Anda tentukan untuk tugas sinkronisasi data.
Jika ada penundaan setelah tugas sinkronisasi dijeda atau dimulai ulang, kebijakan resolusi konflik yang dikonfigurasi tidak berlaku selama periode penundaan, dan defaultnya adalah menimpa data di sisi tujuan.
Prosedur
Konfigurasikan kebijakan resolusi konflik global
Berdasarkan situasi sebenarnya, pilih Global Conflict Resolution Policy. Untuk daftar kebijakan resolusi konflik global yang didukung, lihat Kebijakan Resolusi Konflik yang Didukung.
Untuk sinkronisasi dua arah antara instance ApsaraDB for MongoDB, kebijakan resolusi konflik hanya mendukung Abaikan.

Konfigurasikan kebijakan resolusi konflik independen
Dalam Selected Objects, klik kanan database atau tabel yang ingin Anda sinkronkan.
Aktifkan kebijakan resolusi konflik independen.
Tingkat database
Dalam kotak dialog yang muncul, di area Independent Conflict Resolution Policy, atur Enable Independent Conflict Resolution Policy ke Yes.
Pilih Conflict Resolution Policy.
Klik Columns for Conflict Detection di sebelah kanan Add Column.
Dalam kotak teks Column Name, masukkan nama kolom yang ingin Anda tetapkan kebijakan resolusi konflik unik.
CatatanJika nama kolom target menggunakan fitur pemetaan, Anda perlu memasukkan nama kolom yang dipetakan.
Anda dapat mengklik Columns for Conflict Detection di sebelah kanan Add Column untuk menambahkan kolom tambahan yang memerlukan kebijakan resolusi konflik unik.
Tingkat tabel
Dalam kotak dialog, pada area Column, pilih opsi Independent Conflict Resolution Policy.
Dalam Columns for Conflict Detection, pilih kolom yang ingin Anda tetapkan kebijakan resolusi konflik independen.
CatatanKolom dengan kunci utama dan batasan unik dipilih secara default.
Pilih Conflict Resolution Policy.
CatatanJika Columns for Conflict Detection dipilih secara otomatis oleh sistem, Anda tidak dapat memilih GunakanMaks atau GunakanMin.
Klik OK .
FAQ
T: Apakah saya bisa memodifikasi kebijakan resolusi konflik?
J: Anda bisa memodifikasi kebijakan resolusi konflik global dengan memodifikasi objek yang akan disinkronkan.