全部产品
Search
文档中心

ApsaraDB for MongoDB:Gunakan MongoShake untuk Melakukan Sinkronisasi Satu Arah antara Instans MongoDB

更新时间:Nov 10, 2025

Anda dapat menggunakan MongoShake, alat open source yang dikembangkan oleh Alibaba Cloud, untuk menyinkronkan data antar database MongoDB. Fitur ini cocok untuk analitik data, pemulihan bencana, dan skenario aktif-aktif. Topik ini menjelaskan prosedur konfigurasi dengan contoh sinkronisasi data real-time antara instans ApsaraDB for MongoDB.

Ikhtisar MongoShake

MongoShake adalah alat Platform sebagai Layanan (PaaS) serbaguna yang dikembangkan oleh Alibaba Cloud dalam bahasa Go. Alat ini membaca Log operasi (oplogs) dari database MongoDB untuk mereplikasi data guna berbagai keperluan.

MongoShake juga menyediakan fitur untuk Berlangganan dan mengonsumsi data log. Anda dapat terhubung dengannya menggunakan berbagai metode, seperti SDK, Kafka, dan MetaQ. Hal ini membuatnya cocok untuk skenario seperti langganan log, sinkronisasi Pusat data, dan penghapusan cache asinkron.

Catatan

Untuk informasi lebih lanjut tentang MongoShake, lihat halaman utama MongoShake di GitHub.

Sumber data yang didukung

Database Sumber

Database Tujuan

Database MongoDB yang dikelola sendiri pada instance ECS

Database MongoDB yang dikelola sendiri pada instance ECS

Database MongoDB yang dikelola sendiri di lokasi lokal

Database MongoDB yang dikelola sendiri di lokasi lokal

Instans ApsaraDB untuk MongoDB

Instans ApsaraDB untuk MongoDB

Database MongoDB cloud pihak ketiga

Database MongoDB cloud pihak ketiga

Catatan penggunaan

  • Jangan melakukan operasi Data Definition Language (DDL) pada database sumber sebelum sinkronisasi data penuh selesai. Jika tidak, dapat terjadi ketidaksesuaian data.

  • Database lokal tidak dapat disinkronkan. Database admin dapat disinkronkan. Untuk informasi lebih lanjut, lihat Migrasikan Data Bisnis dari Database Admin ke Database Non-Admin.

Izin yang diperlukan untuk pengguna database

Sumber data

Izin yang diperlukan

Instans MongoDB sumber

Izin readAnyDatabase, izin read pada database lokal, dan izin readWrite pada database mongoshake.

Catatan

Database mongoshake secara otomatis dibuat oleh program MongoShake di instans sumber ketika sinkronisasi inkremental dimulai.

Instans MongoDB tujuan

Izin readWriteAnyDatabase atau izin readWrite pada database tujuan.

Catatan

Untuk informasi lebih lanjut tentang cara membuat dan memberikan izin kepada pengguna database MongoDB, lihat Gunakan DMS untuk Mengelola Pengguna Database MongoDB atau perintah db.createUser.

Persiapan

  1. Untuk performa sinkronisasi optimal, pastikan instans set replika ApsaraDB for MongoDB sumber menggunakan virtual private cloud (VPC). Jika instans menggunakan jaringan klasik, ubah jenis jaringannya menjadi VPC. Untuk informasi lebih lanjut, lihat Ubah Jenis Jaringan Instans dari Jaringan Klasik ke VPC.

  2. Buat instans set replika ApsaraDB for MongoDB sebagai tujuan sinkronisasi. Saat membuat instans, pilih VPC yang sama dengan instans set replika ApsaraDB for MongoDB sumber untuk meminimalkan latensi jaringan. Untuk informasi lebih lanjut, lihat Buat Instans Set Replika.

  3. Buat instans ECS untuk menjalankan MongoShake. Saat membuat instans, pilih VPC yang sama dengan instans ApsaraDB for MongoDB sumber untuk meminimalkan latensi jaringan. Untuk informasi lebih lanjut, lihat Buat Instans ECS.

  4. Tambahkan alamat IP pribadi instans ECS ke daftar putih instans MongoDB sumber dan tujuan. Pastikan bahwa instans ECS dapat terhubung ke instans MongoDB sumber dan tujuan. Untuk informasi lebih lanjut, lihat Ubah Daftar Putih.

