All Products
Search
Document Center

ApsaraDB for MongoDB:Gunakan MongoShake untuk mengimplementasikan sinkronisasi tertunda di antara instance ApsaraDB for MongoDB

Last Updated:May 25, 2026

Topik ini menjelaskan cara menggunakan MongoShake untuk mengimplementasikan sinkronisasi tertunda di antara instance ApsaraDB for MongoDB.

Prasyarat

Versi MongoShake harus 2.4.6 atau yang lebih baru. Untuk informasi lebih lanjut, kunjungi halaman rilis MongoShake.

Informasi latar belakang

Jika Anda menggunakan MongoShake untuk menyinkronkan data secara real-time di antara beberapa instance, MongoShake akan menyinkronkan kesalahan operasi dari instance utama ke instance sekunder. Dalam kasus seperti itu, Anda perlu memulihkan data pada instance sekunder untuk membatalkan kesalahan tersebut. Untuk menyelesaikan masalah ini, parameter tambahan disertakan dalam MongoShake versi 2.4.6 untuk mendukung sinkronisasi tertunda, memberikan periode penyangga bagi sinkronisasi data di antara instance ApsaraDB for MongoDB. Jika terjadi operasi tidak sengaja pada instance utama, Anda dapat menonaktifkan sinkronisasi selama periode penyangga dan memindahkan beban kerja ke instance sekunder yang belum disinkronkan dengan data yang salah.

Catatan

Topik ini menjelaskan penggunaan parameter incr_sync.target_delay. Untuk informasi lebih lanjut tentang penggunaan MongoShake, lihat Gunakan MongoShake untuk Melakukan Sinkronisasi Satu Arah di Antara Instance ApsaraDB for MongoDB.

Persiapan

  1. Untuk performa sinkronisasi terbaik, pastikan bahwa instance replika set ApsaraDB for MongoDB sumber berada dalam virtual private cloud (VPC). Jika instance sumber berada di jaringan klasik, ubah tipe jaringan ke VPC. Untuk informasi lebih lanjut, lihat Ubah Tipe Jaringan Instance dari Jaringan Klasik ke VPC.

  2. Buat instance replika set ApsaraDB for MongoDB sebagai tujuan sinkronisasi. Pilih VPC yang sama dengan yang digunakan oleh instance replika set ApsaraDB for MongoDB sumber untuk meminimalkan latensi jaringan. Untuk informasi lebih lanjut, lihat Buat Instance Replika Set.

  3. Buat instance Elastic Compute Service (ECS) untuk menjalankan MongoShake. Pilih VPC yang sama dengan yang digunakan oleh instance ApsaraDB for MongoDB sumber untuk meminimalkan latensi jaringan. Untuk informasi lebih lanjut, lihat .

  4. Tambahkan alamat IP privat instance ECS ke daftar putih instance ApsaraDB for MongoDB sumber dan tujuan. Pastikan bahwa instance ECS dapat terhubung ke instance ApsaraDB for MongoDB sumber dan tujuan. Untuk informasi lebih lanjut, lihat Modifikasi Daftar Putih untuk Instance.

Catatan

Jika tipe jaringan tidak memenuhi persyaratan sebelumnya, Anda dapat mengajukan endpoint publik untuk instance ApsaraDB for MongoDB sumber dan tujuan. Kemudian, tambahkan alamat IP publik instance ECS ke daftar putih instance ApsaraDB for MongoDB sumber dan tujuan. Dengan cara ini, Anda dapat menyinkronkan data melalui Internet. Untuk informasi lebih lanjut, lihat Ajukan Endpoint Publik dan Modifikasi Daftar Putih untuk Instance.

Konfigurasi sinkronisasi tertunda di antara instance ApsaraDB for MongoDB

