Layanan Transmisi Data (DTS) memungkinkan migrasi data dari database TiDB yang dikelola sendiri ke kluster AnalyticDB for MySQL V3.0, mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Cara kerja migrasi
Migrasi berlangsung dalam hingga tiga fase berurutan:
Schema migration — DTS mereplikasi definisi tabel ke kluster tujuan.
Full data migration — DTS membaca seluruh data dari TiDB dan memuatnya ke AnalyticDB for MySQL V3.0.
Incremental data migration (opsional) — DTS membaca peristiwa perubahan dari kluster Kafka dan menerapkannya ke tujuan untuk menjaga sinkronisasi antara sumber dan tujuan selama cutover.
Pilih jalur Anda:
Hanya migrasi penuh (skema + data penuh): Lengkapi Prasyarat, lalu lanjutkan ke Buat tugas migrasi.
Migrasi penuh + inkremental: Lengkapi Prasyarat, lalu Siapkan pengumpulan data inkremental, kemudian Buat tugas migrasi.
Prasyarat
Sebelum memulai:
Buat kluster AnalyticDB for MySQL V3.0 dengan kapasitas penyimpanan lebih besar dari ukuran total data di database TiDB sumber. Lihat Buat kluster.
Berikan izin akun database yang diperlukan sebagaimana tercantum di Izin yang diperlukan.
(Hanya untuk migrasi inkremental) Siapkan kluster Kafka. Lihat Siapkan pengumpulan data inkremental.
Izin yang diperlukan
Database | Izin yang diperlukan |
TiDB database | SELECT pada objek yang akan dimigrasikan, SHOW VIEW |
AnalyticDB for MySQL V3.0 cluster | Izin baca dan tulis pada database tujuan. Lihat Buat akun database. |
Penagihan
Jenis migrasi | Biaya konfigurasi instans | Biaya traffic internet |
Schema migration dan full data migration | Gratis | Dikenakan biaya hanya jika Access Method untuk tujuan adalah Public IP Address. Lihat Ikhtisar penagihan. |
Incremental data migration | Dikenakan biaya. Lihat Ikhtisar penagihan. |
Siapkan pengumpulan data inkremental
Lewati bagian ini jika Anda hanya memerlukan migrasi skema dan migrasi data penuh.
Migrasi data inkremental mengharuskan TiDB mengalirkan peristiwa perubahan ke kluster Kafka. Pilih salah satu metode berikut berdasarkan versi TiDB Anda.
Pilih metode
Metode | Kapan digunakan |
TiDB Binlog | Kluster TiDB yang sudah menggunakan Pump dan Drainer untuk replikasi binlog |
TiCDC | TiDB v4.0 dan seterusnya; disarankan untuk penerapan baru |
Konfigurasi parameter Kafka
Sebelum menghubungkan ke DTS, tingkatkan parameter Kafka berikut. Tanpa perubahan ini, kluster Kafka dapat menolak muatan log biner besar dari TiDB.
Komponen | Parameter | Tindakan |
Kafka broker |
| Tingkatkan agar sesuai dengan pesan log biner TiDB |
Kafka broker |
| Tingkatkan agar sesuai dengan |
Kafka consumer |
| Tingkatkan agar sesuai dengan |
Siapkan kluster Kafka
Gunakan salah satu opsi berikut:
Kluster Kafka yang dikelola sendiri — Terapkan kluster Anda sendiri. Lihat situs resmi Apache Kafka.
Instance ApsaraMQ for Kafka — Buat instance terkelola. Lihat Ikhtisar memulai. Terapkan instance di virtual private cloud (VPC) yang sama dengan server database TiDB.
Terapkan server database TiDB, Pump (jika menggunakan TiDB Binlog), Drainer, dan kluster Kafka di jaringan internal yang sama untuk meminimalkan latensi jaringan.
Setelah kluster Kafka siap, buat topik dengan exactly one partition. DTS hanya membaca dari partisi ID 0. Partisi tambahan menyebabkan kehilangan data.
Gunakan TiDB Binlog
Terapkan Pump dan Drainer di server yang berada di jaringan internal yang sama dengan database TiDB. Lihat Penerapan kluster TiDB Binlog.
Edit file konfigurasi Drainer agar mengarah ke kluster Kafka. Lihat Panduan pengguna klien konsumen binlog.
Verifikasi bahwa server TiDB dapat mencapai kluster Kafka.
Tambahkan blok CIDR server DTS ke daftar izin database TiDB. Lihat Tambahkan blok CIDR server DTS.
Gunakan TiCDC
Instal TiCDC menggunakan TiUP untuk menambahkan node TiCDC baru atau melakukan scaling out node yang sudah ada di kluster TiDB. Lihat Terapkan dan kelola TiCDC.
Buat changefeed untuk mereplikasi data inkremental ke Kafka. Gunakan
tiup cdc cli changefeed createsebagai perintah awal. Lihat Replikasi data ke Kafka.Verifikasi bahwa server TiDB dapat mencapai kluster Kafka.
Batasan
Tinjau batasan berikut sebelum memulai tugas.
Database sumber
Server TiDB harus memiliki bandwidth outbound yang cukup. Bandwidth rendah mengurangi kecepatan migrasi.
Tabel yang akan dimigrasikan harus memiliki PRIMARY KEY atau kendala UNIQUE dengan semua bidang unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan.
Jika Anda mengganti nama tabel atau kolom selama migrasi, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi migrasi menjadi beberapa tugas atau migrasikan seluruh database dalam satu tugas.
Jika Anda ingin memigrasikan data inkremental dari database TiDB sumber, Anda harus menerapkan kluster Kafka dan menginstal komponen terkait untuk database TiDB guna mengumpulkan data inkremental.
Indeks awalan tidak dapat dimigrasikan. Jika database sumber berisi indeks awalan, tugas migrasi dapat gagal.
Migrasi inkremental
DTS hanya membaca data dari partisi ID 0 topik Kafka. Konfigurasikan topik dengan tepat satu partisi.
Setelah membuat tugas migrasi inkremental, segera lakukan operasi pada database sumber atau masukkan data uji untuk memperbarui informasi offset tugas. Penundaan lama sebelum peristiwa data pertama dapat menyebabkan tugas gagal.
Tujuan dan perilaku tugas
Tentukan primary key kustom di database tujuan atau konfigurasikan Primary Key Column pada langkah Configurations for Databases, Tables, and Columns. Konfigurasi primary key yang tidak lengkap menyebabkan migrasi data gagal.
Jika kluster AnalyticDB for MySQL V3.0 sedang dibackup saat tugas DTS berjalan, tugas tersebut gagal.
Jika penggunaan disk pada node AnalyticDB for MySQL V3.0 melebihi 80%, tugas migrasi tertunda dan mengembalikan error. Perkirakan ruang disk yang diperlukan sebelum memulai.
Migrasi data penuh meningkatkan beban pada database sumber dan tujuan. Jalankan migrasi selama jam sepi ketika beban CPU di bawah 30%.
Migrasi data penuh menggunakan operasi INSERT konkuren, yang menyebabkan fragmentasi pada tabel tujuan. Setelah migrasi penuh selesai, ukuran ruang tabel tujuan lebih besar daripada sumber.
Jika sumber lain menulis ke tujuan selama migrasi, ketidaksesuaian data dapat terjadi.
DTS menggunakan fungsi
ROUND(COLUMN,PRECISION)untuk mengambil nilai FLOAT dan DOUBLE. Presisi default adalah 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Verifikasi bahwa nilai default ini memenuhi kebutuhan Anda sebelum memulai.Selama migrasi skema, DTS tidak mendukung migrasi materialized views ke instance AnalyticDB for MySQL tujuan. Untuk menggunakan materialized views, buat secara manual di instance tujuan setelah migrasi selesai.
DTS secara otomatis mencoba melanjutkan tugas yang gagal hingga tujuh hari. Sebelum beralih beban kerja ke tujuan, hentikan atau rilis tugas yang gagal, atau jalankan pernyataan
REVOKEuntuk menghapus izin tulis dari akun DTS. Jika tidak, tugas yang dilanjutkan dapat menimpa data tujuan.Jika pernyataan DDL gagal di tujuan, tugas DTS tetap berjalan. Lihat pernyataan DDL yang gagal di log tugas. Lihat Lihat log tugas.
Jika tugas DTS gagal, dukungan teknis DTS mencoba memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas dapat dimulai ulang dan parameter tugas (bukan parameter database) dapat dimodifikasi. Untuk daftar parameter yang dapat berubah, lihat Modifikasi parameter instans.
Jika tujuan adalah kluster AnalyticDB for MySQL, DTS hanya mendukung penulisan tipe data yang didukung secara native oleh AnalyticDB for MySQL. Ini mencakup tipe data dasar dan tipe data kompleks seperti ARRAY, MAP, dan JSON. Tipe data seperti MULTIVALUE tidak didukung.
Operasi SQL yang didukung untuk migrasi inkremental
Jenis operasi | Pernyataan yang didukung |
DML | INSERT, UPDATE, DELETE. Pernyataan UPDATE secara otomatis dikonversi menjadi REPLACE INTO. Jika UPDATE menargetkan primary key, dikonversi menjadi DELETE diikuti oleh INSERT. |
DDL | CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN |
Pemetaan tipe data
Untuk pemetaan lengkap antara tipe data TiDB dan AnalyticDB for MySQL V3.0, lihat Pemetaan tipe data antar database heterogen.
Buat tugas migrasi
Langkah 1: Buka halaman Data Migration
Gunakan Konsol DTS atau Konsol DMS.
Konsol DTS
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi akan berada.
Konsol DMS
Langkah-langkah dapat berbeda tergantung mode dan tata letak Konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.
Masuk ke Konsol DMS.
Di bilah navigasi atas, arahkan kursor ke Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi akan berada.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task.
Masukkan Task Name. DTS menghasilkan nama secara otomatis; tentukan nama deskriptif agar tugas mudah diidentifikasi nanti.
Konfigurasi database sumber:
Parameter
Deskripsi
Select Existing Connection
Pilih instance database terdaftar untuk mengisi parameter di bawah secara otomatis, atau biarkan kosong dan masukkan detail koneksi secara manual.
Database Type
Pilih TiDB.
Access Method
Pilih metode akses berdasarkan lokasi penerapan TiDB. Contoh ini menggunakan Self-managed Database on ECS. Untuk metode akses lain, siapkan lingkungan yang diperlukan terlebih dahulu. Lihat Ikhtisar persiapan.
Instance Region
Wilayah tempat database TiDB berada.
ECS Instance ID
ID instance ECS yang menjalankan TiDB.
Port Number
Port layanan TiDB. Default: 4000.
Database Account
Akun database TiDB.
Database Password
Kata sandi untuk akun database.
Migrate Incremental Data
Pilih Yes jika Anda ingin migrasi data inkremental, lalu masukkan detail kluster Kafka di bagian Kafka cluster configuration.
Konfigurasi database tujuan:
Parameter
Deskripsi
Select Existing Connection
Pilih instance terdaftar untuk mengisi parameter di bawah secara otomatis, atau biarkan kosong dan masukkan detail koneksi secara manual.
Database Type
Pilih AnalyticDB for MySQL 3.0.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Wilayah tempat kluster tujuan berada.
Instance ID
ID kluster AnalyticDB for MySQL V3.0 tujuan.
Database Account
Akun database untuk kluster tujuan. Lihat Izin yang diperlukan.
Database Password
Kata sandi untuk akun database.
Klik Test Connectivity and Proceed. Di kotak dialog CIDR Blocks of DTS Servers, klik Test Connectivity.
Blok CIDR DTS harus ditambahkan ke pengaturan keamanan database sumber dan tujuan. Lihat Tambahkan blok CIDR server DTS.
Langkah 3: Konfigurasi objek yang akan dimigrasikan
Di halaman Configure Objects, atur parameter berikut:
Parameter | Deskripsi |
Migration Types | Pilih fase migrasi yang akan dijalankan: Schema Migration, Full Data Migration, dan opsional Incremental Data Migration. Jika Schema Migration tidak dipilih, buat database dan tabel tujuan sebelum memulai tugas. Jika Incremental Data Migration tidak dipilih, hindari menulis ke database sumber selama migrasi untuk menjaga konsistensi data. |
Merge Tables | Yes menambahkan kolom |
Processing Mode of Conflicting Tables | Precheck and Report Errors: gagal dalam pemeriksaan awal jika sumber dan tujuan memiliki tabel dengan nama yang sama. Gunakan pemetaan nama objek untuk mengganti nama tabel yang bentrok sebelum memulai. Ignore Errors and Proceed: melewati pemeriksaan awal. Selama migrasi penuh, DTS mempertahankan catatan tujuan yang sudah ada untuk primary key yang bentrok. Selama migrasi inkremental, DTS menimpanya. Jika skema berbeda antara sumber dan tujuan, hanya kolom yang cocok yang dimigrasikan atau tugas dapat gagal. |
Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Lihat Tentukan kapitalisasi nama objek di instance tujuan. |
Source Objects | Pilih tabel atau database yang akan dimigrasikan, lalu klik ikon panah untuk memindahkannya ke Selected Objects. |
Selected Objects | Klik kanan objek untuk mengganti namanya atau menambahkan kondisi filter WHERE. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Mengganti nama objek dapat menyebabkan objek dependen gagal dimigrasikan. |
Klik Next: Advanced Settings.
Langkah 4: Konfigurasi pengaturan lanjutan
Parameter | Deskripsi |
Retry Time for Failed Connections | Berapa lama DTS mencoba lagi setelah kegagalan koneksi. Rentang valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, nilai yang paling baru ditetapkan berlaku. DTS mengenakan biaya untuk instans selama periode percobaan ulang. |
Retry Time for Other Issues | Berapa lama DTS mencoba lagi setelah kegagalan DDL atau DML. Rentang valid: 1–1.440 menit. Default: 10 menit. Atur minimal 10 menit. Harus lebih kecil dari Retry Time for Failed Connections. |
Enable Throttling for Full Data Migration | Membatasi penggunaan sumber daya baca/tulis selama migrasi penuh. Konfigurasikan QPS (queries per second) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Migration dipilih. |
Enable Throttling for Incremental Data Migration | Membatasi penggunaan sumber daya selama migrasi inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika Incremental Data Migration dipilih. |
Environment Tag | Tag opsional untuk mengidentifikasi instans DTS. |
Configure ETL | Pilih Yes untuk mengaktifkan ekstrak, transformasi, dan muat (ETL) serta masukkan pernyataan pemrosesan data. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. Pilih No untuk melewati. |
Monitoring and Alerting | Pilih Yes untuk menerima notifikasi ketika tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan kontak. Lihat Konfigurasi pemantauan dan peringatan. |
Langkah 5: Konfigurasi verifikasi data (opsional)
Klik Next Step: Data Verification untuk menyiapkan tugas verifikasi data. Lihat Konfigurasi tugas verifikasi data.
Langkah 6: Konfigurasi bidang database dan tabel (opsional)
Klik Next: Configure Database and Table Fields untuk mengatur Type, Primary Key Column, Distribution Key, Partition Key, Partitioning Rules, dan Partition Lifecycle untuk tabel tujuan.
Langkah ini tersedia hanya jika Schema Migration dipilih. Atur Definition Status ke All untuk melihat dan mengedit semua tabel. Untuk membentuk primary key komposit, tentukan beberapa kolom di Primary Key Column dan tunjuk satu atau lebih sebagai Distribution Key dan Partition Key. Lihat CREATE TABLE.
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat parameter API untuk konfigurasi tugas ini, arahkan kursor ke tombol dan klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Jika pemeriksaan awal gagal:
Klik View Details di sebelah 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 ketidaksesuaian data.
Langkah 8: Beli instans dan mulai tugas
Tunggu hingga Success Rate 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. Lihat Apa itu Resource Management?.
Instance Class
Kelas instans menentukan kecepatan migrasi. Lihat Kelas instans untuk instans migrasi data.
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Monitor progres tugas di halaman Data Migration.
Tugas tanpa migrasi inkremental berhenti secara otomatis saat selesai. Status menunjukkan Completed.
Tugas dengan migrasi inkremental berjalan terus-menerus. Status menunjukkan Running. Hentikan tugas secara manual setelah cutover.
Konfigurasi kluster Kafka
Ketika Migrate Incremental Data diatur ke Yes, konfigurasikan kluster Kafka dengan parameter berikut:
Parameter | Deskripsi |
Kafka Cluster Type | Lokasi penerapan kluster Kafka. Contoh ini menggunakan Self-managed Database on ECS. Jika Anda memilih Express Connect, VPN Gateway, or Smart Access Gateway, pilih juga VPC dari Connected VPC dan tentukan Domain Name or IP. |
Kafka Data Source Component | Pilih Use the default binlog format of the TiDB database atau Use the TiCDC Canal-JSON format berdasarkan pengaturan Anda. |
ECS Instance ID | ID instance ECS yang menjalankan kluster Kafka. |
Port Number | Port layanan Kafka. |
Kafka Cluster Account | Username Kafka. Biarkan kosong jika autentikasi dinonaktifkan. |
Kafka Cluster Password | Kata sandi Kafka. Biarkan kosong jika autentikasi dinonaktifkan. |
Kafka Version | Versi kluster Kafka. Pilih 1.0 jika versinya 1.0 atau lebih baru. |
Encryption | Pilih Non-encrypted atau SCRAM-SHA-256 berdasarkan kebutuhan keamanan Anda. |
Topic | Topik Kafka yang menerima data inkremental. |