Catatan

Jika jenis jaringan Anda tidak memenuhi persyaratan sebelumnya, Anda dapat mengajukan titik akhir publik untuk instans MongoDB sumber dan tujuan. Kemudian, tambahkan alamat IP publik instans ECS ke daftar putih instans sumber dan tujuan. Ini memungkinkan Anda menyinkronkan data melalui Internet. Untuk informasi lebih lanjut, lihat Ajukan Titik Akhir Publik dan Ubah Daftar Putih.

Prosedur

Dalam contoh ini, MongoShake diinstal secara default di direktori /test/mongoshake.

  1. Masuk ke server ECS.

    Catatan

    Pilih metode login berdasarkan skenario bisnis Anda. Untuk informasi lebih lanjut, lihat Ikhtisar Metode Login untuk Server ECS.

  2. Jalankan perintah berikut untuk mengunduh program MongoShake dan mengganti namanya menjadi mongoshake.tar.gz.

    wget "http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/196977/jp_ja/1608863913991/mongo-shake-v2.4.16.tar.gz" -O mongoshake.tar.gz
    Catatan

    Topik ini menyediakan tautan untuk mengunduh MongoShake 2.4.16. Untuk mengunduh versi terbaru MongoShake, lihat halaman rilis.

  3. Jalankan perintah berikut untuk mengekstrak paket MongoShake ke direktori /test/mongoshake.

    tar zxvf mongoshake.tar.gz && mv mongo-shake-v2.4.16 /test/mongoshake && cd /test/mongoshake/mongo-shake-v2.4.16
  4. Jalankan perintah vi collector.conf untuk memodifikasi file konfigurasi collector.conf dari MongoShake. Tabel berikut menjelaskan parameter utama.

    Parameter

    Deskripsi

    Contoh

    mongo_urls

    String koneksi URI dari instans MongoDB sumber. Dalam contoh ini, akun database adalah test dan termasuk dalam database admin.

    Catatan

    mongo_urls = mongodb://test:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717

    Catatan

    Kata sandi tidak boleh mengandung tanda at (@). Jika tidak, koneksi akan gagal.

    tunnel.address

    String koneksi URI dari instans MongoDB tujuan. Dalam contoh ini, akun database adalah test dan termasuk dalam database admin.

    Catatan

    tunnel.address = mongodb://test:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717

    Catatan

    Kata sandi tidak boleh mengandung tanda at (@). Jika tidak, koneksi akan gagal.

    sync_mode

    Metode sinkronisasi data. Nilai valid:

    • all: Melakukan sinkronisasi data penuh dan inkremental.

    • full: Hanya melakukan sinkronisasi data penuh.

    • incr: Hanya melakukan sinkronisasi data inkremental.

    Catatan

    Nilai default adalah incr.

    sync_mode = all

    Catatan

    Untuk daftar lengkap parameter dalam file collector.conf, lihat Lampiran.

  5. Jalankan perintah berikut untuk memulai tugas sinkronisasi dan menampilkan informasi log.

    ./collector.linux -conf=collector.conf -verbose
  6. Amati informasi log. Ketika entri log berikut muncul, sinkronisasi data penuh selesai dan sinkronisasi data inkremental telah dimulai.

    [09:38:57 CST 2019/06/20] [INFO] (mongoshake/collector.(*ReplicationCoordinator).Run:80) finish full sync, start incr sync with timestamp: fullBeginTs[1560994443], fullFinishTs[1560994737]

Monitor status MongoShake

Setelah sinkronisasi data inkremental dimulai, buka jendela baris perintah lain dan jalankan perintah berikut untuk memantau MongoShake.

cd /test/mongoshake && ./mongoshake-stat --port=9100
Catatan

mongoshake-stat adalah skrip Python. Sebelum menjalankan skrip, instal Python 2.7. Untuk informasi lebih lanjut, lihat situs resmi Python.

Contoh keluaran pemantauan:监控结果

Deskripsi Parameter:

Parameter

Deskripsi

logs_get/sec

Jumlah oplog yang diperoleh per detik.

logs_repl/sec

Jumlah operasi pengulangan oplog per detik.

logs_success/sec

Jumlah operasi pengulangan oplog yang berhasil per detik.

lsn.time

