All Products
Search
Document Center

ApsaraDB for MongoDB:Sinkronisasi\ data\ dari\ instans\ replica\ set\ ApsaraDB\ for\ MongoDB\ ke\ instans\ replica\ set\ atau\ kluster\ sharded\ ApsaraDB\ for\ MongoDB

Last Updated:Mar 28, 2026

Gunakan Data Transmission Service (DTS) untuk menyinkronkan data secara berkelanjutan dari instans replica set MongoDB ke instans replica set atau kluster sharded lainnya—tanpa menghentikan database sumber Anda.

Database sumber dan tujuan yang didukung

SourceDestinationCatatan
Instans replica set ApsaraDB for MongoDBInstans replica set atau kluster sharded ApsaraDB for MongoDBTopik ini menggunakan kombinasi ini sebagai contoh.
Replica set MongoDB yang dikelola sendiri pada instance Elastic Compute Service (ECS)Replica set atau kluster sharded MongoDB yang dikelola sendiri pada instance ECSIkuti prosedur yang sama.
Replica set MongoDB yang dikelola sendiri yang terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway (SAG)Replica set atau kluster sharded MongoDB yang dikelola sendiri yang terhubung melalui Express Connect, VPN Gateway, atau SAGIkuti prosedur yang sama.
Untuk kombinasi versi MongoDB yang didukung, lihat Ikhtisar skenario sinkronisasi data. Versi tujuan harus sama dengan atau lebih baru daripada versi sumber.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Pre-sharding mendistribusikan data yang disinkronkan ke seluruh shard dan mencegah kesenjangan data. Jika tidak memungkinkan menambahkan kunci shard ke data sumber, lihat Sinkronisasi MongoDB (tanpa kunci shard) ke MongoDB (arsitektur kluster sharded).

Penagihan

Jenis sinkronisasiBiaya
Sinkronisasi skema dan sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenai biaya. Lihat Ikhtisar penagihan.

Topologi sinkronisasi yang didukung

  • Sinkronisasi satu arah satu-ke-satu

  • Sinkronisasi satu arah satu-ke-banyak

  • Sinkronisasi satu arah banyak-ke-satu

  • Sinkronisasi satu arah bertingkat (cascade)

Untuk detailnya, lihat Topologi sinkronisasi.

Jenis sinkronisasi

JenisApa yang disinkronkan DTS
Sinkronisasi skemaSkema objek yang dipilih dari sumber ke tujuan
Sinkronisasi data penuhData historis dari objek yang dipilih. Objek yang didukung: database dan koleksi.
Sinkronisasi data inkrementalPerubahan berkelanjutan setelah sinkronisasi penuh selesai. Operasi yang didukung: CREATE COLLECTION, CREATE INDEX, DROP DATABASE, DROP COLLECTION, DROP INDEX, RENAME COLLECTION, serta operasi insert, update, dan delete tingkat dokumen. Database yang dibuat setelah tugas dimulai tidak termasuk. Transaksi dikonversi menjadi satu catatan—konteks transaksi tidak dipertahankan.

Gunakan oplog

Tugas DTS tidak menyinkronkan data inkremental dari database yang dibuat setelah tugas mulai berjalan. DTS menyinkronkan data inkremental yang dihasilkan oleh operasi berikut:

  • CREATE COLLECTION dan INDEX

  • DROP DATABASE, COLLECTION, dan INDEX

  • RENAME COLLECTION

  • Operasi yang dilakukan untuk insert, update, dan delete dokumen dalam koleksi.

    Catatan

    Saat menyinkronkan data inkremental dokumen, hanya operasi update yang menggunakan perintah $set yang didukung.

Gunakan change streams

DTS menyinkronkan data inkremental yang dihasilkan oleh operasi berikut:

  • DROP DATABASE dan COLLECTION

  • RENAME COLLECTION

  • Operasi yang dilakukan untuk insert, update, dan delete dokumen dalam koleksi.

    Catatan

    Saat menyinkronkan data inkremental dokumen, hanya operasi update yang menggunakan perintah $set yang didukung.

Batasan

Tinjau batasan berikut sebelum mengonfigurasi tugas. Pelanggaran terhadap batasan ini dapat menyebabkan kegagalan tugas atau inkonsistensi data.

Persyaratan database sumber

