全部产品
Search
文档中心

Data Transmission Service:Konfigurasikan sinkronisasi data dua arah antara instans set replika ApsaraDB for MongoDB

更新时间:Mar 01, 2026

Data Transmission Service (DTS) melakukan sinkronisasi data dua arah antara dua instans set replika ApsaraDB for MongoDB. Kedua instans tetap dapat ditulisi, dan perubahan pada salah satu sisi akan disebarkan ke sisi lain melalui sepasang tugas sinkronisasi maju dan balik.

Cara kerja

Instansi sinkronisasi dua arah terdiri dari dua tugas:

  1. Forward task: Menyinkronkan data dari Instans A ke Instans B, mencakup sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental.

  2. Reverse task: Menyinkronkan data dari Instans B kembali ke Instans A, hanya menangani sinkronisasi data inkremental.

Configure forward task --> Precheck --> Purchase --> Forward task Running
                                                         |
                                       Configure reverse task --> Precheck --> Reverse task Running
                                                                                     |
                                                                   Both tasks Running = Two-way sync active
Penting

Hanya tugas maju yang menyinkronkan data penuh. Tugas balik hanya menyinkronkan data inkremental. Tunggu hingga tugas maju mencapai status Running sebelum mengonfigurasi tugas balik.

Topologi yang didukung

DTS mendukung sinkronisasi data dua arah antara tepat dua instans set replika ApsaraDB for MongoDB. Sinkronisasi dua arah di antara tiga atau lebih instans tidak didukung.

Resolusi konflik

DTS menggunakan strategi resolusi konflik tetap ("Ignore"): ketika terjadi konflik, DTS mempertahankan data yang ada di koleksi tujuan dan melewatkan operasi yang bertentangan. Strategi ini tidak dapat diubah.

Penting

Karena jam sistem pada kedua instans mungkin berbeda dan terdapat latensi sinkronisasi, mekanisme deteksi konflik tidak dapat mencegah semua konflik data. Untuk menghindari konflik, perbarui catatan dengan primary key, business primary key, atau unique key yang sama hanya pada satu node sinkronisasi.

Jenis konflikPerilaku
INSERT uniqueness conflictDTS melewatkan INSERT jika tujuan sudah memiliki catatan dengan kunci yang sama.
UPDATE pada catatan yang tidak ada atau bertentanganDTS melewatkan UPDATE jika catatan target tidak ada atau bertentangan dengan catatan lain.
DELETE pada catatan yang tidak adaDTS melewatkan DELETE jika catatan target tidak ada.

Jenis sinkronisasi

TipeDeskripsi
Schema synchronizationMenyinkronkan skema objek yang dipilih dari sumber ke instans ApsaraDB for MongoDB tujuan.
Full data synchronizationMenyinkronkan data historis (database dan koleksi) dari sumber ke instans ApsaraDB for MongoDB tujuan.
Incremental data synchronizationMenyinkronkan perubahan berkelanjutan. Operasi yang didukung: CREATE COLLECTION, CREATE INDEX, DROP COLLECTION, DROP INDEX, RENAME COLLECTION, serta insert, update, dan delete dokumen. Hanya perintah $set yang didukung untuk data file inkremental. DTS tidak menyinkronkan data inkremental dari database yang dibuat setelah tugas dimulai.

Prasyarat

Sebelum memulai, pastikan bahwa:

Catatan

Jika replication.oplogGlobalIdEnabled tidak diatur ke true, pemeriksaan awal gagal atau kesalahan two-way mongo must have gid dikembalikan.

Langkah 1: Buka halaman sinkronisasi data

Gunakan salah satu metode berikut untuk membuka halaman Sinkronisasi Data:

Konsol DTS

  1. Masuk ke Konsol DTS.

  2. Pada panel navigasi kiri, klik Data Synchronization.

  3. Pada pojok kiri atas, pilih wilayah tempat tugas sinkronisasi data berada.

Konsol DMS

Catatan

Operasi aktual dapat berbeda tergantung pada mode dan tata letak Konsol DMS. Untuk informasi selengkapnya, lihat Simple mode dan Sesuaikan tata letak dan gaya Konsol DMS.

  1. Masuk ke Konsol DMS.

  2. Pada bilah navigasi atas, arahkan kursor ke Data + AI lalu pilih DTS (DTS) > Data Synchronization.

  3. Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instansi sinkronisasi data berada.