Contoh berikut menggunakan instance Elastic Compute Service (ECS) Ubuntu untuk menjelaskan cara mengonfigurasi sinkronisasi tertunda di antara instance ApsaraDB for MongoDB. Untuk informasi lebih lanjut, lihat Gunakan MongoShake untuk Melakukan Sinkronisasi Satu Arah di Antara Instance ApsaraDB for MongoDB.

  1. Masuk ke instance ECS. Untuk informasi lebih lanjut, lihat Hubungkan ke Instance Linux Menggunakan Nama Pengguna dan Kata Sandi dari Klien Pihak Ketiga.

  2. Jalankan perintah berikut untuk mengunduh paket MongoShake:

    wget <URL Unduhan paket MongoShake terbaru>

    Contoh kode:

    wget https://github.com/alibaba/MongoShake/releases/download/release-v2.0.7-20190817/mongo-shake-2.0.7.tar.gz
    Catatan

    Untuk informasi lebih lanjut tentang URL unduhan paket MongoShake terbaru, kunjungi halaman rilis MongoShake.

  3. Jalankan perintah berikut untuk mengekstrak paket MongoShake:

    tar xvf <Nama paket MongoShake>

    Contoh kode:

    tar xvf mongo-shake-2.0.7.tar.gz
  4. Jalankan perintah vi collector.conf untuk mengonfigurasi MongoShake. Untuk informasi tentang parameter yang harus dikonfigurasi, lihat Parameter MongoShake. Temukan parameter incr_sync.target_delay dalam file collector.conf dan konfigurasikan sesuai kebutuhan bisnis Anda. Nilai parameter diukur dalam detik. Dalam contoh ini, periode penyangga diatur menjadi 1.800 detik.

    incr_sync.target_delay = 1800
  5. Simpan dan tutup file collector.conf untuk menyelesaikan konfigurasi.

  6. Jalankan perintah berikut untuk memulai sinkronisasi berdasarkan file collector.conf dan mencetak log:

    ./collector.linux -conf=collector.conf -verbose
    Catatan

    MongoShake menyinkronkan perubahan dalam instance utama ke instance sekunder 30 menit setelah perubahan tersebut.

Lakukan pergantian antara instance utama dan instance sekunder setelah kesalahan operasi

Kesalahan operasi mungkin terjadi saat melakukan operasi pembuatan, membaca, memperbarui, dan menghapus (CRUD) pada instance utama. Sebagai contoh, pernyataan dieksekusi untuk menulis data yang tidak diinginkan ke instance utama. Untuk merespons kesalahan operasi, Anda dapat mengikuti langkah-langkah berikut untuk memindahkan beban kerja ke instance sekunder yang belum disinkronkan dengan data yang salah.

  1. Kueri oplog instance ApsaraDB for MongoDB utama untuk mengidentifikasi waktu terjadinya kesalahan operasi. Sebagai contoh, Anda dapat menjalankan perintah berikut untuk mengkueri semua oplog yang dihasilkan dari 1 Juni 2020 hingga 2 Juni 2020. Untuk informasi lebih lanjut tentang cara mengkueri oplog, lihat Dokumentasi Resmi MongoDB.

    use local #Pindah ke database lokal.
    db.oplog.rs.find({"o.createTime": {$gte:new Date(2020,6,1),$lte:new Date(2020,6,2)}}) #Kueri oplog berdasarkan kondisi yang ditentukan.
  2. Jalankan perintah API RESTful berikut untuk menyuntikkan parameter ExitPoint ke MongoShake guna mengakhiri program MongoShake pada titik waktu tertentu:

    curl -X POST --data '{"ExitPoint": <Timestamp Unix>}' <ID server MongoShake>:<Nomor port>/sentinel/options

    Contoh kode:

    curl -X POST --data '{"ExitPoint": 1593534600}' 127.0.0.1:9100/sentinel/options
    Catatan

    String 1593534600 adalah timestamp UNIX yang menunjukkan 16:30:00 tanggal 30 Juni 2020. MongoShake secara otomatis keluar pada titik waktu yang ditentukan.

  3. Jalankan perintah vi collector.conf untuk membuka file collector.conf dan tukar alamat IP instance utama dan instance sekunder. Untuk informasi lebih lanjut, lihat Gunakan MongoShake untuk Melakukan Sinkronisasi Satu Arah di Antara Instance ApsaraDB for MongoDB.

  4. Jalankan perintah berikut untuk memulai ulang sinkronisasi berdasarkan file collector.conf dan mencetak log:

    ./collector.linux -conf=collector.conf -verbose
  5. Pindahkan beban kerja Anda ke instance utama baru untuk menyelesaikan operasi pergantian.

Monitor status MongoShake

Untuk informasi lebih lanjut, lihat Monitor Status MongoShake.