Waktu ketika oplog terakhir dikirim.

lsn_ack.time

Waktu ketika tujuan mengonfirmasi operasi penulisan.

lsn_ckpt.time

Waktu ketika checkpoint disimpan secara permanen.

now.time

Waktu saat ini.

replset

Nama set replika database sumber.

Migrasikan data bisnis dari database admin ke database non-admin

MongoDB tidak merekomendasikan penyimpanan data bisnis di database admin karena perilaku penguncian dan konflik dengan perintah internal dapat menurunkan performa instans.

MongoShake mendukung sinkronisasi data bisnis dari database admin ke database non-admin.

Ikuti langkah-langkah di bagian Prosedur. Pada Langkah 4, saat Anda mengubah file collector.conf, tambahkan item konfigurasi berikut:

filter.pass.special.db = admin

# Migrasikan semua koleksi bisnis dari database admin ke newDB.
transform.namespace = admin:newDB
# Sebagai alternatif, migrasikan koleksi abc dari database admin ke koleksi def di database target. Anda dapat mengonfigurasi beberapa aturan.
transform.namespace = admin.abc:target.def

Lampiran

Tabel 1. Parameter collector.conf

Kategori

Parameter

Deskripsi

Contoh

Tidak ada

conf.version

Nomor versi dari file konfigurasi saat ini. Jangan ubah nilai ini.

conf.version = 4

Opsi konfigurasi global

id

ID tugas sinkronisasi. Anda dapat menyesuaikan nilai ini. Ini digunakan untuk nama log, nama database yang menyimpan informasi checkpoint untuk transmisi yang dapat dilanjutkan, dan nama database tujuan.

id = mongoshake

master_quorum

Opsi ketersediaan tinggi. Saat node MongoShake utama dan cadangan mensinkronkan data dari sumber yang sama, atur parameter ini ke true untuk node MongoShake utama.

Nilai valid:

  • true: diaktifkan

  • false: dinonaktifkan

Catatan

Nilai default adalah false.

master_quorum = false

full_sync.http_port

Port HTTP. Buka port ini untuk melihat status sinkronisasi penuh saat ini dari Internet.

Catatan

Nilai default adalah 9101.

full_sync.http_port = 9101

incr_sync.http_port

Port HTTP. Buka port ini untuk melihat status sinkronisasi inkremental saat ini dari Internet.

Catatan

Nilai default adalah 9100.

incr_sync.http_port = 9100

system_profile_port

Port profiling, digunakan untuk melihat informasi stack internal.

system_profile_port = 9200

log.level

Tingkat log. Nilai valid:

  • error: Log yang berisi informasi tingkat kesalahan.

  • warning: Log yang berisi informasi tingkat peringatan.

  • info: Log yang mencerminkan status sistem saat ini.

  • debug: Log yang berisi informasi debugging.

Nilai default: info.

log.level = info

log.dir

Direktori untuk file log dan file PID. Jika parameter ini tidak disetel, direktori logs di jalur saat ini akan digunakan secara default.

Catatan

Jalur untuk parameter ini harus berupa jalur mutlak.

log.dir = ./logs/

log.file

Nama file log. Anda dapat menyesuaikan nilai ini.

Catatan

Nilai default adalah collector.log.

log.file = collector.log

log.flush

Tingkat refresh log di layar. Nilai valid:

  • true: Mencetak setiap entri log. Ini memengaruhi performa.

  • false: Tidak menjamin bahwa setiap log dicetak, tetapi memastikan performa.

Catatan

Nilai default adalah false.

log.flush = false

sync_mode

Metode sinkronisasi data. Nilai valid:

  • all: Melakukan sinkronisasi data penuh dan inkremental.

  • full: Hanya melakukan sinkronisasi data penuh.

  • incr: Hanya melakukan sinkronisasi data inkremental.

Catatan

Nilai default adalah incr.

sync_mode = all

mongo_urls

URI string koneksi dari instans MongoDB sumber. Dalam contoh ini, akun database adalah test dan milik database admin.

Catatan

mongo_urls = mongodb://test:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717

mongo_cs_url

Jika sumbernya adalah instans kluster sharded, Anda harus memasukkan titik akhir node Configserver (CS). Untuk mengajukan titik akhir untuk node Configserver, lihat Ajukan titik akhir untuk shard.