Langkah 2: Buat dan konfigurasikan tugas sinkronisasi maju

  1. Klik Create Task.

  2. (Opsional) Klik New Configuration Page di pojok kanan atas.

    Catatan

    Lewati langkah ini jika tombol Back to Previous Version ditampilkan. Versi baru halaman konfigurasi direkomendasikan.

  3. Konfigurasikan database sumber dan tujuan dengan parameter berikut.

    Database sumber

    ParameterDeskripsi
    Task NameDTS secara otomatis menghasilkan nama. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama unik tidak diperlukan.
    Select Existing ConnectionJika instans database terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi parameter lainnya secara otomatis. Untuk informasi selengkapnya, lihat Manage database connections. Jika instans belum terdaftar, konfigurasikan parameter di bawah ini.
    Database TypePilih MongoDB.
    Access MethodPilih Alibaba Cloud Instance.
    Instance RegionPilih wilayah instans ApsaraDB for MongoDB sumber.
    Replicate Data Across Alibaba Cloud AccountsPilih No.
    ArchitecturePilih Replica Set.
    Migration MethodPilih Oplog.
    Instance IDPilih instans ApsaraDB for MongoDB sumber.
    Authentication DatabaseDatabase yang menyimpan kredensial akun. Default: admin.
    Database AccountAkun database instans sumber. Akun harus memiliki izin baca pada database sumber, database config, database admin, dan database local. Untuk informasi selengkapnya, lihat Use DMS to manage database accounts.
    Database PasswordKata sandi untuk akun database.
    EncryptionPilih Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL sesuai kebutuhan Anda. Opsi yang tersedia bergantung pada pengaturan Access Method dan Architecture. Jika Architecture adalah Sharded Cluster dan Migration Method adalah Oplog, opsi SSL-encrypted tidak tersedia.

    Database tujuan

    ParameterDeskripsi
    Select Existing ConnectionJika instans database terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi parameter lainnya secara otomatis. Untuk informasi selengkapnya, lihat Manage database connections. Jika instans belum terdaftar, konfigurasikan parameter di bawah ini.
    Database TypePilih MongoDB.
    Access MethodPilih Alibaba Cloud Instance.
    Instance RegionPilih wilayah instans ApsaraDB for MongoDB tujuan.
    Replicate Data Across Alibaba Cloud AccountsPilih No.
    ArchitecturePilih Replica Set.
    Instance IDPilih instans ApsaraDB for MongoDB tujuan.
    Authentication DatabaseDatabase yang menyimpan kredensial akun. Default: admin.
    Database AccountAkun database instans tujuan. Akun harus memiliki izin dbAdminAnyDatabase, izin baca dan tulis pada database tujuan, serta izin baca pada database local. Untuk informasi selengkapnya, lihat Use DMS to manage database accounts.
    Database PasswordKata sandi untuk akun database.
    EncryptionPilih Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL sesuai kebutuhan Anda. Opsi yang tersedia bergantung pada pengaturan Access Method dan Architecture. Jika tujuan adalah instans ApsaraDB for MongoDB dengan Architecture diatur ke Sharded Cluster, opsi SSL-encrypted tidak tersedia.
  4. Klik Test Connectivity and Proceed.

    Catatan

    Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan. Untuk informasi selengkapnya, lihat Add the CIDR blocks of DTS servers.

