Gunakan Data Transmission Service (DTS) untuk menyinkronkan data dari kluster PolarDB for MySQL ke instans PolarDB-X 2.0. DTS mendukung sinkronisasi skema, sinkronisasi data penuh awal, dan sinkronisasi data inkremental, sehingga Anda dapat melakukan migrasi data sambil tetap menjaga database sumber tetap online.
Prasyarat
Sebelum memulai, pastikan bahwa:
Instans PolarDB-X 2.0 tujuan telah dibuat.
Ruang penyimpanan yang tersedia pada instans PolarDB-X 2.0 lebih besar daripada total ukuran data di kluster PolarDB for MySQL sumber.
Binary logging telah diaktifkan pada kluster PolarDB for MySQL sumber (lihat Persyaratan log biner di bawah).
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Untuk detailnya, lihat Ikhtisar penagihan. |
Topologi sinkronisasi yang didukung
Sinkronisasi satu arah satu-ke-satu.
Sinkronisasi satu arah banyak-ke-satu.
Operasi SQL yang dapat disinkronkan
| Jenis operasi | Pernyataan yang didukung |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE |
Batasan
Persyaratan database sumber
Tabel yang akan disinkronkan harus memiliki PRIMARY KEY atau kendala UNIK, dengan semua bidang bernilai unik. Jika tidak, database tujuan mungkin berisi catatan duplikat.
Jika Anda memilih tabel individual sebagai objek sinkronisasi dan perlu mengganti nama tabel atau kolom di database tujuan, satu tugas mendukung hingga 1.000 tabel. Tugas yang melebihi batas ini akan mengembalikan error permintaan. Sebagai solusi, bagi pekerjaan menjadi beberapa tugas atau sinkronkan seluruh database alih-alih tabel individual.
Persyaratan log biner
Binary logging harus dikonfigurasi dengan benar pada kluster PolarDB for MySQL sumber sebelum tugas dimulai.
| Persyaratan | Pengaturan | Mengapa |
|---|---|---|
| Aktifkan binary logging | Atur parameter loose_polar_log_bin ke ON. | Jika tidak diaktifkan, Pemeriksaan Awal akan mengembalikan error dan tugas DTS tidak dapat dimulai. Untuk instruksi pengaturan, lihat Aktifkan binary logging dan Ubah parameter. |
| Periode retensi log | Atur minimal 3 hari; direkomendasikan 7 hari. | Periode retensi yang terlalu singkat dapat menyebabkan inkonsistensi atau kehilangan data dan tidak dicakup oleh SLA DTS. Untuk instruksi, lihat Ubah periode retensi. |
Mengaktifkan binary logging menimbulkan biaya penyimpanan untuk file log.
Batasan berdasarkan fase sinkronisasi
| Fase | Batasan |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Jangan menjalankan pernyataan DDL yang mengubah skema database atau tabel. Tugas akan gagal jika pernyataan DDL dieksekusi selama fase ini. |
| Sinkronisasi data penuh dan sinkronisasi data inkremental | DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session selama fase-fase ini. Operasi pembaruan dan penghapusan kaskade pada sumber dapat menyebabkan inkonsistensi data. |
Objek dan tipe data yang tidak didukung
Tipe data yang tidak disinkronkan: BIT, VARBIT, GEOMETRY, ARRAY, UUID, TSQUERY, TSVECTOR, TXID_SNAPSHOT.
Indeks awalan tidak dapat disinkronkan. Jika sumber berisi indeks awalan, tugas mungkin gagal.
Node read-only dari kluster PolarDB for MySQL sumber tidak disinkronkan.
Tabel eksternal Object Storage Service (OSS) dari kluster PolarDB for MySQL sumber tidak disinkronkan.
Catatan penggunaan
Perilaku sinkronisasi skema: Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari database sumber ke database tujuan.
Dampak performa: Sinkronisasi data penuh awal menggunakan sumber daya baca dan tulis pada kedua database dan dapat meningkatkan beban server. Jalankan tugas sinkronisasi selama jam sepi.
Ukuran ruang tabel setelah sinkronisasi penuh: Operasi INSERT konkuren selama sinkronisasi data penuh awal menyebabkan fragmentasi tabel di tujuan. Setelah sinkronisasi penuh selesai, ruang tabel tujuan mungkin lebih besar daripada sumber.
Alat DDL pada tabel sumber: Jangan gunakan alat seperti pt-online-schema-change untuk melakukan operasi DDL pada tabel sumber selama sinkronisasi. Tugas akan gagal. Jika tidak ada sumber lain yang menulis ke tujuan, Anda dapat menggunakan Data Management (DMS) untuk melakukan operasi DDL tanpa lock pada tabel sumber.
Menulis ke tujuan: Gunakan hanya DTS untuk menulis data ke tujuan selama sinkronisasi. Menulis dari sumber lain dapat menyebabkan inkonsistensi data, dan kehilangan data dapat terjadi ketika DMS melakukan operasi DDL Online.
Pemulihan kegagalan tugas: Jika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin diubah selama pemulihan. Untuk parameter yang mungkin diubah, lihat Ubah parameter instans.
Tabel heartbeat: DTS secara berkala menjalankan
CREATE DATABASE IF NOT EXISTS \test\`` pada database sumber untuk memajukan posisi log biner.
Buat tugas sinkronisasi
Langkah 1: Buka halaman Sinkronisasi Data
Gunakan salah satu metode berikut:
DTS console
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Synchronization.
Di pojok kiri atas, pilih wilayah tempat instans sinkronisasi berada.
Konsol DMS
Langkah-langkah tepatnya dapat berbeda tergantung pada mode dan tata letak Konsol DMS Anda. Untuk detailnya, lihat Simple mode dan Sesuaikan tata letak dan gaya Konsol DMS.
Masuk 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 instans sinkronisasi berada.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task.
Konfigurasikan database sumber dan tujuan menggunakan parameter berikut.
PeringatanSetelah mengonfigurasi database sumber dan tujuan, tinjau Limits yang ditampilkan di halaman. Melewatkan langkah ini dapat menyebabkan tugas gagal atau menghasilkan inkonsistensi data.
Bagian Parameter Deskripsi N/A Task Name Nama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. Source Database Select Existing Connection Jika Anda memiliki instans database yang terdaftar di DTS, pilih dari daftar drop-down—DTS akan mengisi parameter lainnya secara otomatis. Untuk detailnya, lihat Manage database connections. Jika tidak, konfigurasikan parameter di bawah secara manual. Di Konsol DMS, pilih dari daftar Select a DMS database instance. Database Type Pilih PolarDB for MySQL. Access Method Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat kluster PolarDB for MySQL sumber berada. PolarDB Cluster ID ID kluster PolarDB for MySQL sumber. Database Account Akun database untuk kluster sumber. Akun harus memiliki izin baca pada objek yang akan disinkronkan. Database Password Kata sandi untuk akun database. Encryption Apakah koneksi ke kluster sumber dienkripsi menggunakan SSL. Untuk detailnya, lihat Configure SSL encryption. Destination Database Select Existing Connection Jika Anda memiliki instans database yang terdaftar di DTS, pilih dari daftar drop-down—DTS akan mengisi parameter lainnya secara otomatis. Untuk detailnya, lihat Manage database connections. Jika tidak, konfigurasikan parameter di bawah secara manual. Di Konsol DMS, pilih dari daftar Select a DMS database instance. Database Type Pilih PolarDB-X 2.0. Access Method 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 harus memiliki izin baca dan tulis pada database tujuan. Database Password Kata sandi untuk akun database. Klik Test Connectivity and Proceed.
Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan kedua database, baik secara otomatis maupun manual. Untuk detailnya, lihat Add the CIDR blocks of DTS servers.
Langkah 3: Konfigurasi objek sinkronisasi
Pada langkah Configure Objects, atur parameter berikut:
Parameter Deskripsi Synchronization Types Secara default, Incremental Data Synchronization dipilih. Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah Pemeriksaan Awal selesai, DTS menyinkronkan data historis objek yang dipilih dari database sumber ke kluster tujuan. Data historis ini menjadi dasar untuk sinkronisasi inkremental berikutnya. Processing Mode of Conflicting Tables Precheck and Report Errors: memeriksa apakah tujuan memiliki tabel dengan nama yang sama seperti sumber. Jika nama identik ada, Pemeriksaan Awal gagal dan tugas tidak dapat dimulai. Untuk menyelesaikan konflik penamaan, gunakan fitur pemetaan nama objek untuk mengganti nama tabel di tujuan. Ignore Errors and Proceed: melewati pemeriksaan konflik nama. Jika skema cocok dan catatan di tujuan memiliki primary key atau unique key yang sama dengan sumber: selama sinkronisasi data penuh, catatan tujuan dipertahankan; selama sinkronisasi data inkremental, catatan tujuan ditimpa. Jika skema berbeda, inisialisasi mungkin gagal atau hanya beberapa kolom yang disinkronkan. Gunakan opsi ini dengan hati-hati. Source Objects Pilih objek dari bagian Source Objects lalu klik ikon panah kanan untuk memindahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau database. Memilih tabel atau kolom akan mengecualikan objek lain seperti view, trigger, dan prosedur tersimpan. Selected Objects Untuk mengganti nama satu objek di tujuan, klik kanan objek tersebut di Selected Objects. Untuk detailnya, lihat Map the name of a single object. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Untuk detailnya, lihat Map multiple object names at a time. Untuk memfilter operasi SQL mana yang disinkronkan untuk objek tertentu, klik kanan objek tersebut lalu pilih operasinya. Untuk memfilter data berdasarkan baris, klik kanan objek tersebut dan tentukan kondisi WHERE. Untuk detailnya, lihat Specify filter conditions. Klik Next: Advanced Settings lalu konfigurasikan hal berikut:
Parameter Deskripsi Dedicated Cluster for Task Scheduling Secara default, DTS menggunakan kluster bersama. Untuk stabilitas yang lebih baik, beli kluster khusus. Untuk detailnya, lihat What is a DTS dedicated cluster. Retry Time for Failed Connections Berapa lama DTS mencoba ulang jika database sumber atau tujuan tidak dapat dijangkau setelah tugas dimulai. Nilai valid: 10–1440 menit. Default: 720 menit. Atur ke nilai lebih dari 30. Jika tugas berbeda berbagi database sumber atau tujuan yang sama, waktu coba ulang terpendek berlaku untuk semuanya. Selama DTS mencoba ulang, Anda tetap dikenai biaya untuk instans. Kami menyarankan Anda segera melepas instans DTS setelah instans sumber dan tujuan dilepas. Retry Time for Other Issues Berapa lama DTS mencoba ulang jika operasi DDL atau DML gagal setelah tugas dimulai. Nilai valid: 1–1440 menit. Default: 10 menit. Atur ke nilai lebih dari 10. Nilai ini harus lebih kecil dari Retry Time for Failed Connections. Enable Throttling for Full Data Synchronization Membatasi penggunaan sumber daya DTS selama sinkronisasi data penuh untuk mengurangi beban pada server sumber dan tujuan. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Hanya tersedia saat Full Data Synchronization dipilih. Enable Throttling for Incremental Data Synchronization Membatasi penggunaan sumber daya DTS selama sinkronisasi inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). Environment Tag Tag lingkungan yang digunakan untuk mengidentifikasi instans DTS. Anda dapat memilih tag lingkungan sesuai kebutuhan bisnis Anda. Whether to delete SQL operations on heartbeat tables of forward and reverse tasks Apakah DTS menulis operasi tabel heartbeat ke database sumber. Yes: DTS tidak menulis operasi heartbeat, tetapi instans mungkin menunjukkan latensi. No: DTS menulis operasi heartbeat, yang dapat memengaruhi backup fisik dan kloning database sumber. Configure ETL Apakah akan mengaktifkan ekstrak, transformasi, muat (ETL). Yes: konfigurasikan pernyataan pemrosesan data di editor kode. Untuk detailnya, lihat Configure ETL in a data migration or data synchronization task. No: lewati ETL. Untuk ikhtisarnya, lihat What is ETL? Monitoring and Alerting Apakah akan mengonfigurasi peringatan. Yes: atur ambang batas peringatan dan kontak notifikasi—peringatan aktif jika tugas gagal atau latensi sinkronisasi melebihi ambang batas. Untuk detailnya, lihat Configure monitoring and alerting when you create a DTS task. No: tanpa peringatan. Klik Next Step: Data Verification untuk mengonfigurasi verifikasi data. Untuk detailnya, lihat Configure a data verification task.
Langkah 4: Jalankan Pemeriksaan Awal
Untuk melihat pratinjau parameter API untuk tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.
Klik Next: Save Task Settings and Precheck.
DTS menjalankan Pemeriksaan Awal sebelum memulai tugas. Tugas hanya dapat dimulai setelah lulus Pemeriksaan Awal.
Jika suatu item gagal, klik View Details, atasi masalah berdasarkan hasilnya, lalu jalankan ulang Pemeriksaan Awal.
Jika peringatan muncul untuk item yang dapat diabaikan: klik Confirm Alert Details, lalu klik Ignore di kotak dialog, klik OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Jika peringatan muncul untuk item yang tidak dapat diabaikan, selesaikan masalah tersebut sebelum melanjutkan.
Langkah 5: Beli instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman buy, konfigurasikan parameter berikut:
Bagian Parameter Deskripsi New Instance Class 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 sinkronisasi. Default: default resource group. Untuk detailnya, lihat What is Resource Management? Instance Class Kelas throughput sinkronisasi. Pilih berdasarkan volume data dan persyaratan latensi Anda. Untuk detailnya, lihat Instance classes of data synchronization instances. Subscription Duration Durasi langganan (1–9 bulan, atau 1, 2, 3, atau 5 tahun). Hanya tersedia untuk metode penagihan Subscription. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Setelah tugas dimulai, Anda dapat memantau progresnya di daftar tugas.