Dalam contoh ini, akun database adalah test dan milik database admin.

mongo_cs_url = mongodb://test:****@dds-bp19f409d7512****-csxxx.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****-csxxx.mongodb.rds.aliyuncs.com:3717/admin

mongo_s_url

Jika sumbernya adalah instans kluster sharded, Anda harus memasukkan titik akhir setidaknya satu node Mongos. Pisahkan beberapa alamat Mongos dengan koma (,). Untuk mengajukan titik akhir untuk node Mongos, lihat Ajukan titik akhir untuk shard.

Dalam contoh ini, akun database adalah test dan milik database admin.

mongos_s_url = mongodb://test:****@s-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,s-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin

tunnel

Jenis saluran untuk sinkronisasi. Nilai valid:

  • direct: Menyinkronkan data langsung ke instans MongoDB tujuan.

  • rpc: Menyinkronkan data menggunakan NET/RPC.

  • tcp: Menyinkronkan data menggunakan TCP.

  • file: Menyinkronkan data menggunakan transfer file.

  • kafka: Menyinkronkan data menggunakan Kafka.

  • mock: Digunakan hanya untuk pengujian. Data tidak ditulis ke saluran.

Catatan

Nilai default adalah direct.

tunnel = direct

tunnel.address

Titik akhir tujuan. Alamat berikut didukung:

  • Jika Anda menyetel parameter tunnel ke direct, masukkan URI string koneksi dari instans MongoDB tujuan.

  • Jika Anda menyetel parameter tunnel ke rpc, masukkan alamat penerima RPC dari instans tujuan.

  • Jika Anda menyetel parameter tunnel ke tcp, masukkan alamat penerima TCP dari instans tujuan.

  • Jika Anda menyetel parameter tunnel ke file, masukkan jalur file untuk data instans tujuan.

  • Jika Anda menyetel parameter tunnel ke kafka, masukkan alamat Kafka, misalnya, topic@brokers1,brokers2.

  • Jika Anda menyetel parameter tunnel ke mock, biarkan parameter ini kosong.

Dalam contoh ini, akun database adalah test dan milik database admin.

tunnel.address = mongodb://test:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717

tunnel.message

Jenis data dalam saluran. Parameter ini valid hanya jika parameter tunnel disetel ke kafka atau file. Nilai valid:

  • raw: Jenis default. Data ditulis dan dibaca dalam mode agregasi.

  • json: Menulis data ke Kafka dalam format JSON, yang memungkinkan pengguna membacanya langsung.

  • bson: Menulis data ke Kafka dalam format biner BSON.

Catatan

Nilai default adalah raw.

tunnel.message = raw

mongo_connect_mode

Mode koneksi untuk instans MongoDB. Parameter ini valid hanya jika parameter tunnel disetel ke direct. Nilai valid:

  • primary: Mengambil data dari node utama.

  • secondaryPreferred: Mengambil data dari node sekunder.

  • standalone: Mengambil data dari node tunggal yang ditentukan.

Catatan

Nilai default adalah secondaryPreferred.

mongo_connect_mode = secondaryPreferred

filter.namespace.black

Menentukan daftar hitam untuk sinkronisasi data. Namespace yang ditentukan tidak disinkronkan ke database tujuan. Pisahkan beberapa namespace dengan titik koma (;).

Catatan

Namespace adalah nama kanonik untuk koleksi atau indeks di MongoDB. Ini adalah kombinasi dari nama database dan nama koleksi atau indeks, misalnya, mongodbtest.customer.

filter.namespace.black = mongodbtest.customer;testdata.test123

filter.namespace.white

Menentukan daftar putih untuk sinkronisasi data. Hanya namespace yang ditentukan yang disinkronkan ke database tujuan. Pisahkan beberapa namespace dengan titik koma (;).

filter.namespace.white = mongodbtest.customer;test123

filter.pass.special.db

Mengaktifkan sinkronisasi untuk database khusus. Selama sinkronisasi normal, database seperti admin, local, mongoshake, config, dan system.views difilter oleh sistem. Anda dapat mengaktifkan sinkronisasi untuk database ini untuk kebutuhan khusus. Pisahkan beberapa nama database dengan titik koma (;).

filter.pass.special.db = admin;mongoshake

filter.ddl_enable