BatasanDetail
Bandwidth keluarServer sumber harus memiliki bandwidth keluar yang mencukupi. Bandwidth yang tidak mencukupi akan memperlambat sinkronisasi.
Kunci primer atau kunci unikKoleksi harus memiliki kendala PRIMARY KEY atau UNIQUE tanpa nilai bidang duplikat. Jika tidak, tujuan mungkin berisi catatan duplikat.
Jumlah koleksi (saat mengedit koleksi tujuan)Maksimal 1.000 koleksi per tugas jika Anda memilih koleksi sebagai objek sinkronisasi dan berencana mengganti namanya di tujuan. Untuk koleksi lebih banyak, jalankan beberapa tugas atau sinkronkan pada tingkat database.
Ukuran dokumen tunggalTidak boleh melebihi 16 MB. Dokumen yang lebih besar menyebabkan kegagalan tugas.
Sumber yang tidak didukungKluster Azure Cosmos DB for MongoDB dan kluster elastis Amazon DocumentDB tidak didukung.
oplog atau change streamsOplog harus diaktifkan dan menyimpan log minimal selama 7 hari. Atau, aktifkan change streams yang mencakup 7 hari terakhir. Jika kedua kondisi ini tidak terpenuhi, DTS mungkin gagal menangkap perubahan, yang dapat menyebabkan kehilangan data—tidak dicakup oleh SLA DTS. Gunakan oplog bila memungkinkan; change streams memerlukan MongoDB 4.0 atau lebih baru dan tidak mendukung sinkronisasi dua arah. Untuk kluster Amazon DocumentDB non-elastis, aktifkan change streams dan atur Migration Method ke ChangeStream dan Architecture ke Sharded Cluster.
Indeks TTLKoleksi dengan indeks TTL tidak dapat disinkronkan. Upaya melakukannya dapat menyebabkan inkonsistensi data.
Perubahan skema selama sinkronisasiJangan mengubah skema database atau koleksi (termasuk pembaruan tipe array) saat sinkronisasi skema atau sinkronisasi data penuh sedang berjalan.
Penulisan selama sinkronisasi penuh sajaJangan menulis ke database sumber selama sinkronisasi data penuh jika Anda tidak menjalankan sinkronisasi inkremental.

Persyaratan database tujuan

BatasanDetail
Kluster sharded: dokumen yatim (orphaned documents)Hapus semua dokumen yatim sebelum memulai. Dokumen yatim menurunkan kinerja dan dapat menyebabkan konflik _id atau kegagalan tugas.
Kluster sharded: kunci shardTambahkan kunci shard ke data sumber sebelum memulai. Selama sinkronisasi, operasi INSERT harus menyertakan kunci shard; operasi UPDATE tidak boleh mengubah kunci shard.
Replica set: titik akhir koneksiJika terhubung melalui Express Connect, VPN Gateway, SAG, alamat IP publik, atau Cloud Enterprise Network (CEN), atur Domain Name or IP dan Port Number ke IP dan port node primer, atau gunakan titik akhir berdaya tinggi. Lihat Buat tugas DTS dengan database MongoDB berdaya tinggi. Jika terhubung melalui instance ECS yang dikelola sendiri, atur Port Number ke port node primer.
Indeks unik atau koleksi cappedKoleksi dengan indeks unik atau capped: true hanya mendukung penulisan single-thread. Hal ini menonaktifkan replay konkuren selama sinkronisasi inkremental dan dapat meningkatkan latensi.
Database yang dikecualikanDTS tidak menyinkronkan database admin atau local.
Konflik kunci primerPastikan tujuan tidak memiliki dokumen dengan _id yang sama dengan sumber. Jika ada konflik, hapus dokumen yang bertentangan dari tujuan sebelum memulai tugas.

Batasan umum

BatasanDetail
Dampak kinerjaSebelum menyinkronkan data, evaluasi dampaknya terhadap kinerja database sumber dan tujuan. Kami menyarankan agar Anda menyinkronkan data selama jam sepi. Selama sinkronisasi data penuh, DTS menggunakan sumber daya baca dan tulis database sumber dan tujuan, yang dapat meningkatkan beban server database.
Ekspansi penyimpananPenulisan konkuren selama sinkronisasi penuh menyebabkan fragmentasi koleksi. Penyimpanan tujuan akhirnya 5%–10% lebih besar daripada sumber.
Penulisan dari sumber lainJangan menulis ke tujuan dari sumber lain (misalnya, menggunakan Data Management (DMS) untuk operasi DDL Online) selama sinkronisasi. Penulisan eksternal konkuren dapat menyebabkan kehilangan data.
Sintaks kueri countGunakan db.$table_name.aggregate([{ $count:"myCount"}]) untuk menghitung dokumen di tujuan.
Pemulihan tugasJika tugas DTS gagal, dukungan DTS mencoba memulihkannya dalam waktu 8 jam. Tugas dapat dimulai ulang dan parameter tugas dapat dimodifikasi selama pemulihan. Parameter database tidak dimodifikasi.
Waktu coba ulang untuk koneksi gagalRentang valid: 10–1.440 menit. Default: 720 menit. Atur ke nilai lebih dari 30 menit. Jika koneksi dipulihkan dalam periode ini, DTS melanjutkan tugas. Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu coba ulang terpendek yang berlaku. Biaya instance DTS tetap berjalan selama percobaan ulang.
Waktu coba ulang untuk masalah lainRentang valid: 1–1.440 menit. Default: 10 menit. Atur ke nilai lebih dari 10 menit. Harus kurang dari Waktu Coba Ulang untuk Koneksi Gagal.

