Gunakan Data Transmission Service (DTS) untuk menyiapkan sinkronisasi satu arah antara dua instans PolarDB-X 2.0. DTS mereplikasi struktur skema, data historis, dan perubahan berkelanjutan dari instans sumber ke tujuan sehingga menjaga kedua instans tetap selaras dengan latensi minimal.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Membuat instans PolarDB-X 2.0 sumber dan tujuan.
Memverifikasi bahwa instans tujuan memiliki ruang penyimpanan yang tersedia lebih besar daripada total ukuran data di instans sumber.
Mengaktifkan binary logging di konsol PolarDB-X 2.0 (lihat Parameter settings) dan memastikan bahwa
binlog_row_imagediatur keFULL.
Batasan
Database sumber
| Batasan | Detail |
|---|---|
| Kunci primer atau kunci unik wajib | Tabel yang akan disinkronkan harus memiliki PRIMARY KEY atau kendala UNIK dengan semua bidang bernilai unik. Jika tidak, database tujuan mungkin berisi catatan duplikat. |
| Batas 5.000 tabel per tugas | Jika Anda memilih tabel sebagai objek sinkronisasi dan perlu mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 5.000 tabel. Melebihi batas ini menyebabkan error permintaan. Pisahkan tabel ke beberapa tugas atau sinkronkan seluruh database dalam satu tugas. |
| Retensi log biner | Hanya untuk sinkronisasi inkremental: simpan log biner setidaknya selama 24 jam. Untuk sinkronisasi penuh + inkremental: simpan log biner setidaknya selama 7 hari. Setelah sinkronisasi penuh selesai, atur periode retensi lebih dari 24 jam. Jika DTS tidak dapat mengambil log biner, tugas gagal dan kehilangan data mungkin terjadi. |
| Nama tabel huruf kapital | Jika nama tabel berisi huruf kapital, hanya sinkronisasi skema yang didukung untuk tabel tersebut. |
| Kompatibilitas MySQL 5.7 | Instans PolarDB-X 2.0 sumber harus kompatibel dengan MySQL 5.7. |
| TABLEGROUP dan Locality tidak didukung | Tugas sinkronisasi tidak mendukung TABLEGROUP atau database dan skema yang memiliki atribut Locality. |
| Tidak ada DDL selama sinkronisasi skema atau sinkronisasi penuh | Jangan menjalankan pernyataan DDL pada database sumber selama sinkronisasi skema atau sinkronisasi data penuh. Melakukannya menyebabkan tugas gagal. |
Batasan lainnya
| Batasan | Detail |
|---|---|
| Sinkronisasi skema tidak didukung | DTS tidak menyinkronkan skema dalam skenario ini. Buat database dan tabel target di instans tujuan sebelum memulai tugas. |
| Kompatibilitas MySQL 5.7 | Instans PolarDB-X 2.0 tujuan harus kompatibel dengan MySQL 5.7. |
| Lakukan sinkronisasi pada jam sepi | Sinkronisasi data penuh awal membaca dari sumber dan menulis ke tujuan secara bersamaan, sehingga meningkatkan beban pada kedua server database. Jadwalkan sinkronisasi pada jam sepi. |
| Fragmentasi tabel setelah sinkronisasi penuh | Operasi INSERT bersamaan selama sinkronisasi data penuh menyebabkan fragmentasi tabel di tujuan. Ruang tabel yang digunakan di tujuan akan lebih besar daripada di sumber setelah sinkronisasi penuh selesai. |
| Hindari pt-online-schema-change | Jangan gunakan pt-online-schema-change untuk operasi DDL pada objek yang disinkronkan. Hal ini dapat menyebabkan tugas sinkronisasi gagal. |
| Tulis ke tujuan hanya melalui DTS | Menulis ke database tujuan menggunakan alat selain DTS dapat menyebabkan inkonsistensi data. Jika Anda juga menggunakan DMS untuk menjalankan operasi DDL Online, kehilangan data di tujuan mungkin terjadi. |
| Pemulihan kegagalan tugas | Jika tugas DTS gagal, tim dukungan DTS berupaya memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin diubah. Untuk daftar parameter yang mungkin berubah, lihat bagian Modify instance parameters pada topik Modify the parameters of a DTS instance. |
DTS memperbarui tabeldts_health_check.ha_health_checkdi database sumber secara berkala untuk memajukan posisi log biner.
Selama sinkronisasi skema, DTS menyalin kunci asing dari sumber ke tujuan. Selama sinkronisasi data penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat sesi. Jika Anda menjalankan operasi pembaruan atau penghapusan kaskade pada sumber selama sinkronisasi, inkonsistensi data mungkin terjadi.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Lihat Billing overview. |
Operasi SQL yang dapat disinkronkan
| Jenis operasi | Pernyataan |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ALTER TABLE; CREATE FUNCTION, CREATE INDEX, CREATE TABLE; DROP INDEX, DROP TABLE; RENAME TABLE; TRUNCATE TABLE |
Operasi RENAME TABLE dapat menyebabkan inkonsistensi data. Jika Anda memilih tabel sebagai objek sinkronisasi dan mengganti namanya selama sinkronisasi, perubahan pada tabel tersebut tidak lagi direplikasi. Untuk menghindarinya, pilih database (bukan tabel) sebagai objek sinkronisasi, dan pastikan database sebelum dan sesudah penggantian nama termasuk dalam objek yang dipilih.
Izin yang diperlukan
| Database | Sinkronisasi skema | Sinkronisasi data penuh | Sinkronisasi data inkremental |
|---|---|---|---|
| PolarDB-X 2.0 sumber | SELECT | SELECT | SELECT (pada objek yang disinkronkan), REPLICATION SLAVE, REPLICATION CLIENT |
| PolarDB-X 2.0 tujuan | Baca dan tulis | — | — |
Fungsi setiap izin:
| Izin | Digunakan untuk | Diperlukan selama |
|---|---|---|
| SELECT | Membaca baris dari tabel yang disinkronkan. | Sinkronisasi skema, sinkronisasi data penuh, sinkronisasi data inkremental |
| REPLICATION SLAVE | Menghubungkan ke instans sumber dan membaca aliran log biner. | Sinkronisasi data inkremental |
| REPLICATION CLIENT | Menjalankan SHOW MASTER STATUS, SHOW SLAVE STATUS, dan SHOW BINARY LOGS untuk memantau status replikasi. | Sinkronisasi data inkremental (sepanjang proses) |
Untuk petunjuk pemberian izin ini, lihat Data synchronization tools for PolarDB-X.
Konfigurasikan tugas sinkronisasi
Langkah 1: Buka halaman Tugas Sinkronisasi Data
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik Data + AI.
Di panel navigasi kiri, pilih DTS (DTS) > Data Synchronization.
Tata letak konsol DMS dapat berbeda tergantung konfigurasi Anda. Untuk detailnya, lihat Simple mode dan Customize the layout and style of the DMS console. Anda juga dapat langsung membuka halaman Tugas Sinkronisasi Data di konsol DTS baru.
Langkah 2: Pilih wilayah
Di sisi kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi data berada.
Di konsol DTS baru, pilih wilayah dari bilah navigasi atas.
Langkah 3: Konfigurasikan database sumber dan tujuan
Klik Create Task dan isi detail koneksi database.
Setelah mengonfigurasi database sumber dan tujuan, tinjau Limits yang ditampilkan di halaman sebelum melanjutkan. Melewatkan peninjauan ini dapat menyebabkan tugas gagal atau menghasilkan inkonsistensi data.
Informasi tugas
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama deskriptif untuk tugas DTS. DTS secara otomatis menghasilkan nama default. Nama ini tidak perlu unik. |
Source Database
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans database DMS yang sudah ada, atau biarkan kosong untuk mengonfigurasi koneksi secara manual. Jika Anda memilih instans yang sudah ada, DTS akan mengisi parameter lainnya secara otomatis. |
| Database Type | Pilih PolarDB-X 2.0. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans PolarDB-X 2.0 sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk sinkronisasi satu akun. |
| Instance ID | ID instans PolarDB-X 2.0 sumber. |
| Database Account | Akun database untuk instans sumber. Akun ini harus memiliki izin SELECT, REPLICATION CLIENT, dan REPLICATION SLAVE. |
| Database Password | Kata sandi untuk akun database sumber. |
Destination Database
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans database DMS yang sudah ada, atau biarkan kosong untuk mengonfigurasi koneksi secara manual. |
| Database Type | Pilih PolarDB-X 2.0. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans PolarDB-X 2.0 tujuan berada. |
| Instance ID | ID instans PolarDB-X 2.0 tujuan. |
| Database Account | Akun database untuk instans tujuan. Akun ini harus memiliki izin baca dan tulis. |
| Database Password | Kata sandi untuk akun database tujuan. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud (seperti ApsaraDB RDS for MySQL atau ApsaraDB for MongoDB) dan ke aturan grup keamanan database yang dihosting di ECS. Untuk database yang dikelola sendiri di pusat data atau yang dihosting oleh penyedia pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Untuk daftar blok CIDR, lihat bagian CIDR blocks of DTS servers.
Menambahkan blok CIDR server DTS ke daftar putih atau aturan grup keamanan Anda membuka potensi risiko keamanan. Sebelum melanjutkan, ambil langkah pencegahan seperti: menerapkan kredensial kuat, membatasi port yang terbuka, mengautentikasi panggilan API, melakukan audit rutin terhadap entri daftar putih, dan menghapus blok CIDR yang tidak sah. Atau, hubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Konfigurasikan objek sinkronisasi
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. DTS pertama-tama menyinkronkan skema dan data historis, lalu beralih ke replikasi inkremental berkelanjutan. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors (default): pemeriksaan awal gagal jika tujuan berisi tabel dengan nama yang sama seperti sumber. Perbaiki konflik sebelum memulai tugas. Gunakan object name mapping untuk mengganti nama tabel tujuan jika tidak dapat dihapus. Ignore Errors and Proceed: melewati pemeriksaan konflik nama tabel. Selama sinkronisasi penuh, catatan tujuan yang sudah ada dengan nilai kunci primer atau unik yang cocok tetap dipertahankan. Selama sinkronisasi inkremental, catatan tersebut ditimpa. Gunakan dengan hati-hati — ketidaksesuaian skema dapat menyebabkan sinkronisasi kolom parsial atau kegagalan tugas. |
| Synchronization Topology | Pilih One-way Synchronization. |
| Source Objects | Pilih objek yang akan disinkronkan (kolom, tabel, atau database) dan pindahkan ke bagian Selected Objects. Jika Anda memilih tabel atau kolom, DTS tidak menyinkronkan view, trigger, atau prosedur tersimpan. |
| Selected Objects | Untuk mengganti nama satu objek, klik kanan objek tersebut dan ikuti petunjuk di Map the name of a single object. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Untuk memfilter data berdasarkan kondisi SQL, klik kanan objek dan tentukan klausa WHERE. Lihat Specify filter conditions. |
Langkah 6: Konfigurasikan pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke kluster bersama. Untuk stabilitas lebih tinggi, beli kluster khusus. Lihat What is a DTS dedicated cluster. |
| Retry Time for Failed Connections | Durasi DTS mencoba ulang setelah kegagalan koneksi. Rentang valid: 10–1440 menit. Default: 720 menit. Atur minimal 30 menit. Jika DTS berhasil terhubung kembali dalam jendela ini, tugas dilanjutkan. Jika tidak, tugas gagal. Jika beberapa tugas berbagi database sumber atau tujuan yang sama dengan jendela percobaan ulang berbeda, jendela terpendek yang berlaku. DTS menagih instans selama masa percobaan ulang. |
| Retry Time for Other Issues | Durasi DTS mencoba ulang setelah kegagalan operasi DDL atau DML. Rentang valid: 1–1440 menit. Default: 10 menit. Atur minimal 10 menit. Nilai ini harus lebih kecil daripada nilai Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Batasi beban pada tujuan selama sinkronisasi data penuh dengan mengonfigurasi Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Synchronization | Batasi beban pada tujuan selama sinkronisasi inkremental dengan mengonfigurasi RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). |
| Environment Tag | Tag opsional untuk mengidentifikasi lingkungan instans. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Mengontrol apakah DTS menulis operasi SQL heartbeat ke database sumber. Yes: SQL heartbeat tidak ditulis; nilai latensi mungkin ditampilkan untuk instans DTS. No: SQL heartbeat ditulis; hal ini dapat memengaruhi fitur seperti backup fisik dan kloning database sumber. |
| Configure ETL | Mengaktifkan fitur ekstrak, transformasi, muat (ETL). Yes: masukkan pernyataan pemrosesan data di editor kode. Lihat Configure ETL in a data migration or data synchronization task. No: ETL dinonaktifkan. |
| Monitoring and Alerting | Mengonfigurasi peringatan untuk kegagalan tugas atau latensi sinkronisasi yang melebihi ambang batas. Yes: tentukan ambang batas peringatan dan kontak notifikasi. Lihat Configure monitoring and alerting when you create a DTS task. No: peringatan dinonaktifkan. |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API yang digunakan untuk mengonfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Jika ada item yang gagal:
Klik View Details di sebelah item yang gagal, selesaikan masalahnya, lalu klik Precheck Again.
Jika item peringatan tidak dapat diabaikan, klik View Details di sebelah item yang gagal, atasi masalahnya, lalu klik Precheck Again.
Jika item peringatan dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore di kotak dialog, klik OK, dan klik Precheck Again. Mengabaikan item peringatan dapat menyebabkan inkonsistensi data.
Langkah 8: Beli instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman pembelian, konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: bayar di muka untuk periode tetap. Lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam. Cocok untuk penggunaan jangka pendek. Hapus instans saat tidak lagi digunakan untuk menghentikan tagihan. |
| Resource Group Settings | Kelompok sumber daya untuk instans sinkronisasi data. Default: default resource group. Lihat What is Resource Management? |
| Instance Class | Tingkat throughput sinkronisasi. Lihat Instance classes of data synchronization instances. |
| Subscription Duration | Tersedia saat Subscription dipilih. Opsi: 1–9 bulan, atau 1, 2, 3, atau 5 tahun. |
Langkah 9: Mulai tugas
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start. Di kotak dialog konfirmasi, klik OK.
Tugas muncul di daftar tugas. DTS pertama-tama menjalankan sinkronisasi skema dan sinkronisasi data penuh, lalu secara otomatis beralih ke sinkronisasi data inkremental.