Menentukan apakah akan mengaktifkan sinkronisasi DDL. Nilai valid:

  • true: diaktifkan

  • false: dinonaktifkan

Catatan

Fitur ini tidak didukung ketika sumbernya adalah instans kluster sharded MongoDB.

filter.ddl_enable = false

checkpoint.storage.url

Mengonfigurasi alamat penyimpanan checkpoint untuk mendukung transmisi yang dapat dilanjutkan. Jika ini tidak dikonfigurasi, program menulis ke database berikut berdasarkan tipe instans:

  • Instans set replika MongoDB: Menulis ke database mongoshake.

  • Instans kluster sharded MongoDB: Menulis ke database admin pada node Configserver.

Dalam contoh ini, akun database adalah test dan milik database admin.

checkpoint.storage.url = mongodb://test:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717

checkpoint.storage.db

Nama database yang menyimpan checkpoint.

Catatan

Nilai default adalah mongoshake.

checkpoint.storage.db = mongoshake

checkpoint.storage.collection

Nama koleksi yang menyimpan checkpoint. Saat Anda mengaktifkan node MongoShake utama dan cadangan untuk menyinkronkan data dari sumber yang sama, Anda dapat mengubah nama tabel ini untuk mencegah konflik yang disebabkan oleh nama duplikat.

Catatan

Nilai default adalah ckpt_default.

checkpoint.storage.collection = ckpt_default

checkpoint.start_position

Posisi awal untuk transmisi yang dapat dilanjutkan. Parameter ini tidak valid jika checkpoint sudah ada. Format nilainya adalah YYYY-MM-DDTHH:MM:SSZ.

Catatan

Nilai default adalah 1970-01-01T00:00:00Z.

checkpoint.start_position = 1970-01-01T00:00:00Z

transform.namespace

Mengganti nama database atau koleksi sumber dan menyinkronkannya ke database tujuan. Misalnya, ganti nama Database A.Collection B di database sumber menjadi Database C.Collection D dan sinkronkan ke database tujuan.

transform.namespace = fromA.fromB:toC.toD

Opsi sinkronisasi data penuh

full_sync.reader.collection_parallel

Menetapkan jumlah maksimum koleksi yang dapat ditarik MongoShake secara bersamaan pada satu waktu.

full_sync.reader.collection_parallel = 6

full_sync.reader.write_document_parallel

Menetapkan jumlah thread konkuren untuk MongoShake menulis ke koleksi tunggal.

full_sync.reader.write_document_parallel = 8

full_sync.reader.document_batch_size

Menetapkan ukuran batch untuk penulisan dokumen tunggal ke tujuan. Sebagai contoh, 128 berarti bahwa 128 dokumen di-agregasi sebelum ditulis.

full_sync.reader.document_batch_size = 128

full_sync.collection_exist_drop

Menetapkan cara menangani koleksi di database tujuan yang memiliki nama yang sama dengan koleksi sumber. Nilai valid:

  • true: Menghapus koleksi tujuan dengan nama yang sama lalu menyinkronkan.

    Peringatan

    Operasi ini menghapus koleksi di tujuan. Cadangkan data Anda terlebih dahulu.

  • false: Melaporkan kesalahan dan keluar jika koleksi dengan nama yang sama terdeteksi di database tujuan.

full_sync.collection_exist_drop = true

full_sync.create_index

Menentukan apakah akan membuat indeks setelah sinkronisasi selesai. Nilai valid:

  • foreground: Membuat indeks foreground.

  • background: Membuat indeks background.

  • none: Tidak membuat indeks.

full_sync.create_index = none

full_sync.executor.insert_on_dup_update

Menentukan apakah akan mengubah pernyataan INSERT menjadi pernyataan UPDATE jika bidang _id duplikat ada di database tujuan. Nilai valid:

  • true: ubah

  • false: jangan ubah

full_sync.executor.insert_on_dup_update = false

full_sync.executor.filter.orphan_document

Menentukan apakah akan memfilter dokumen yatim piatu ketika sumbernya adalah instans kluster sharded. Nilai valid:

  • true: filter

  • false: jangan filter

full_sync.executor.filter.orphan_document = false

full_sync.executor.majority_enable

Menentukan apakah akan mengaktifkan fitur penulisan mayoritas pada tujuan. Nilai valid:

  • true: aktifkan

  • false: nonaktifkan