Batasan MongoDB yang dikelola sendiri

Jika database sumber adalah instance MongoDB yang dikelola sendiri, perhatikan hal berikut:

BatasanDetail
Alih bencana primer/sekunderJika terjadi failover primer atau sekunder pada sumber saat tugas sedang berjalan, tugas tersebut akan gagal.
Akurasi latensi sinkronisasiDTS menghitung latensi berdasarkan stempel waktu data terbaru yang disinkronkan di tujuan dan stempel waktu saat ini di sumber. Jika tidak ada pembaruan di sumber dalam jangka waktu lama, latensi yang dilaporkan mungkin tidak akurat. Untuk mengatur ulang pembacaan latensi, lakukan pembaruan di sumber. Jika Anda memilih seluruh database sebagai objek sinkronisasi, Anda dapat membuat tabel heartbeat yang diperbarui setiap detik.

Konfigurasi tugas sinkronisasi data

Langkah 1: Buka halaman Tugas Sinkronisasi Data

  1. Masuk ke Konsol Data Management (DMS).

  2. Di bilah navigasi atas, klik Data + AI.

  3. Di panel navigasi kiri, pilih DTS (DTS) > Data Synchronization.

Langkah-langkah dapat berbeda tergantung mode konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS. Anda juga dapat langsung membuka halaman Tugas Sinkronisasi Data di konsol DTS baru.

Langkah 2: Pilih wilayah

Di sisi kanan Tugas Sinkronisasi Data, pilih wilayah tempat instance sinkronisasi berada.

Di konsol DTS baru, pilih wilayah dari bilah navigasi atas.

Langkah 3: Konfigurasi database sumber dan tujuan

Klik Create Task. Di halaman Create Task, konfigurasikan parameter yang dijelaskan dalam tabel berikut.

Peringatan

Setelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di halaman sebelum melanjutkan. Melewati langkah ini dapat menyebabkan kegagalan tugas atau inkonsistensi data.

Database sumber

ParameterDeskripsi
Task NameNama untuk tugas DTS. DTS menghasilkan nama default. Tentukan nama deskriptif untuk membantu mengidentifikasi tugas. Nama tidak perlu unik.
Select a DMS database instancePilih instance database yang sudah ada untuk mengisi parameter secara otomatis, atau biarkan kosong dan konfigurasikan parameter berikut secara manual.
Database TypePilih MongoDB.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instance sumber berada.
Replicate Data Across Alibaba Cloud AccountsPilih No untuk sinkronisasi dalam akun yang sama.
ArchitecturePilih Replica Set.
Instance IDID instance ApsaraDB for MongoDB sumber.
Authentication DatabaseDatabase yang menyimpan kredensial akun. Default: admin.
Database AccountAkun dengan akses baca ke database sumber, database config, database admin, dan database local.
Database PasswordKata sandi untuk akun database.
EncryptionPilih Non-encrypted atau SSL-encrypted. Parameter ini hanya berlaku untuk instance Replica Set. Jika Anda memilih SSL-encrypted untuk replica set yang dikelola sendiri, Anda dapat mengunggah sertifikat CA untuk memverifikasi koneksi.

Database tujuan

ParameterDeskripsi
Select a DMS database instancePilih instance database yang sudah ada untuk mengisi parameter secara otomatis, atau biarkan kosong dan konfigurasikan parameter berikut secara manual.
Database TypePilih MongoDB.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instance tujuan berada.
ArchitectureArsitektur instance tujuan (Replica Set atau Sharded Cluster).
Instance IDID instance ApsaraDB for MongoDB tujuan.
Authentication DatabaseDatabase yang menyimpan kredensial akun. Default: admin.
Database AccountAkun dengan izin dbAdminAnyDatabase, akses baca dan tulis ke database tujuan, dan akses baca ke database local.
Database PasswordKata sandi untuk akun database.
EncryptionPilih Non-encrypted atau SSL-encrypted. Parameter ini hanya berlaku untuk instance Replica Set. Jika Anda memilih SSL-encrypted untuk replica set yang dikelola sendiri, Anda dapat mengunggah sertifikat CA untuk memverifikasi koneksi.