Langkah 3: Konfigurasikan objek sinkronisasi

  1. Pada langkah Configure Objects, konfigurasikan parameter berikut.

    ParameterDeskripsi
    Synchronization TypesIncremental Data Synchronization dipilih secara default. Pilih juga Schema Synchronization dan Full Data Synchronization.
    Processing Mode of Conflicting TablesPrecheck and Report Errors: Memeriksa koleksi dengan nama identik di sumber dan tujuan. Jika nama identik ditemukan, kesalahan dikembalikan dan tugas tidak dapat dimulai. Untuk menyelesaikan konflik, gunakan object name mapping untuk mengganti nama koleksi. Ignore Errors and Proceed: Melewatkan pemeriksaan nama identik. Jika tujuan memiliki catatan dengan nilai primary key atau unique key yang sama, DTS tidak menyinkronkan catatan tersebut dan mempertahankan data yang ada. Inisialisasi data mungkin gagal, hanya kolom tertentu yang disinkronkan, atau instansi sinkronisasi data gagal.
    Synchronization TopologyPilih Two-way Synchronization.
    Exclude DDL OperationsYes: Mengecualikan operasi DDL. No: Menyinkronkan operasi DDL. Untuk menjaga stabilitas, operasi DDL hanya disinkronkan dalam arah maju.
    Conflict Resolution PolicyDiatur ke Ignore (nilai tetap). Catatan konflik di database tujuan dipertahankan. Untuk informasi selengkapnya, lihat Conflict resolution.
    Capitalization of Object Names in Destination InstanceDefault: DTS default policy. Pilih opsi lain untuk menyesuaikan kapitalisasi nama objek dengan database sumber atau tujuan. Untuk informasi selengkapnya, lihat Specify the capitalization of object names in the destination instance.
    Source ObjectsPilih database atau koleksi dari panel Source Objects lalu klik ikon panah kanan untuk menambahkannya ke panel Selected Objects.
    Selected ObjectsKlik kanan objek untuk mengganti namanya di database tujuan atau memetakannya ke objek tujuan tertentu. Untuk informasi selengkapnya, lihat Map object names. Untuk menghapus objek, pilih lalu klik ikon panah kiri. Untuk menyinkronkan data inkremental berdasarkan database atau koleksi, klik kanan Selected Objects lalu pilih operasi di kotak dialog yang muncul. Untuk memfilter data selama sinkronisasi data penuh, klik kanan koleksi dan konfigurasikan kondisi filter. Untuk informasi selengkapnya, lihat Specify filter conditions. Jika Anda menggunakan object name mapping untuk mengganti nama database atau koleksi, objek dependen mungkin gagal disinkronkan.
  2. Klik Next: Advanced Settings lalu konfigurasikan parameter berikut.

    ParameterDeskripsi
    Dedicated Cluster for Task SchedulingSecara default, tugas berjalan di kluster bersama. Untuk meningkatkan stabilitas, beli kluster khusus. Untuk informasi selengkapnya, lihat What is a DTS dedicated cluster.
    Retry Time for Failed ConnectionsRentang waktu untuk mencoba ulang koneksi yang gagal. Nilai valid: 10 hingga 1440 menit. Default: 720. Atur nilai lebih besar dari 30. Jika DTS terhubung kembali dalam waktu yang ditentukan, tugas dilanjutkan. Jika tidak, tugas gagal. Jika beberapa tugas berbagi database sumber atau tujuan, waktu coba ulang terpendek yang berlaku. DTS membebankan biaya untuk instans selama masa coba ulang.
    Retry Time for Other IssuesRentang waktu untuk mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1 hingga 1440 menit. Default: 10. Atur nilai lebih besar dari 10. Nilai ini harus lebih kecil dari Retry Time for Failed Connections.
    Enable Throttling for Full Data SynchronizationKonfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s) untuk mengurangi beban pada server tujuan. Tersedia hanya jika Full Data Synchronization dipilih.
    Only one data type for primary key _id in a table of the data to be synchronizedApakah tipe data untuk primary key _id unik di setiap koleksi. Yes: DTS tidak memindai tipe data _id dan hanya menyinkronkan satu tipe data per koleksi. No: DTS memindai tipe data _id dan menyinkronkan semua data yang cocok. Atur berdasarkan data Anda. Ditampilkan hanya jika Full Data Synchronization dipilih.
    Enable Throttling for Incremental Data SynchronizationKonfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s) untuk mengurangi beban pada server tujuan.
    Environment TagTag lingkungan untuk mengidentifikasi instans DTS. Opsional.
    Configure ETLYes: Konfigurasikan ekstrak, transformasi, muat (ETL). Untuk informasi selengkapnya, lihat What is ETL? dan Configure ETL in a data synchronization task. No: Jangan konfigurasikan ETL.
    Monitoring and AlertingYes: Konfigurasikan ambang batas peringatan dan pengaturan notifikasi untuk kegagalan tugas atau latensi sinkronisasi. Untuk informasi selengkapnya, lihat Configure monitoring and alerting. No: Jangan aktifkan peringatan.
  3. Klik Next Step: Data Verification lalu konfigurasikan verifikasi data. Untuk informasi selengkapnya, lihat Configure a data verification task.

