Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans PolarDB-X 1.0 ke instans ApsaraMQ for Kafka. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental sehingga Anda dapat memigrasikan data dengan gangguan layanan minimal.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans PolarDB-X 1.0. Untuk informasi lebih lanjut, lihat Buat instans PolarDB-X 1.0.
Membuat topik di instans ApsaraMQ for Kafka tujuan untuk menerima data yang dimigrasikan. Untuk informasi lebih lanjut, lihat Ikhtisar.
Memiliki ruang penyimpanan yang tersedia di instans ApsaraMQ for Kafka tujuan lebih besar daripada total ukuran data di instans PolarDB-X 1.0 sumber.
Batasan
Persyaratan database sumber
Kendala mutlak — migrasi gagal jika tidak terpenuhi:
Tabel yang akan dimigrasikan harus memiliki kendala PRIMARY KEY atau UNIQUE, dan semua field harus unik. Jika tidak, catatan duplikat mungkin muncul di tujuan.
Migrasi dari instans PolarDB-X 1.0 read-only tidak didukung.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi migrasi menjadi beberapa tugas atau migrasikan seluruh database.
Konfigurasi wajib untuk migrasi data inkremental:
Binary logging harus diaktifkan, dan
binlog_row_imageharus diatur kefull. Jika tidak dikonfigurasi, pemeriksaan awal gagal dan tugas tidak dapat dimulai.Periode retensi log biner: Jika periode retensi tidak mencukupi, DTS mungkin gagal membaca log biner, yang dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data. Setelah migrasi penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam.
Hanya migrasi inkremental: simpan log biner selama lebih dari 24 jam.
Migrasi penuh + inkremental: simpan log biner setidaknya selama 7 hari.
Batasan operasional selama migrasi:
Jangan melakukan upgrade atau downgrade instans sumber, memodifikasi tabel yang sering diperbarui, mengubah kunci shard, atau menjalankan operasi DDL pada objek sumber. Tindakan ini akan menyebabkan tugas gagal.
Selama migrasi penuh dan inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Pembaruan atau penghapusan kaskade selama periode ini dapat menyebabkan ketidakkonsistenan data.
Jika jenis jaringan instans PolarDB-X 1.0 berubah selama migrasi, perbarui pengaturan koneksi jaringan di tugas migrasi DTS sesuai kebutuhan.
Untuk migrasi hanya penuh (tanpa inkremental): jangan menulis data ke sumber selama migrasi karena hal ini akan menyebabkan ketidakkonsistenan. Untuk menjaga konsistensi data, pilih Schema Migration, Full Data Migration, dan Incremental Data Migration secara bersamaan.
Batasan lainnya
Evaluasi dampak terhadap kinerja database sumber dan tujuan sebelum memigrasikan. Jalankan tugas migrasi selama jam sepi. Migrasi data penuh menggunakan resource baca dan tulis di kedua database, yang dapat meningkatkan beban server.
Migrasi data penuh menggunakan operasi INSERT konkuren, yang menyebabkan fragmentasi tabel di tujuan. Setelah migrasi penuh, ruang tabel tujuan lebih besar daripada sumber.
DTS mencoba melanjutkan tugas yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau rilis tugas yang gagal. Atau, jalankan pernyataan
REVOKEuntuk mencabut izin tulis dari akun DTS yang mengakses tujuan. Jika tugas yang gagal dilanjutkan setelah Anda mengalihkan beban kerja, data sumber dapat menimpa data tujuan.
Peringatan
DTS secara berkala memperbarui tabel `
dts_health_check.ha_health_check` di database sumber untuk memajukan posisi log biner.Jika instans ApsaraMQ for Kafka tujuan di-upgrade atau diturunkan spesifikasinya selama migrasi, restart instans tersebut untuk melanjutkan migrasi.
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas internet |
|---|---|---|
| Migrasi skema dan migrasi data penuh | Gratis | Gratis |
| Migrasi data inkremental | Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. | — |
Jenis migrasi
| Jenis migrasi | Deskripsi |
|---|---|
| Schema migration | DTS memigrasikan skema objek dari sumber ke tujuan. |
| Full data migration | DTS memigrasikan semua data yang ada dari sumber ke tujuan. |
| Incremental data migration | Setelah migrasi data penuh selesai, DTS terus-menerus memigrasikan perubahan inkremental dari sumber. Hal ini menjaga sinkronisasi tujuan dan memungkinkan Anda melakukan cut over tanpa mengganggu aplikasi. |
Operasi SQL untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Izin yang diperlukan
| Database | Schema migration | Full data migration | Incremental data migration |
|---|---|---|---|
| PolarDB-X 1.0 | SELECT | SELECT | REPLICATION SLAVE, REPLICATION CLIENT, dan SELECT pada objek yang akan dimigrasikan. Untuk detailnya, lihat bagian Izin yang diperlukan untuk akun agar dapat menyinkronkan data. |
| ApsaraMQ for Kafka | Baca dan tulis | Baca dan tulis | Baca dan tulis |
Pemetaan tipe data
Untuk informasi lebih lanjut, lihat Pemetaan tipe data untuk sinkronisasi skema.
Buat tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Operasi konsol dapat berbeda tergantung mode dan tata letak DMS. Untuk informasi lebih lanjut, lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS. Anda juga dapat langsung menuju halaman Tugas Migrasi Data.
Langkah 2: Pilih wilayah
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Di konsol DTS baru, pilih wilayah di pojok kiri atas.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task dan konfigurasikan parameter berikut.
Setelah memilih instans sumber dan tujuan, baca bagian Limits di bagian atas halaman sebelum melanjutkan.
Database sumber (PolarDB-X 1.0)
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk tugas. DTS memberikan nama default. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. |
| Select an existing DMS database instance | Instans database yang sudah ada untuk digunakan. Jika Anda memilihnya, DTS akan mengisi parameter lain secara otomatis. Jika tidak, konfigurasikan parameter secara manual. |
| Database Type | Pilih PolarDB-X 1.0. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans PolarDB-X 1.0 sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Apakah akan memigrasikan data lintas Akun Alibaba Cloud. Pilih No untuk migrasi dalam satu akun. |
| Instance ID | ID instans PolarDB-X 1.0 sumber. |
| Database Account | Akun database untuk instans sumber. Berikan izin berdasarkan format data yang digunakan di instans ApsaraMQ for Kafka tujuan. |
| Database Password | Kata sandi untuk akun database. |
Database tujuan (ApsaraMQ for Kafka)
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | Instans database yang sudah ada untuk digunakan. Jika Anda memilihnya, DTS akan mengisi parameter lain secara otomatis. Jika tidak, konfigurasikan parameter secara manual. |
| Database Type | Pilih Kafka. |
| Connection Type | Pilih Express Connect, VPN Gateway, or Smart Access Gateway. |
| Instance Region | Wilayah tempat instans ApsaraMQ for Kafka tujuan berada. |
| Connected VPC | ID virtual private cloud (VPC) instans ApsaraMQ for Kafka tujuan. Untuk menemukan ID VPC, buka halaman Detail Instans di konsol ApsaraMQ for Kafka dan periksa bagian Configuration Information di tab Instance Information. |
| IP Address or Domain Name | Alamat IP instans ApsaraMQ for Kafka tujuan. Untuk menemukan alamat IP, buka halaman Detail Instans dan periksa bagian Endpoint Information di tab Instance Information. Salin alamat IP dari field Default Endpoint. |
| Port Number | Port layanan instans tujuan. Nilai default: 9092. |
| Database Account | Akun database instans ApsaraMQ for Kafka tujuan. Diperlukan hanya jika fitur access control list (ACL) diaktifkan. Untuk informasi lebih lanjut, lihat Berikan izin kepada pengguna SASL. |
| Database Password | Kata sandi untuk akun database. Diperlukan hanya jika fitur ACL diaktifkan. |
| Kafka Version | Versi instans ApsaraMQ for Kafka tujuan. |
| Encryption | Apakah akan mengenkripsi koneksi. Pilih Non-encrypted atau SCRAM-SHA-256 berdasarkan kebutuhan keamanan Anda. |
| Topic | Topik untuk menerima data yang dimigrasikan. Pilih dari daftar drop-down. |
| Topic That Stores DDL Information | Topik untuk menyimpan informasi DDL. Jika tidak ditentukan, informasi DDL disimpan di topik yang diatur dalam parameter Topic. |
| Use Kafka Schema Registry | Apakah akan menggunakan Kafka Schema Registry, yang menyediakan antarmuka RESTful untuk menyimpan dan mengambil skema Avro. Pilih No untuk melewati, atau Yes dan masukkan URL atau alamat IP yang terdaftar di Kafka Schema Registry. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed di bagian bawah halaman.
Untuk instans database Alibaba Cloud (seperti ApsaraDB RDS for MySQL atau ApsaraDB for MongoDB), DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih alamat IP instans. Untuk database yang dikelola sendiri pada instans Elastic Compute Service (ECS), DTS secara otomatis menambahkan blok CIDR ke aturan security group ECS. Jika database yang dikelola sendiri tersebar di beberapa instans ECS, tambahkan blok CIDR secara manual ke aturan security group setiap instans. Untuk database yang dikelola sendiri di pusat data atau dihosting oleh penyedia pihak ketiga, tambahkan blok CIDR server DTS secara manual ke daftar putih alamat IP database. Untuk detailnya, lihat Tambahkan blok CIDR server DTS ke pengaturan keamanan database on-premises.
Menambahkan blok CIDR server DTS ke daftar putih IP atau aturan security group menimbulkan risiko keamanan. Sebelum menggunakan DTS, ambil langkah pencegahan, termasuk: amankan kredensial akun Anda, batasi port yang terbuka, autentikasi panggilan API, audit aturan daftar putih dan security group secara berkala, serta gunakan Express Connect, VPN Gateway, atau Smart Access Gateway untuk koneksi database.
Langkah 5: Pilih objek dan konfigurasi pengaturan migrasi
Konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih jenis migrasi sesuai kebutuhan Anda: <br>- Hanya migrasi penuh: pilih Schema Migration dan Full Data Migration.<br>- Migrasi penuh dengan sinkronisasi langsung: pilih Schema Migration, Full Data Migration, dan Incremental Data Migration.<br><br> Catatan Tanpa Incremental Data Migration, jangan menulis ke database sumber selama migrasi untuk menghindari ketidakkonsistenan data. |
| Processing Mode of Conflicting Tables | - Precheck and Report Errors: memeriksa apakah ada tabel di tujuan dengan nama yang sama seperti tabel sumber. Pemeriksaan awal gagal jika ditemukan kecocokan. Untuk menangani konflik nama, gunakan pemetaan nama objek untuk mengganti nama tabel tujuan.<br>- Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel duplikat. Peringatan Jika skema cocok, DTS melewati catatan dengan kunci primer duplikat. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas mungkin gagal. |
| Data Format in Kafka | Format data yang ditulis ke ApsaraMQ for Kafka. PolarDB-X 1.0 hanya mendukung DTS Avro; Canal JSON tidak didukung. Data DTS Avro diurai sesuai definisi skema DTS Avro. Untuk referensi skema, lihat GitHub. |
| Policy for Shipping Data to Kafka Partitions | Routing partisi kustom tidak didukung untuk kombinasi sumber-tujuan ini. |
| Capitalization of Object Names in Destination Instance | Kebijakan kapitalisasi untuk nama database, tabel, dan kolom di tujuan. Default adalah DTS default policy. Untuk informasi lebih lanjut, lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Source Objects | Pilih objek dari bagian Source Objects dan klik ikon panah untuk memindahkannya ke Selected Objects. <br><br> Catatan <br>- Memilih tabel hanya memigrasikan tabel, bukan view, trigger, atau prosedur tersimpan.<br>- Memilih database memigrasikan data berdasarkan aturan berikut:<br> - Tabel dengan kunci primer: kolom kunci primer menjadi kunci distribusi.<br> - Tabel tanpa kunci primer: DTS membuat kolom kunci utama auto-increment secara otomatis, yang dapat menyebabkan ketidakkonsistenan data. |
| Selected Objects | Klik kanan objek untuk mengganti namanya atau mengatur kondisi filter WHERE. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. <br><br> Catatan Mengganti nama objek dapat menyebabkan migrasi objek dependen gagal. Untuk kondisi filter, lihat Atur kondisi filter. |
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Select the dedicated cluster used to schedule the task | Opsional. Biarkan kosong untuk menggunakan klaster bersama default. Untuk informasi selengkapnya, lihat What is a DTS dedicated cluster? |
| Set Alerts | Tentukan apakah akan mengonfigurasi peringatan untuk kegagalan task atau latensi migrasi yang tinggi. Pilih No untuk melewati, atau Yes untuk menetapkan ambang batas peringatan dan menentukan kontak peringatan. Untuk informasi selengkapnya, lihat Configure monitoring and alerting. |
| Retry Time for Failed Connections | Durasi waktu DTS mencoba kembali koneksi yang gagal setelah task dimulai. Nilai yang valid: 10–1440 menit. Default: 720 menit. Tetapkan nilai ini lebih dari 30 menit. Jika DTS berhasil terhubung kembali dalam periode ini, task dilanjutkan; jika tidak, task gagal. Catatan Jika beberapa task menggunakan database sumber atau tujuan yang sama dan memiliki waktu retry berbeda, nilai yang ditetapkan paling baru akan berlaku. DTS membebankan biaya untuk instans selama periode retry—tetapkan waktu retry sesuai kebutuhan Anda dan segera rilis instans ketika tidak lagi diperlukan. |
| The wait time before a retry when other issues occur in the source and destination databases | Durasi waktu DTS mencoba kembali operasi DDL atau DML yang gagal. Nilai yang valid: 1–1440 menit. Default: 10 menit. Tetapkan nilai ini lebih dari 10 menit. Nilai ini harus lebih kecil daripada nilai Retry Time for Failed Connections. |
| Configure ETL | Tentukan apakah akan mengaktifkan ekstrak, transformasi, dan muat (ETL). Pilih Yes untuk memasukkan pernyataan pemrosesan data, atau No untuk melewati. Untuk informasi selengkapnya, lihat What is ETL? dan Configure ETL in a data migration or data synchronization task. |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk meninjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum tugas dimulai. Tugas hanya dapat dilanjutkan setelah pemeriksaan awal berhasil.
Jika pemeriksaan awal gagal, klik View Details di samping setiap item yang gagal, perbaiki masalahnya, dan jalankan kembali pemeriksaan awal.
Jika muncul peringatan selama pemeriksaan awal:
Untuk peringatan yang tidak dapat diabaikan: klik View Details, perbaiki masalahnya, dan jalankan kembali pemeriksaan awal.
Untuk peringatan yang dapat diabaikan: klik Confirm Alert Details, lalu klik Ignore > OK > Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 8: Beli instans migrasi
Tunggu hingga tingkat keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Resource Group | Kelompok sumber daya untuk instans migrasi. Default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Resource Management? |
| Instance Class | Kelas instans menentukan kecepatan migrasi. Pilih berdasarkan volume data dan kebutuhan waktu Anda. Untuk informasi lebih lanjut, lihat Spesifikasi instans migrasi data. |
Langkah 9: Mulai migrasi
Baca dan terima Syarat Layanan Data Transmission Service (Pay-as-you-go), lalu klik Buy and Start.
Tugas migrasi dimulai. Pantau progres di daftar tugas.
Langkah selanjutnya
Setelah migrasi selesai, verifikasi konsistensi data antara sumber dan tujuan sebelum mengalihkan aplikasi Anda ke instans ApsaraMQ for Kafka tujuan. Hentikan atau rilis tugas DTS yang gagal untuk mencegah data sumber menimpa data tujuan setelah tugas dilanjutkan.