Topik ini menjelaskan cara memigrasikan data dari instans replica set ApsaraDB for MongoDB ke instans replica set atau kluster sharded ApsaraDB for MongoDB menggunakan Data Transmission Service (DTS).
Database sumber dan tujuan yang didukung
Database sumber (replica set) | Database tujuan (replica set atau kluster sharded) |
ApsaraDB for MongoDB | ApsaraDB for MongoDB |
Database yang dikelola sendiri pada instance ECS | Database yang dikelola sendiri pada instance ECS |
Database yang dikelola sendiri yang terhubung menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway | Database yang dikelola sendiri yang terhubung menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway |
Database yang dikelola sendiri dengan alamat IP publik | Database yang dikelola sendiri dengan alamat IP publik |
Topik ini memberikan contoh konfigurasi untuk sumber ApsaraDB for MongoDB replica set dan instans tujuan ApsaraDB for MongoDB (replica set atau kluster sharded). Proses konfigurasi untuk sumber data lainnya serupa.
Prasyarat
Anda telah membuat instans replica set ApsaraDB for MongoDB sebagai sumber dan instans replica set atau kluster sharded ApsaraDB for MongoDB sebagai tujuan. Untuk informasi lebih lanjut, lihat Buat instans replica set dan Buat instans kluster sharded.
CatatanUntuk informasi tentang versi yang didukung, lihat Ikhtisar solusi migrasi.
Instans ApsaraDB for MongoDB tujuan harus memiliki ruang penyimpanan minimal 10% lebih besar daripada instans ApsaraDB for MongoDB sumber.
Jika instans ApsaraDB for MongoDB tujuan adalah kluster sharded, Anda harus membuat database dan koleksi yang memerlukan sharding, mengonfigurasi sharding data, mengaktifkan balancer, dan melakukan pre-sharding di instans ApsaraDB for MongoDB tujuan sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Siapkan sharding data untuk memaksimalkan kinerja shard dan Cara menangani distribusi data tidak merata di kluster sharded MongoDB.
CatatanMengonfigurasi sharding data mencegah semua data dimigrasikan ke satu shard saja, sehingga memastikan kinerja kluster optimal; mengaktifkan balancer dan melakukan pre-sharding mencegah kesenjangan data.
Catatan
|
Jenis |
Deskripsi |
|
Batasan database sumber |
|
|
Batasan lainnya |
|
|
Kasus khusus |
Jika database sumber adalah database MongoDB yang dikelola sendiri:
Catatan
Jika Anda memigrasikan seluruh database, Anda juga dapat membuat tabel heartbeat yang diperbarui secara berkala, misalnya setiap detik. |
Penagihan
|
Jenis migrasi |
Biaya konfigurasi instans |
Biaya lalu lintas internet |
|
Migrasi skema dan migrasi data penuh |
Gratis. |
Saat parameter Access Method untuk database tujuan diatur ke Public IP Address, Anda akan dikenai biaya untuk lalu lintas internet. Untuk informasi selengkapnya, lihat Ringkasan penagihan. |
|
Migrasi data inkremental |
Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. |
Jenis migrasi
Jenis | Deskripsi |
migrasi skema | Migrasikan skema objek migrasi dari ApsaraDB for MongoDB sumber ke ApsaraDB for MongoDB tujuan. Catatan Migrasi skema didukung untuk database, koleksi, dan indeks. |
migrasi data penuh | Migrasikan semua data yang ada dari objek migrasi di ApsaraDB for MongoDB sumber ke ApsaraDB for MongoDB tujuan. Catatan Migrasi data penuh didukung untuk data dalam database dan koleksi. |
migrasi data inkremental | Selain migrasi penuh, Anda dapat memigrasikan pembaruan inkremental dari ApsaraDB for MongoDB sumber ke ApsaraDB for MongoDB tujuan. OplogMigrasi inkremental tidak mendukung database yang dibuat setelah tugas dimulai. Pembaruan inkremental berikut didukung:
Change streamPembaruan inkremental berikut didukung:
|
Izin akun database
Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
Instans ApsaraDB for MongoDB sumber | Izin baca pada database yang akan dimigrasikan dan database config. | Izin baca pada database yang akan dimigrasikan, database admin, dan database local. | |
Instans ApsaraDB for MongoDB tujuan | dbAdminAnyDatabase, readWrite pada database tujuan, dan read pada database local. | ||
Untuk membuat akun database dan memberikan izin untuk instans ApsaraDB for MongoDB sumber dan tujuan, lihat Kelola pengguna database MongoDB dengan DMS.
Prosedur
-
Buka halaman daftar tugas migrasi untuk wilayah tujuan menggunakan salah satu metode berikut.
Dari Konsol DTS
-
Masuk ke Konsol Data Transmission Service (DTS).
-
Di panel navigasi kiri, klik Data Migration.
-
Di pojok kiri atas halaman, pilih wilayah tempat instans migrasi berada.
Dari Konsol DMS
CatatanOperasi aktual dapat berbeda tergantung mode dan tata letak konsol DMS. Untuk informasi lebih lanjut, lihat Konsol mode sederhana dan Sesuaikan tata letak dan gaya konsol DMS.
-
Masuk ke Konsol Data Management (DMS).
-
Di bilah menu atas, pilih .
-
Di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
-
-
Klik Create Task untuk membuka halaman konfigurasi tugas.
Konfigurasikan database sumber dan tujuan.
PeringatanSetelah memilih instans sumber dan tujuan, kami sarankan Anda membaca dengan cermat batasan yang ditampilkan di bagian atas halaman. Jika tidak, tugas dapat gagal atau terjadi ketidakkonsistenan data.
Kategori
Parameter
Deskripsi
N/A
Task Name
DTS secara otomatis menghasilkan nama tugas. Kami sarankan Anda menentukan nama deskriptif agar mudah diidentifikasi. Nama tidak perlu unik.
Source Database
Select Existing Connection
-
Untuk menggunakan instans database yang telah ditambahkan ke sistem (dibuat atau disimpan), pilih instans database yang diinginkan dari daftar drop-down. Informasi database di bawah akan dikonfigurasi secara otomatis.
CatatanDi konsol DMS, parameter ini bernama Select a DMS database instance..
-
Jika Anda belum mendaftarkan instans database ke sistem, atau tidak perlu menggunakan instans terdaftar, konfigurasikan informasi database secara manual di bawah.
Database Type
Pilih MongoDB.
Connection Type
Pilih Cloud instance.
Instance Region
Pilih wilayah tempat instans ApsaraDB for MongoDB sumber berada.
Replicate Data Across Alibaba Cloud Accounts
Dalam contoh ini, instans database di bawah Akun Alibaba Cloud saat ini digunakan. Pilih No.
Architecture
Pilih Replica Set.
Replica Set: Arsitektur ini menggunakan beberapa node untuk memastikan ketersediaan tinggi dan mengaktifkan pemisahan baca/tulis. Untuk informasi lebih lanjut, lihat Arsitektur replica set.
Sharded Cluster: Arsitektur ini terdiri dari komponen mongos, shard, dan ConfigServer. Anda dapat menyesuaikan jumlah dan konfigurasi node mongos dan shard. Untuk informasi lebih lanjut, lihat Arsitektur kluster sharded.
Migration Method
Pilih metode untuk migrasi data inkremental sesuai kebutuhan Anda.
Oplog (Direkomendasikan):
Opsi ini tersedia jika oplog diaktifkan untuk database sumber.
CatatanOplog diaktifkan secara default baik untuk database MongoDB yang dikelola sendiri maupun instans ApsaraDB for MongoDB. Metode ini menawarkan latensi lebih rendah untuk migrasi data inkremental karena penarikan log lebih cepat. Oleh karena itu, kami merekomendasikan memilih Oplog.
ChangeStream: Opsi ini tersedia jika Change Streams diaktifkan untuk database sumber.
CatatanJika database sumber adalah instans Amazon DocumentDB (kluster non-elastis), Anda hanya dapat memilih ChangeStream.
Jika Anda mengatur Architecture ke Sharded Cluster untuk database sumber, Anda tidak perlu memasukkan Shard account atau Shard password.
Instance ID
Pilih ID instans dari instans ApsaraDB for MongoDB sumber.
Authentication Database
Masukkan nama database tempat akun database instans ApsaraDB for MongoDB sumber berada. Nilai default adalah admin.
Database Account
Masukkan akun database instans ApsaraDB for MongoDB sumber. Untuk informasi tentang persyaratan izin, lihat Izin akun database.
Database Password
Masukkan kata sandi untuk akun database.
Encryption
DTS mendukung tiga metode koneksi: Non-encrypted, SSL-encrypted, dan Mongo Atlas SSL. Opsi untuk Encryption bervariasi berdasarkan Access Method dan Architecture yang dipilih. Opsi yang ditampilkan di konsol berlaku.
CatatanDatabase MongoDB dengan Architecture Sharded Cluster dan Migration Method Oplog tidak mendukung SSL-encrypted.
Jika sumber adalah database MongoDB yang dikelola sendiri (Access Method bukan Alibaba Cloud Instance) dengan arsitektur Replica Set, dan Anda memilih SSL-encrypted, DTS juga memungkinkan Anda mengunggah sertifikat CA untuk memverifikasi koneksi.
Destination Database
Select Existing Connection
-
Untuk menggunakan instans database yang telah ditambahkan ke sistem (dibuat atau disimpan), pilih instans database yang diinginkan dari daftar drop-down. Informasi database di bawah akan dikonfigurasi secara otomatis.
CatatanDi konsol DMS, parameter ini bernama Select a DMS database instance..
-
Jika Anda belum mendaftarkan instans database ke sistem, atau tidak perlu menggunakan instans terdaftar, konfigurasikan informasi database secara manual di bawah.
Database Type
Pilih MongoDB.
Connection Type
Pilih Cloud instance.
Instance Region
Pilih wilayah tempat instans ApsaraDB for MongoDB tujuan berada.
Replicate Data Across Alibaba Cloud Accounts
Dalam contoh ini, instans database di bawah Akun Alibaba Cloud saat ini digunakan. Pilih No.
Architecture
Pilih arsitektur berdasarkan kebutuhan bisnis Anda. Nilai yang valid:
Replica Set: Arsitektur ini menggunakan beberapa node untuk memastikan ketersediaan tinggi dan mengaktifkan pemisahan baca/tulis. Untuk informasi lebih lanjut, lihat Arsitektur replica set.
Sharded Cluster: Arsitektur ini terdiri dari komponen mongos, shard, dan ConfigServer. Anda dapat menyesuaikan jumlah dan konfigurasi node mongos dan shard. Untuk informasi lebih lanjut, lihat Arsitektur kluster sharded.
Instance ID
Pilih ID instans dari instans ApsaraDB for MongoDB tujuan.
Authentication Database
Masukkan nama database tempat akun database instans ApsaraDB for MongoDB tujuan berada. Nilai default adalah admin.
Database Account
Masukkan akun database instans ApsaraDB for MongoDB tujuan. Untuk informasi tentang persyaratan izin, lihat Izin akun database.
Database Password
Masukkan kata sandi untuk akun database.
Encryption
DTS mendukung tiga metode koneksi: Non-encrypted, SSL-encrypted, dan Mongo Atlas SSL. Opsi untuk Encryption bervariasi berdasarkan Access Method dan Architecture yang dipilih. Opsi yang ditampilkan di konsol berlaku.
CatatanDatabase MongoDB dengan Architecture Sharded Cluster tidak mendukung SSL-encrypted.
Jika tujuan adalah database MongoDB yang dikelola sendiri (Access Method bukan Alibaba Cloud Instance) dengan Replica Set, dan Anda memilih SSL-encrypted, DTS juga memungkinkan Anda mengunggah sertifikat CA untuk memverifikasi koneksi.
-
-
Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman.
Catatan-
Pastikan blok CIDR alamat IP server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Hal ini dapat dilakukan secara otomatis atau manual. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR alamat IP server DTS ke daftar putih.
-
Jika database sumber atau tujuan adalah database yang dikelola sendiri (di mana Access Method bukan Alibaba Cloud Instance), Anda juga harus mengklik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
-
Konfigurasikan objek tugas.
Di halaman Configure Objects, konfigurasikan objek yang ingin Anda migrasikan.
Parameter
Deskripsi
Migration Types
-
Jika Anda hanya perlu melakukan migrasi penuh, pilih Schema Migration dan Full Data Migration.
-
Untuk melakukan migrasi tanpa downtime, pilih Schema Migration, Full Data Migration, dan Incremental Data Migration.
Catatan-
Jika Anda tidak memilih Schema Migration, Anda harus memastikan bahwa database dan tabel untuk menerima data sudah ada di database tujuan. Anda juga dapat menggunakan fitur pemetaan nama objek di kotak Selected Objects sesuai kebutuhan.
-
Jika Anda tidak memilih Incremental Data Migration, jangan menulis data baru ke instans sumber selama migrasi data untuk memastikan konsistensi data.
Untuk informasi lebih lanjut, lihat Jenis migrasi.
Processing Mode of Conflicting Tables
-
Precheck and Report Errors: Memeriksa apakah koleksi dengan nama yang sama ada di database tujuan. Jika tidak ada koleksi dengan nama yang sama, pemeriksaan awal lolos. Jika ada koleksi dengan nama yang sama, error dilaporkan selama pemeriksaan awal, dan tugas migrasi data tidak dimulai.
CatatanJika koleksi di database tujuan memiliki nama yang sama tetapi tidak dapat dengan mudah dihapus atau diganti namanya, Anda dapat mengubah nama koleksi di database tujuan. Untuk informasi lebih lanjut, lihat Pemetaan nama objek.
-
Ignore Errors and Proceed: Melewati pemeriksaan koleksi dengan nama yang sama.
PeringatanMemilih Ignore Errors and Proceed dapat menyebabkan ketidakkonsistenan data dan risiko bisnis. Misalnya:
-
Jika catatan di database tujuan memiliki nilai primary key yang sama dengan catatan di database sumber, catatan di database tujuan dipertahankan. Catatan dari database sumber tidak dimigrasikan ke database tujuan.
-
Inisialisasi data dapat gagal, hanya sebagian data yang dimigrasikan, atau migrasi gagal.
-
Capitalization of Object Names in Destination Instance
Anda dapat mengonfigurasi kebijakan kapitalisasi untuk nama database dan koleksi yang dimigrasikan di instans tujuan. Secara default, DTS default policy dipilih. Anda juga dapat memilih untuk menyelaraskan dengan kebijakan default database sumber atau tujuan. Untuk informasi lebih lanjut, lihat Kebijakan kapitalisasi nama objek untuk tujuan.
Source Objects
Di kotak Source Objects, klik objek yang ingin Anda migrasikan, lalu klik
untuk memindahkannya ke kotak Selected Objects.CatatanAnda dapat memilih objek tingkat DATABASE atau COLLECTION.
Selected Objects
-
Untuk mengatur nama objek migrasi di instans tujuan, atau menentukan objek yang menerima data di instans tujuan, klik kanan objek migrasi di kotak Selected Objects untuk melakukan perubahan. Untuk informasi lebih lanjut, lihat Pemetaan nama objek.
-
Untuk menghapus objek migrasi yang dipilih, klik objek di kotak Selected Objects, lalu klik
untuk memindahkannya ke kotak Source Objects.
CatatanUntuk memilih operasi migrasi inkremental tingkat database atau koleksi, klik kanan objek migrasi di kotak Selected Objects dan buat pilihan Anda di kotak dialog yang muncul.
Untuk mengatur kondisi penyaringan data (didukung selama migrasi data penuh tetapi tidak untuk migrasi data inkremental), klik kanan koleksi di kotak Selected Objects dan konfigurasikan pengaturan di kotak dialog yang muncul. Untuk petunjuk, lihat Atur kondisi filter.
Jika Anda menggunakan fitur pemetaan nama objek untuk menentukan database atau koleksi yang menerima data, migrasi objek lain yang bergantung pada objek ini mungkin gagal.
Klik Next: Advanced Settings untuk mengonfigurasi parameter lanjutan.
Parameter
Deskripsi
Dedicated Cluster for Task Scheduling
Secara default, DTS menjadwalkan tugas di kluster bersama. Anda tidak perlu memilih satu. Jika Anda menginginkan tugas yang lebih stabil, Anda dapat membeli kluster khusus untuk menjalankan tugas migrasi DTS.
Retry Time for Failed Connections
Setelah tugas migrasi dimulai, jika koneksi ke database sumber atau tujuan gagal, DTS melaporkan error dan segera mulai mencoba koneksi ulang. Durasi percobaan ulang default adalah 720 menit. Anda dapat menyesuaikan waktu percobaan ulang ke nilai antara 10 hingga 1.440 menit. Kami sarankan Anda mengatur durasi lebih dari 30 menit. Jika DTS terhubung kembali ke database sumber dan tujuan dalam durasi yang ditentukan, tugas migrasi akan dilanjutkan secara otomatis. Jika tidak, tugas gagal.
Catatan-
Untuk beberapa instans DTS yang berbagi sumber atau tujuan yang sama, waktu percobaan ulang jaringan ditentukan oleh pengaturan tugas yang terakhir dibuat.
-
Karena Anda dikenai biaya untuk tugas selama periode percobaan ulang koneksi, kami sarankan Anda menyesuaikan waktu percobaan ulang berdasarkan kebutuhan bisnis Anda, atau melepas instans DTS sesegera mungkin setelah instans database sumber dan tujuan dilepas.
Retry Time for Other Issues
Setelah tugas migrasi dimulai, jika terjadi masalah non-konektivitas, seperti pengecualian eksekusi DDL atau DML, di database sumber atau tujuan, DTS melaporkan error dan segera mulai mencoba operasi ulang. Durasi percobaan ulang default adalah 10 menit. Anda dapat menyesuaikan waktu percobaan ulang ke nilai antara 1 hingga 1.440 menit. Kami sarankan Anda mengatur durasi lebih dari 10 menit. Jika operasi terkait berhasil dalam durasi percobaan ulang yang ditentukan, tugas migrasi akan dilanjutkan secara otomatis. Jika tidak, tugas gagal.
PentingNilai Retry Time for Other Issues harus kurang dari nilai Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Selama migrasi penuh, DTS mengonsumsi sumber daya baca/tulis di database sumber dan tujuan, yang dapat meningkatkan beban database. Jika diperlukan, Anda dapat mengaktifkan pembatasan kecepatan untuk tugas migrasi penuh. Anda dapat mengatur 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 di database tujuan.
Catatan-
Item konfigurasi ini hanya tersedia jika Anda memilih Full Data Migration untuk Migration Types.
-
Anda juga dapat menyesuaikan kecepatan migrasi penuh setelah instans migrasi berjalan.
Only one data type for primary key _id in a table of the data to be synchronized
Dalam data yang akan dimigrasikan, apakah tipe data primary key
_idseragam dalam satu koleksi?PentingPilih opsi berdasarkan kebutuhan Anda. Jika tidak, kehilangan data dapat terjadi.
Parameter ini hanya tersedia jika Anda memilih Full Data Migration untuk Migration Types.
Yes: Tipe data unik. Selama migrasi data penuh, DTS tidak memindai tipe data primary key di data sumber. Untuk satu koleksi, DTS hanya memigrasikan data yang sesuai dengan satu tipe data primary key.
No: Tipe data tidak unik. Selama migrasi data penuh, DTS memindai tipe data primary key di data sumber dan memigrasikan semua data.
Enable Throttling for Incremental Data Migration
Jika diperlukan, Anda juga dapat memilih untuk mengatur batas kecepatan untuk tugas migrasi inkremental. Anda dapat mengatur RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s) untuk mengurangi beban di database tujuan.
Catatan-
Item konfigurasi ini hanya tersedia jika Anda memilih Incremental Data Migration untuk Migration Types.
-
Anda juga dapat menyesuaikan kecepatan migrasi inkremental setelah instans migrasi berjalan.
Environment Tag
Anda dapat memilih tag lingkungan untuk mengidentifikasi instans. Ini opsional untuk contoh ini.
Configure ETL
Berdasarkan kebutuhan bisnis Anda, pilih apakah akan mengonfigurasi fitur ETL untuk memproses data.
-
Yes: Mengonfigurasi fitur ETL. Anda juga harus memasukkan pernyataan pemrosesan data di kotak teks.
-
No: Tidak mengonfigurasi fitur ETL.
Monitoring and Alerting
Pilih apakah akan mengatur peringatan dan menerima pemberitahuan peringatan berdasarkan kebutuhan bisnis Anda.
-
No: Tidak mengatur peringatan.
-
Yes: Konfigurasikan peringatan dengan mengatur ambang batas peringatan dan pemberitahuan peringatan. Jika migrasi gagal atau latensi melebihi ambang batas, sistem mengirim pemberitahuan peringatan.
-
-
Klik Next: Data Validation untuk mengonfigurasi tugas validasi data.
Untuk informasi lebih lanjut tentang fitur validasi data, lihat Konfigurasi validasi data.
-
-
Simpan tugas dan jalankan pemeriksaan awal.
-
Untuk melihat parameter konfigurasi instans ini saat memanggil operasi API, arahkan pointer ke tombol Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters di gelembung yang muncul.
-
Jika Anda tidak perlu melihat atau telah selesai melihat parameter API, klik Next: Save Task Settings and Precheck di bagian bawah halaman.
Catatan-
Sebelum tugas migrasi dimulai, DTS melakukan pemeriksaan awal. Tugas hanya dimulai setelah lolos pemeriksaan awal.
-
Jika pemeriksaan awal gagal, klik View Details di sebelah item pemeriksaan yang gagal, perbaiki masalah berdasarkan petunjuk, lalu jalankan pemeriksaan awal lagi.
-
Jika peringatan dilaporkan selama pemeriksaan awal:
-
Untuk item pemeriksaan yang tidak dapat diabaikan, klik View Details di sebelah item yang gagal, perbaiki masalah berdasarkan petunjuk, lalu jalankan pemeriksaan awal lagi.
-
Untuk item pemeriksaan yang dapat diabaikan, Anda dapat mengklik Confirm Alert Details, Ignore, OK, dan Precheck Again untuk melewati item peringatan dan menjalankan pemeriksaan awal lagi. Jika Anda memilih untuk mengabaikan peringatan, hal ini dapat menyebabkan masalah seperti ketidakkonsistenan data dan menimbulkan risiko bagi bisnis Anda.
-
-
Beli instans.
-
Saat Success Rate mencapai 100%, klik Next: Purchase Instance.
-
Di halaman Purchase, pilih spesifikasi tautan untuk instans migrasi data. Untuk informasi lebih lanjut, lihat tabel berikut.
Kategori
Parameter
Deskripsi
New Instance Class
Resource Group Settings
Pilih kelompok sumber daya tempat instans berada. Nilai default adalah kelompok sumber daya default. Untuk informasi lebih lanjut, lihat Apa itu Resource Management?
Instance Class
DTS menyediakan spesifikasi migrasi dengan tingkat kinerja berbeda. Spesifikasi tautan memengaruhi kecepatan migrasi. Anda dapat memilih spesifikasi berdasarkan skenario bisnis Anda. Untuk informasi lebih lanjut, lihat Spesifikasi tautan migrasi data.
-
Setelah konfigurasi selesai, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
-
Klik Buy and Start. Di kotak dialog OK yang muncul, klik OK.
Anda dapat melihat progres tugas migrasi di halaman daftar Data Migration Tasks.
Catatan-
Jika tugas migrasi tidak mencakup migrasi inkremental, tugas akan berhenti secara otomatis setelah migrasi penuh selesai. Setelah tugas berhenti, Status-nya berubah menjadi Completed.
-
Jika tugas migrasi mencakup migrasi inkremental, tugas tidak berhenti secara otomatis. Tugas migrasi inkremental terus berjalan. Selama tugas migrasi inkremental berjalan, Status tugas adalah Running.
-
-
FAQ
Mengapa saya mengalami latensi tugas dan ketidakkonsistenan data meskipun tidak ada penulisan aplikasi?
Penyebab: Masalah ini terjadi karena konflik antara mekanisme penghapusan otomatis indeks TTL pada koleksi MongoDB dan mekanisme sinkronisasi data DTS. Konflik ini dapat menyebabkan latensi tugas dan ketidakkonsistenan data dalam tugas sinkronisasi/migrasi Anda.
-
DELETE berlebihan mengurangi efisiensi: Saat indeks TTL sumber menghapus data yang kedaluwarsa, ia menulis catatan DELETE ke Oplog. DTS memainkan ulang DELETE ini di tujuan. Jika indeks TTL tujuan sudah menghapus data yang sama, MongoDB mengembalikan jumlah baris yang terpengaruh yang tidak sesuai, memicu penanganan pengecualian dan memperlambat migrasi.
-
Ketidakkonsistenan data akibat penghapusan TTL asinkron: Indeks TTL tidak menghapus data secara real-time. Data yang kedaluwarsa mungkin masih ada di sumber sementara tujuan sudah menghapusnya, menyebabkan ketidakkonsistenan.
Contoh:
Oplog atau ChangeStream MongoDB hanya mencatat bidang yang diperbarui untuk operasi UPDATE, bukan dokumen lengkap. Jika UPDATE tidak menemukan data target di tujuan, DTS mengabaikan operasi tersebut.
Waktu
Instans sumber
Instans tujuan
1
Layanan menyisipkan 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 instans MongoDB tujuan.
-
Solusi: Untuk mengatasi hal ini, ubah sementara waktu kedaluwarsa indeks TTL di tujuan selama tugas sinkronisasi/migrasi. Hal ini memastikan efisiensi sinkronisasi dan konsistensi data. Untuk langkah-langkah detail, lihat Praktik terbaik untuk menyinkronkan atau memigrasikan koleksi dengan indeks TTL dari sumber MongoDB.