Langkah 4: Jalankan pemeriksaan awal dan beli instans

  1. Simpan pengaturan tugas dan jalankan pemeriksaan awal.

    • Untuk melihat parameter API tugas, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.

    • Klik Next: Save Task Settings and Precheck.

    Catatan
    • DTS melakukan pemeriksaan awal sebelum memulai tugas. Tugas hanya dapat dimulai setelah lulus pemeriksaan awal.

    • Jika pemeriksaan awal gagal, klik View Details di sebelah item yang gagal, atasi masalahnya, lalu jalankan ulang pemeriksaan awal.

    • Jika peringatan dipicu: untuk item yang tidak dapat diabaikan, atasi masalahnya lalu jalankan ulang pemeriksaan awal. Untuk item yang dapat diabaikan, klik Confirm Alert Details, lalu Ignore, lalu OK, dan jalankan ulang pemeriksaan awal. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.

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

  3. Pada halaman pembelian, konfigurasikan instans.

    ParameterDeskripsi
    Billing MethodSubscription: Bayar di muka untuk penggunaan jangka panjang. Pay-as-you-go: Ditagih per jam. Cocok untuk penggunaan jangka pendek. Lepaskan instans saat tidak lagi diperlukan.
    Resource Group SettingsKelompok sumber daya untuk instans. Default: default resource group. Untuk informasi selengkapnya, lihat What is Resource Management?
    Instance ClassPilih kelas instans berdasarkan kebutuhan kecepatan sinkronisasi. Untuk informasi selengkapnya, lihat Instance classes of data synchronization instances.
    Subscription DurationTersedia hanya untuk Subscription. Nilai valid: 1 hingga 9 bulan, atau 1, 2, 3, atau 5 tahun.
  4. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

  5. Klik Buy and Start. Di kotak dialog, klik OK. Tugas sinkronisasi maju muncul di daftar tugas.

Langkah 5: Konfigurasikan tugas sinkronisasi balik

  1. Tunggu hingga sinkronisasi awal selesai dan status tugas sinkronisasi maju berubah menjadi Running.

  2. Di daftar tugas, temukan tugas sinkronisasi balik lalu klik Configure Task.

  3. Konfigurasikan tugas sinkronisasi balik dengan mengulangi sub-langkah konfigurasi di Langkah 2 (mulai dari sub-langkah 3), Langkah 3, dan pemeriksaan awal di Langkah 4, dengan penyesuaian berikut:

    Catatan

    Tugas balik dibuat secara otomatis saat Anda membeli tugas maju. Anda tidak perlu mengklik Create Task (Langkah 2, sub-langkah 1) atau membeli instans baru (Langkah 4, sub-langkah 3 dan seterusnya).

    Penting

    - Instans sumber dalam arah balik adalah instans tujuan dalam arah maju, dan sebaliknya. Pastikan nama database, akun, dan kata sandi dikonfigurasi sesuai. - Jangan gunakan object name mapping dalam arah balik. Jika tidak, inkonsistensi data dapat terjadi. - Instance Region tidak dapat diubah dalam arah balik. Konfigurasikan hanya parameter yang ditampilkan di konsol. - Untuk Processing Mode of Conflicting Tables, pastikan koleksi yang sudah disinkronkan ke tujuan oleh tugas maju diabaikan. - Anda tidak dapat memilih objek yang sama dari daftar Selected Objects yang digunakan oleh tugas maju. - Tugas balik mengabaikan operasi DDL.

  4. Tunggu hingga Success Rate mencapai 100%, lalu klik Back.

Langkah 6: Verifikasi status sinkronisasi

Setelah kedua tugas sinkronisasi maju dan balik memasuki status Running, sinkronisasi data dua arah aktif. Pantau status tugas di daftar tugas.

Penagihan

Jenis sinkronisasiBiaya
Schema synchronization dan full data synchronizationGratis
Incremental data synchronizationDikenai biaya. Untuk informasi selengkapnya, lihat Billing overview.

Batasan

Persyaratan database sumber dan tujuan

  • Sumber dan tujuan harus keduanya merupakan instans ApsaraDB for MongoDB dengan arsitektur yang sama. Sinkronisasi dua arah tidak didukung untuk database MongoDB yang dikelola sendiri atau instans dengan arsitektur berbeda.

  • Versi MongoDB tujuan harus sama atau lebih baru daripada versi sumber.

  • DTS tidak dapat menyinkronkan data dari database admin, config, atau local.

  • Database sumber tidak boleh berupa klaster Azure Cosmos DB for MongoDB atau klaster elastis Amazon DocumentDB.

  • DTS tidak dapat terhubung ke database MongoDB melalui titik akhir SRV.