full_sync.executor.majority_enable = false

Opsi sinkronisasi data inkremental

incr_sync.mongo_fetch_method

Mengonfigurasi metode untuk menarik data inkremental. Nilai valid:

  • oplog: Menarik oplogs dari database sumber.

  • change_stream: Menarik peristiwa perubahan dari database sumber. Metode ini hanya didukung untuk MongoDB 4.0 dan yang lebih baru.

Nilai default: oplog

incr_sync.mongo_fetch_method = oplog

incr_sync.oplog.gids

Digunakan untuk menyiapkan replikasi dua arah untuk kluster cloud.

incr_sync.oplog.gids = xxxxxxxxxxxx

incr_sync.shard_key

Metode yang digunakan MongoShake untuk menangani konkurensi secara internal. Jangan ubah parameter ini.

incr_sync.shard_key = collection

incr_sync.worker

Jumlah thread konkuren untuk mentransmisikan oplogs. Jika performa host cukup, Anda dapat meningkatkan jumlah thread.

Catatan

Jika sumbernya adalah instans kluster sharded, jumlah thread harus sama dengan jumlah shard.

incr_sync.worker = 8

incr_sync.worker.oplog_compressor

Mengaktifkan kompresi data untuk mengurangi konsumsi lebar pita jaringan. Nilai valid:

  • none: tanpa kompresi

  • gzip: kompres dalam format gzip

  • zlib: kompres dalam format zlib

  • deflate: kompres dalam format deflate

Catatan

Parameter ini hanya dapat digunakan ketika parameter tunnel tidak disetel ke direct. Ketika tunnel disetel ke direct, atur parameter ini ke none.

incr_sync.worker.oplog_compressor = none

incr_sync.target_delay

Menetapkan sinkronisasi tertunda antara sumber dan tujuan. Perubahan di sumber biasanya disinkronkan ke tujuan secara real-time. Untuk mencegah operasi yang tidak disengaja, Anda dapat menyetel parameter ini untuk menunda sinkronisasi. Sebagai contoh, incr_sync.target_delay = 1800 menetapkan penundaan 30 menit. Satuannya adalah detik.

Catatan

Nilai 0 menunjukkan bahwa sinkronisasi tertunda dinonaktifkan.

incr_sync.target_delay = 1800

incr_sync.worker.batch_queue_size

Parameter konfigurasi untuk antrian internal MongoShake. Jangan ubah kecuali diperlukan.

incr_sync.worker.batch_queue_size = 64

incr_sync.adaptive.batching_max_size

incr_sync.adaptive.batching_max_size = 1024

incr_sync.fetcher.buffer_capacity

incr_sync.fetcher.buffer_capacity = 256

Opsi sinkronisasi MongoDB (hanya untuk mode direct)

incr_sync.executor.upsert

Menentukan apakah akan mengubah pernyataan UPDATE menjadi pernyataan INSERT ketika _id (bidang duplikat) atau indeks unik tidak ada. Nilai valid:

  • true: ubah

  • false: jangan ubah

incr_sync.executor.upsert = false

incr_sync.executor.insert_on_dup_update

Menentukan apakah akan mengubah pernyataan INSERT menjadi pernyataan UPDATE ketika _id (bidang duplikat) atau indeks unik tidak ada. Nilai valid:

  • true: ubah

  • false: jangan ubah

incr_sync.executor.insert_on_dup_update = false

incr_sync.conflict_write_to

Menentukan apakah akan mencatat dokumen yang bertentangan jika terjadi konflik penulisan selama sinkronisasi. Nilai valid:

  • none: jangan catat

  • db: menulis log konflik ke mongoshake_conflict

  • sdk: menulis log konflik ke SDK

incr_sync.conflict_write_to = none

incr_sync.executor.majority_enable

Menentukan apakah akan mengaktifkan penulisan mayoritas pada tujuan. Nilai valid:

  • true: aktifkan

  • false: nonaktifkan

Catatan

Mengaktifkan fitur ini memengaruhi performa.

incr_sync.executor.majority_enable = false

FAQ

Lihat MongoShake FAQ terlebih dahulu. Jika Anda mengalami masalah lain saat menggunakan MongoShake, berikan umpan balik langsung di GitHub Issues.