Langkah 4: Uji konektivitas

Klik Test Connectivity and Proceed.

DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instance database Alibaba Cloud atau ke aturan grup keamanan database yang di-host di ECS. Untuk database yang dikelola sendiri di pusat data lokal atau yang di-host oleh penyedia pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Lihat Tambahkan blok CIDR server DTS.

Peringatan

Menambahkan blok CIDR DTS ke daftar putih atau aturan grup keamanan Anda menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan: gunakan kredensial kuat, batasi port yang terbuka, autentikasi panggilan API, tinjau aturan daftar putih secara berkala, dan hapus blok CIDR yang tidak sah. Untuk keamanan lebih tinggi, sambungkan melalui Express Connect, VPN Gateway, atau SAG alih-alih menggunakan akses IP publik.

Langkah 5: Pilih objek dan konfigurasi pengaturan

Konfigurasikan parameter berikut:

ParameterDeskripsi
Synchronization TypesPilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. Incremental data synchronization dipilih secara default. Schema dan full sync dijalankan terlebih dahulu; incremental sync dimulai setelah full sync selesai. Untuk informasi selengkapnya, lihat Synchronization types.
Processing Mode of Conflicting TablesPrecheck and Report Errors: memeriksa koleksi dengan nama identik di sumber dan tujuan sebelum memulai. Jika terdapat konflik, task tidak akan dimulai. Untuk menyelesaikan konflik penamaan, gunakan fitur pemetaan nama objek. Lihat Rename an object to be synchronized. Ignore Errors and Proceed: melewati pemeriksaan konflik. Jika suatu record di tujuan memiliki nilai primary key atau unique key yang sama dengan record di sumber, record di tujuan tetap dipertahankan dan record dari sumber dilewati. Hal ini dapat menyebabkan ketidakkonsistenan data.
Synchronization TopologyPilih One-way Synchronization.
Capitalization of Object Names in Destination InstanceMengatur kapitalisasi nama database dan koleksi di instans tujuan. Default: DTS default policy. Lihat Specify the capitalization of object names.
Source ObjectsPilih database atau koleksi yang akan disinkronkan, lalu klik 向右 untuk memindahkannya ke Selected Objects.
Selected ObjectsUntuk mengganti nama satu objek, klik kanan objek tersebut. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Map object names. Untuk memfilter data menggunakan kondisi WHERE, klik kanan suatu objek. Lihat Set filter conditions.

Langkah 6: Konfigurasi pengaturan lanjutan

Klik Next: Advanced Settings dan konfigurasikan hal berikut:

Verifikasi data

Untuk pengaturan verifikasi data, lihat Konfigurasi verifikasi data.

Pengaturan lanjutan

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menggunakan kluster bersama. Untuk stabilitas lebih tinggi, beli kluster khusus. Lihat Apa itu kluster khusus DTS.
Set AlertsNo: tanpa notifikasi. Yes: konfigurasi peringatan. Tentukan ambang batas latensi dan kontak notifikasi. Lihat Konfigurasi pemantauan dan peringatan.
Retry Time for Failed ConnectionsBerapa lama DTS mencoba ulang setelah kegagalan koneksi. Rentang: 10–1.440 menit. Default: 720 menit. Atur ke nilai lebih dari 30 menit. Jika koneksi dipulihkan dalam periode ini, DTS melanjutkan tugas. Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu coba ulang terpendek yang berlaku. Biaya instance DTS tetap berjalan selama percobaan ulang.
Retry Time for Other IssuesBerapa lama DTS mencoba ulang setelah kegagalan DDL atau DML. Rentang: 1–1.440 menit. Default: 10 menit. Atur ke nilai lebih dari 10 menit. Harus kurang dari Retry Time for Failed Connections.
Enable Throttling for Full Data MigrationMembatasi beban baca/tulis pada sumber dan tujuan selama sinkronisasi data penuh. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Hanya terlihat jika Full Data Synchronization dipilih.
Enable Throttling for Incremental Data SynchronizationMembatasi beban selama sinkronisasi inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
Environment TagTag untuk mengidentifikasi instance DTS. Opsional.
Configure ETLYes: aktifkan ekstrak, transformasi, dan muat (ETL) dan masukkan pernyataan pemrosesan data. Lihat Konfigurasi ETL. No: lewati ETL. Untuk ikhtisar ETL, lihat Apa itu ETL?.