Oplog dan change streams

  • Oplog harus diaktifkan pada database sumber dan harus menyimpan data log selama minimal tujuh hari. Atau, aktifkan change streams agar DTS dapat berlangganan perubahan data dalam tujuh hari terakhir. Jika tidak, sinkronisasi data mungkin gagal dan inkonsistensi atau kehilangan data dapat terjadi. Masalah yang timbul dalam kondisi seperti ini tidak dicakup oleh perjanjian tingkat layanan (SLA) DTS.

  • Gunakan oplog untuk mencatat perubahan data (direkomendasikan).

  • Change streams memerlukan MongoDB 4.0 atau lebih baru. Sinkronisasi dua arah tidak didukung saat menggunakan change streams.

  • Untuk klaster Amazon DocumentDB non-elastis, aktifkan change streams dan atur Migration Method ke ChangeStream dan Architecture ke Sharded Cluster.

Batasan DDL dan skema

  • Selama sinkronisasi skema dan sinkronisasi data penuh, jangan mengubah skema database atau koleksi (termasuk pembaruan tipe array). Melakukannya menyebabkan kegagalan tugas atau inkonsistensi data.

  • Hanya selama sinkronisasi data penuh, jangan menulis data ke database sumber. Jika tidak, inkonsistensi data terjadi.

  • Untuk menjaga stabilitas sinkronisasi dua arah, operasi DDL hanya disinkronkan dalam arah maju. Tugas balik mengabaikan operasi DDL.

Batasan tipe data dan koleksi

  • Koleksi harus memiliki kendala PRIMARY KEY atau UNIQUE dengan semua bidang unik. Jika tidak, database tujuan mungkin berisi catatan data duplikat.

  • Satu entri data tidak boleh melebihi 16 MB. Tugas gagal jika batas ini dilampaui.

  • Saat mengedit koleksi di tujuan (misalnya, mengganti nama), satu tugas mendukung hingga 1.000 koleksi. Untuk lebih dari 1.000 koleksi, bagi pekerjaan ke beberapa tugas atau sinkronkan seluruh database.

  • Jika koleksi memiliki indeks unik atau atribut capped bernilai true, koleksi hanya mendukung penulisan single-thread tanpa replay konkuren selama sinkronisasi data inkremental. Hal ini dapat meningkatkan latensi sinkronisasi.

Integritas data dan perilaku konflik

  • Jika terjadi konflik primary key atau unique key saat DTS menulis ke koleksi tujuan, DTS melewatkan pernyataan tulis dan mempertahankan data tujuan yang ada.

  • Informasi transaksi tidak dipertahankan. Transaksi dikonversi menjadi satu catatan di database tujuan.

  • Indeks TTL dapat menyebabkan inkonsistensi data antara database sumber dan tujuan setelah sinkronisasi.

  • Database tujuan tidak boleh memiliki data dengan primary key yang sama (default: _id) seperti database sumber. Jika tidak, kehilangan data dapat terjadi. Jika terdapat primary key duplikat, hapus data yang bertentangan di database tujuan tanpa mengganggu DTS.

  • Menulis data dari sumber lain ke tujuan selama sinkronisasi menyebabkan inkonsistensi data. Misalnya, menggunakan DMS untuk mengeksekusi pernyataan DDL online sambil menulis dari sumber lain dapat menyebabkan kehilangan data.

Kinerja dan penyimpanan

  • Server yang menghosting database sumber harus memiliki bandwidth keluar yang cukup. Bandwidth yang tidak mencukupi memengaruhi kecepatan sinkronisasi.

  • Sinkronisasi data penuh menggunakan sumber daya baca dan tulis kedua database dan dapat meningkatkan beban server. Jadwalkan sinkronisasi selama jam sepi.

  • Data ditulis secara konkuren ke database tujuan selama sinkronisasi data penuh. Penyimpanan tujuan 5% hingga 10% lebih besar daripada sumber setelah sinkronisasi.

  • Gunakan db.$table_name.aggregate([{ $count:"myCount"}]) untuk mengkueri operasi count pada database MongoDB tujuan.

Aturan tugas sinkronisasi dua arah

  • Hanya salah satu dari dua tugas (maju atau balik) yang dapat menyinkronkan data penuh dan inkremental. Tugas lainnya hanya menyinkronkan data inkremental.

  • Data sumber tugas saat ini disinkronkan ke database tujuan hanya dalam tugas tersebut. Data yang disinkronkan tidak digunakan sebagai data sumber untuk tugas lainnya.

  • Jika tugas DTS gagal, dukungan teknis DTS berupaya memulihkannya dalam waktu 8 jam. Tugas mungkin dimulai ulang dan parameter tugas mungkin dimodifikasi (parameter database tidak dimodifikasi). Untuk detail parameter yang dapat dimodifikasi, lihat Modify instance parameters.