Gunakan Data Transmission Service (DTS) untuk menyinkronkan data inkremental real-time dari instans PolarDB-X 1.0 ke kluster AnalyticDB for MySQL V3.0. DTS terlebih dahulu melakukan sinkronisasi data penuh untuk menetapkan garis dasar, lalu secara berkelanjutan menerapkan perubahan inkremental agar kluster tujuan tetap mutakhir.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans PolarDB-X 1.0 dengan ApsaraDB RDS for MySQL sebagai tipe penyimpanan (kustom atau yang dibeli). PolarDB for MySQL tidak didukungPolarDB-X 1.0
Kluster AnalyticDB for MySQL V3.0 dengan ruang penyimpanan yang tersedia lebih besar daripada ukuran total data pada instans sumber
Binary logging diaktifkan pada instans ApsaraDB RDS for MySQL yang terhubung ke PolarDB-X 1.0, dengan
binlog_row_imagediatur kefull. Jika tidak, pesan error akan dikembalikan selama Pemeriksaan Awal dan tugas tidak dapat dimulai. Log biner harus dipertahankan minimal selama 7 hari (untuk sinkronisasi penuh dan inkremental) atau minimal 24 jam (untuk sinkronisasi inkremental saja). Jika persyaratan ini tidak terpenuhi, DTS mungkin gagal memperoleh log biner dan tugas bisa gagal. Setelah sinkronisasi data penuh selesai, Anda dapat mengatur periode retensi menjadi lebih dari 24 jam. Pastikan periode retensi memenuhi persyaratan ini; jika tidak, keandalan layanan dan kinerja yang dinyatakan dalam Perjanjian Tingkat Layanan (SLA) DTS tidak dapat dicapaiSet karakter data yang akan disinkronkan bukan
utf8mb3. Jika iya, sinkronisasi inkremental akan gagal
Untuk petunjuk penyiapan, lihat Buat instans PolarDB-X 1.0, Buat database, dan Buat akun database.
Batasan
Persyaratan database sumber
| Batasan | Detail |
|---|---|
| Kendala tabel | Tabel harus memiliki Kendala KUNCI UTAMA atau Kendala UNIK, dan semua bidang harus unik. Tabel yang hanya memiliki Kendala UNIK tidak mendukung Sinkronisasi skema — gunakan tabel dengan Kendala KUNCI UTAMA sebagai gantinya. Tabel dengan indeks secondary tidak dapat disinkronkan. |
| Batas jumlah tabel | Jika Anda memilih tabel (bukan seluruh database) 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. Bagi pekerjaan menjadi beberapa tugas, atau sinkronkan seluruh database sebagai gantinya. |
| Metode pemisahan | PolarDB-X 1.0 hanya mendukung Pemisahan horizontal (database dan tabel). Pemisahan vertikal tidak didukung. |
| Instans read-only | Instans read-only pada lapisan komputasi PolarDB-X 1.0 tidak didukung sebagai sumber. |
Operasi yang harus dihindari selama sinkronisasi
Operasi berikut pada sumber menyebabkan tugas gagal atau data menjadi tidak konsisten:
Scaling instans sumber atau instans ApsaraDB RDS for MySQL yang terhubung
Mengubah distribusi database fisik untuk database logis atau tabel yang dikonfigurasi di ApsaraDB RDS for MySQL
Migrasi tabel hot, mengubah shard key, atau melakukan Operasi DDL Online
Menjalankan operasi DDL menggunakan gh-ost atau pt-online-schema-change
Mengubah jenis jaringan instans PolarDB-X 1.0 — jika Anda harus melakukannya, perbarui informasi koneksi jaringan dalam tugas DTS setelahnyaPolarDB-X 1.0
Rekomendasi penulisan data
Tulis data ke kluster tujuan hanya melalui DTS selama sinkronisasi. Menggunakan alat lain dapat menyebabkan kehilangan data saat Data Management (DMS) melakukan operasi DDL Online.
Perilaku kunci asing
DTS tidak menyinkronkan foreign keys selama Sinkronisasi skema. Selama sinkronisasi data penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda melakukan operasi cascade update atau delete pada sumber selama periode ini, ketidakkonsistenan data dapat terjadi.
Dampak kinerja dan waktu pelaksanaan
Sebelum menyinkronkan data, evaluasi dampak sinkronisasi data terhadap kinerja database sumber dan tujuan. Kami menyarankan agar Anda menyinkronkan data selama jam sepi. Selama sinkronisasi data penuh awal, DTS menggunakan resource baca dan tulis dari database sumber dan tujuan, yang dapat meningkatkan beban pada server database.
Ukuran ruang tabel tujuan
Setelah sinkronisasi data penuh, ruang tabel tujuan lebih besar daripada sumber karena fragmentasi dari operasi INSERT konkuren.
Operasi SQL yang dapat disinkronkan
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Saat data ditulis ke kluster AnalyticDB for MySQL V3.0 tujuan, pernyataan UPDATE secara otomatis dikonversi menjadi REPLACE INTO. Jika pernyataan UPDATE menargetkan primary key, pernyataan tersebut dikonversi menjadi DELETE diikuti oleh INSERT.
Topologi sinkronisasi yang didukung
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi satu arah kaskade
Sinkronisasi satu arah banyak-ke-satu
Untuk detailnya, lihat Synchronization topologies.
Izin akun database yang diperlukan
| Database | Izin yang diperlukan | Referensi |
|---|---|---|
| Instans PolarDB-X 1.0 sumber | Izin baca pada objek yang akan disinkronkan | Kelola akun |
| Kluster AnalyticDB for MySQL V3.0 tujuan | Izin baca dan tulis pada database target | Buat akun database |
Buat tugas sinkronisasi data
DTS menjalankan subtask untuk setiap instans ApsaraDB RDS for MySQL yang terhubung ke instans PolarDB-X 1.0 sumber. Pantau status setiap subtask di PolarDB-X 1.0Task Topology setelah tugas dimulai.
Langkah 1: Buka halaman Sinkronisasi Data
Gunakan salah satu metode berikut untuk mengakses halaman Sinkronisasi Data.
Konsol DTS
Login ke Konsol DTS.
Di panel navigasi kiri, klik Data Synchronization.
Di pojok kiri atas, pilih wilayah tempat instansi sinkronisasi data berada.
Konsol DMS
Langkah-langkahnya dapat berbeda tergantung mode dan tata letak Konsol DMS. Untuk detailnya, lihat Simple mode dan Customize the layout and style of the DMS console.
Login ke Konsol DMS.
Di bilah navigasi atas, arahkan pointer ke Data + AI lalu pilih DTS (DTS) > Data Synchronization.
Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instansi sinkronisasi data berada.
Langkah 2: Konfigurasikan database sumber dan tujuan
Klik Create Task.
Konfigurasikan parameter berikut.
Database sumber
Parameter Deskripsi Task Name Nama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. 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 Pilih No jika sumber dan tujuan berada dalam Akun Alibaba Cloud yang sama. Instance ID ID instans PolarDB-X 1.0 sumber. Database Account Akun database untuk instans sumber. Untuk izin yang diperlukan, lihat Izin akun database yang diperlukan. Database Password Password untuk akun database. Database tujuan
Parameter Deskripsi Database Type Pilih AnalyticDB for MySQL 3.0. Connection Type Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat kluster AnalyticDB for MySQL V3.0 tujuan berada. Instance ID ID kluster AnalyticDB for MySQL V3.0 tujuan. Database Account Akun database untuk kluster tujuan. Untuk izin yang diperlukan, lihat Izin akun database yang diperlukan. Database Password Password untuk akun database. Klik Test Connectivity and Proceed.
Pastikan Blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan. Untuk detailnya, lihat Add the CIDR blocks of DTS servers.
Langkah 3: Konfigurasikan objek yang akan disinkronkan
Pada langkah Configure Objects, konfigurasikan parameter berikut.
Parameter Deskripsi Synchronization Types Secara default, Incremental Data Synchronization dipilih. Pilih juga Schema Synchronization dan Full Data Synchronization. Setelah Pemeriksaan Awal, DTS menyinkronkan data historis dari sumber ke tujuan sebagai garis dasar untuk sinkronisasi inkremental. Jika Full Data Synchronization dipilih, DTS juga menyinkronkan skema dan data tabel yang dibuat menggunakan CREATE TABLE. DDL and DML Operations to Be Synchronized Operasi SQL yang akan disinkronkan. Untuk operasi yang didukung, lihat Operasi SQL yang dapat disinkronkan. Untuk memilih operasi untuk tabel tertentu, klik kanan objek di Selected Objects dan pilih operasi yang akan disinkronkan. Merge Table Yesalert notification settings: Menggabungkan beberapa tabel sumber dengan skema yang sama menjadi satu tabel tujuan. Berguna ketika sharding OLTP diterapkan untuk kinerja dan Anda ingin mengkonsolidasi data untuk kueri pemrosesan analitik online (OLAP). Untuk detailnya, lihat Enable the multi-table merging feature. Saat diaktifkan: ganti nama tabel sumber yang dipilih menjadi nama tabel tujuan menggunakan fitur pemetaan nama objek (lihat Database, table, and column name mapping), dan DTS menambahkan kolom __dts_data_source(tipe TEXT) ke tabel tujuan untuk melacak sumber setiap catatan, dalam format<sync instance ID>:<source database>:<source schema>:<source table>— contohnya,dts********:dtstestdata:testschema:customer1. Semua tabel sumber yang dipilih digabung; buat tugas terpisah untuk tabel yang tidak boleh digabung.PeringatanJangan lakukan perubahan skema DDL pada database atau tabel sumber saat merge diaktifkan. No (default): Jangan gabungkan tabel.
Processing Mode of Conflicting Tables Precheck and Report Errors (default): Pemeriksaan Awal gagal jika tujuan berisi tabel dengan nama yang sama seperti tabel sumber. Ganti nama tabel yang bentrok menggunakan fitur pemetaan nama objek sebelum melanjutkan. Ignore Errors and Proceed: Melewati pemeriksaan bentrok nama. PeringatanHal ini dapat menyebabkan ketidakkonsistenan data. Selama sinkronisasi penuh, catatan yang sudah ada di tujuan dengan kunci utama atau unik yang cocok dipertahankan (catatan sumber dilewati). Selama sinkronisasi inkremental, catatan yang cocok di tujuan ditimpa. Jika skema berbeda, tugas mungkin gagal atau hanya kolom parsial yang disinkronkan.
Capitalization of Object Names in Destination Instance Kebijakan kapitalisasi untuk nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Untuk detailnya, lihat Specify the capitalization of object names in the destination instance. Source Objects Pilih objek dan klik ikon
untuk menambahkannya ke Selected Objects. Anda dapat memilih tabel sebagai objek sinkronisasi. Jika Anda memilih seluruh database, DTS tidak menyinkronkan perubahan CREATE TABLE atau DROP TABLE.Selected Objects Untuk mengganti nama satu objek di tujuan, klik kanan objek tersebut dan ikuti langkah-langkah di Individual database, table, and column name mapping. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas (lihat Batch database, table, and column name mapping). Untuk memfilter baris menggunakan kondisi WHERE, klik kanan objek dan tentukan kondisi (lihat Specify filter conditions). Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
Parameter Deskripsi Dedicated Cluster for Task Scheduling Secara default, DTS menggunakan kluster bersama. Untuk meningkatkan stabilitas tugas, beli kluster khusus. Untuk detailnya, lihat What is a DTS dedicated cluster. Retry Time for Failed Connections Durasi DTS mencoba ulang jika database sumber atau tujuan tidak dapat dijangkau. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur nilai ini lebih dari 30 menit. Jika DTS berhasil terhubung kembali dalam jangka waktu ini, tugas dilanjutkan. Jika waktu retry terpendek di antara tugas yang berbagi sumber atau tujuan yang sama lebih singkat, nilai tersebut yang berlaku. Biaya DTS tetap berlaku selama periode retry. Retry Time for Other Issues Durasi DTS mencoba ulang ketika operasi DDL atau DML gagal. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur nilai ini lebih dari 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections. Enable Throttling for Full Data Synchronization Membatasi beban baca/tulis pada sumber dan tujuan selama sinkronisasi data penuh. Konfigurasikan 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 Membatasi beban pada tujuan selama sinkronisasi inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). Environment Tag Tag opsional untuk mengkategorikan instans DTS berdasarkan lingkungan (misalnya, production atau staging). Configure ETL Apakah akan mengaktifkan ekstrak, transformasi, muat (ETL) untuk memproses data selama sinkronisasi. Yes: Masukkan pernyataan pemrosesan data di editor kode (lihat Configure ETL in a data migration or data synchronization task). No (default): Lewati konfigurasi ETL. Untuk ikhtisar ETL, lihat What is ETL? Monitoring and Alerting Apakah akan mengirim notifikasi saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. No (default). Yes: Konfigurasikan ambang batas peringatan dan pengaturan notifikasi (lihat Configure monitoring and alerting when you create a DTS task). (Opsional) Klik Next: Configure Database and Table Fields untuk mengonfigurasi Type, Primary Key Column, Distribution Key, Partition Key, Partitioning Rules, dan Partition Lifecycle untuk tabel di database tujuan.
Langkah ini tersedia hanya jika Schema Synchronization dipilih di Synchronization Types. Untuk mengubah pengaturan ini, atur Definition Status ke All. Untuk kunci utama komposit, tentukan satu atau beberapa kolom sebagai Distribution Key dan Partition Key. Untuk detailnya, lihat .
Langkah 4: Jalankan Pemeriksaan Awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan pointer ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters sebelum melanjutkan.
Tunggu hingga Pemeriksaan Awal selesai. DTS harus lulus Pemeriksaan Awal agar tugas dapat dimulai.
Jika suatu item gagal, klik View Details untuk melihat penyebabnya, selesaikan masalah tersebut, lalu klik Precheck Again.
Jika suatu item memicu peringatan:
Jika peringatan tidak dapat diabaikan, selesaikan masalah yang mendasarinya dan jalankan ulang Pemeriksaan Awal.
Jika peringatan dapat diabaikan dengan aman, klik Confirm Alert Details, lalu klik Ignore di dialog View Details, konfirmasi dengan OK, lalu klik Precheck Again.
Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 5: Beli dan mulai 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 durasi tetap. Lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: Ditagih per jam. Cocok untuk penggunaan jangka pendek. Lepaskan instans saat tidak lagi diperlukan untuk menghentikan biaya. Resource Group Settings Kelompok sumber daya untuk instans. Default: default resource group. Untuk detailnya, lihat What is Resource Management? Instance Class Kelas instans menentukan kecepatan sinkronisasi. Pilih berdasarkan volume data dan persyaratan latensi Anda. Untuk detailnya, lihat Instance classes of data synchronization instances. Subscription Duration Tersedia hanya untuk penagihan Subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Tugas muncul di daftar tugas. DTS menjalankan subtask untuk setiap instans ApsaraDB RDS for MySQL yang terhubung ke instans PolarDB-X 1.0 sumber. Pantau status setiap subtask di Task Topology.PolarDB-X 1.0