Langkah 7: Simpan pengaturan dan jalankan pemeriksaan awal

Klik Next: Save Task Settings and Precheck.

Untuk melihat pratinjau parameter OpenAPI untuk tugas ini, arahkan kursor ke tombol dan klik Preview OpenAPI parameters sebelum melanjutkan.

DTS menjalankan pemeriksaan awal sebelum tugas dimulai. Jika pemeriksaan awal gagal:

  • Klik View Details di samping setiap item yang gagal, selesaikan masalahnya, lalu klik Precheck Again.

  • Untuk item peringatan yang dapat diabaikan dengan aman, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.

Langkah 8: Tunggu hingga pemeriksaan awal selesai

Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.

Langkah 9: Beli instance sinkronisasi

Konfigurasikan parameter berikut:

ParameterDeskripsi
Billing MethodSubscription: bayar di muka untuk jangka waktu tetap. Lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam. Lebih fleksibel untuk penggunaan jangka pendek. Lepaskan instance saat tidak lagi diperlukan untuk menghentikan biaya.
Resource Group SettingsKelompok sumber daya untuk instance. Default: default resource group. Lihat Apa itu Resource Management?.
Instance ClassKecepatan sinkronisasi bervariasi berdasarkan kelas instance. Pilih berdasarkan volume data dan persyaratan latensi Anda. Lihat Kelas instance instansi sinkronisasi data.
Subscription DurationHanya tersedia untuk metode penagihan Subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun.

Langkah 10: Mulai tugas

  1. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

  2. Klik Buy and Start.

  3. Di dialog konfirmasi, klik OK.

Tugas muncul di daftar tugas. Pantau perkembangannya dari sana.

Langkah selanjutnya

FAQ

  • Mengapa latensi tugas dan inkonsistensi data terjadi meskipun tidak ada data yang ditulis ke database?

    • Penyebab: Konflik antara mekanisme penghapusan otomatis indeks TTL di koleksi MongoDB dan mekanisme sinkronisasi data DTS dapat menyebabkan latensi dan inkonsistensi data dalam tugas sinkronisasi atau migrasi.

      • Operasi DELETE yang terlewat selama penulisan inkremental mengurangi efisiensi: Saat indeks TTL di instance sumber menghapus data yang kedaluwarsa, ia menghasilkan catatan DELETE di Oplog. DTS kemudian menyinkronkan operasi DELETE ini. Jika indeks TTL di instance tujuan telah menghapus data yang sama, operasi DELETE dari DTS tidak akan menemukan data untuk dihapus. Mesin MongoDB kemudian mengembalikan jumlah baris yang terpengaruh yang tidak sesuai harapan. Hal ini memicu proses penanganan pengecualian dan mengurangi efisiensi migrasi.

      • Inkonsistensi data akibat penghapusan asinkron data yang kedaluwarsa: Indeks TTL tidak menghapus data secara real time. Data yang kedaluwarsa mungkin masih ada di instance sumber saat sudah dihapus di instance tujuan. Hal ini menyebabkan inkonsistensi data.

        Contoh:

        Oplog atau ChangeStream MongoDB hanya mencatat bidang yang diperbarui untuk operasi UPDATE. Tidak mencatat dokumen lengkap sebelum dan sesudah pembaruan. Oleh karena itu, jika operasi UPDATE tidak menemukan data target di tujuan, DTS mengabaikan operasi tersebut.

        Waktu

        Instance sumber

        Instance tujuan

        1

        Layanan memasukkan data

        2

        DTS menyinkronkan operasi INSERT

        3

        Data telah kedaluwarsa tetapi belum dihapus oleh indeks TTL

        4

        Layanan memperbarui data (misalnya, memperbarui bidang indeks TTL untuk mengubah waktu kedaluwarsa)

        5

        Indeks TTL menghapus data

        6

        DTS menyinkronkan UPDATE, tetapi data tidak ditemukan. Operasi diabaikan.

        Akibatnya, dokumen ini hilang dari instance MongoDB tujuan.

    • Solusi: Anda perlu sementara memodifikasi waktu kedaluwarsa indeks TTL di tujuan selama sinkronisasi atau migrasi untuk memastikan efisiensi dan konsistensi. Untuk informasi lebih lanjut, lihat Praktik terbaik untuk menyinkronkan/migrasi koleksi dengan indeks TTL saat MongoDB menjadi sumber.