Saat Anda menjalankan kluster PolarDB for MySQL di berbagai wilayah atau akun, menjaga konsistensi data di antara kluster tersebut memerlukan mekanisme replikasi yang andal. Data Transmission Service (DTS) menyediakan sinkronisasi data satu arah dan dua arah antar kluster PolarDB for MySQL, sehingga Anda dapat:
Pemulihan bencana: Menjaga kluster cadangan tetap selaras dengan kluster utama dan melakukan failover dengan cepat saat diperlukan.
Penerapan multi-wilayah: Mereplikasi data ke kluster di wilayah berbeda untuk mengurangi latensi baca bagi pengguna yang tersebar secara geografis.
Migrasi tanpa downtime: Menyinkronkan data antar kluster saat aplikasi sedang berjalan, lalu mengalihkan trafik tanpa downtime.
Prasyarat
Sebelum memulai:
Kedua kluster PolarDB for MySQL sumber dan tujuan telah dibuat. Lihat Pembelian kustom dan Beli klaster langganan.
Kluster tujuan memiliki ruang penyimpanan tersedia lebih besar daripada ukuran total data kluster sumber.
Batasan
Database sumber
Tabel harus memiliki PRIMARY KEY atau kendala UNIK, dengan semua bidang bernilai unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan. Untuk sinkronisasi dua arah, aktifkan fitur Exactly-Once write guna menangani tabel tanpa primary key atau kendala UNIK. Lihat Sinkronisasi tabel tanpa primary key atau kendala UNIK.
Jika Anda menyinkronkan tabel (bukan seluruh database) dan perlu mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi pekerjaan menjadi beberapa tugas atau sinkronkan seluruh database sebagai gantinya.
Persyaratan binary logging:
Aktifkan binary logging dengan parameter
loose_polar_log_bindiatur keON. Jika parameter ini tidak diatur, pemeriksaan awal gagal dan tugas DTS tidak dapat dimulai. Lihat Aktifkan binary logging dan Ubah parameter.Note: Mengaktifkan binary logging menimbulkan biaya penyimpanan.Pertahankan log biner minimal selama 3 hari. Periode retensi 7 hari direkomendasikan. Periode retensi yang lebih pendek dapat menyebabkan inkonsistensi atau kehilangan data, serta memengaruhi keandalan layanan DTS. Untuk mengatur periode retensi, lihat bagian Ubah periode retensi dalam "Aktifkan binary logging".
Jangan menjalankan pernyataan DDL yang mengubah skema database atau tabel selama sinkronisasi skema atau sinkronisasi data penuh. Melakukannya akan menyebabkan tugas gagal.
Selama sinkronisasi skema, DTS juga menyinkronkan kunci asing dari sumber ke tujuan. Selama sinkronisasi 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 periode ini, inkonsistensi data dapat terjadi.
Batasan lainnya
| Batasan | Detail |
|---|---|
| Node read-only | DTS tidak menyinkronkan node read-only dari kluster sumber. |
| Tabel eksternal OSS | DTS tidak menyinkronkan tabel eksternal Object Storage Service (OSS). |
| Parser yang didefinisikan melalui komentar | DTS tidak menyinkronkan data yang menggunakan parser yang didefinisikan oleh komentar. |
| Karakter 4-byte | Data yang mengandung karakter langka atau karakter UTF-8 4-byte memerlukan database dan tabel tujuan menggunakan set karakter UTF8mb4. Jika sinkronisasi skema diaktifkan, atur parameter character_set_server di database tujuan ke UTF8mb4. |
| Alat DDL | Kami menyarankan agar Anda tidak menggunakan alat seperti pt-online-schema-change untuk menjalankan operasi DDL pada tabel sumber selama sinkronisasi. Jika dilakukan, tugas DTS akan gagal. Untuk menjalankan operasi DDL Online, gunakan Data Management (DMS)—tetapi hanya jika tidak ada sumber data lain yang menulis ke tujuan selama sinkronisasi. Menulis ke tujuan dari beberapa sumber selama sinkronisasi dapat menyebabkan kehilangan data. |
| DDL gagal di tujuan | Jika pernyataan DDL gagal di tujuan, tugas sinkronisasi tetap berlanjut. Lihat pernyataan DDL yang gagal di log tugas. Lihat Lihat log tugas. |
| Sinkronisasi akun | Sinkronisasi akun database memiliki prasyarat tersendiri. Lihat Migrasi akun database. |
| Pemulihan tugas | Jika tugas DTS gagal, dukungan DTS akan mencoba memulihkannya dalam waktu 8 jam. Tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin disesuaikan. Untuk parameter yang mungkin diubah, lihat Ubah parameter instans. |
Dampak kinerja
Selama sinkronisasi data penuh, DTS membaca dan menulis ke kedua kluster secara bersamaan, yang meningkatkan beban mereka. Untuk mengurangi dampak:
Jalankan sinkronisasi selama jam sepi.
Aktifkan pembatasan kecepatan di pengaturan lanjutan (konfigurasikan batas QPS dan RPS untuk sinkronisasi penuh).
Perkirakan ruang tabel tujuan akan lebih besar daripada sumber setelah sinkronisasi penuh selesai—operasi INSERT konkuren menyebabkan fragmentasi tabel.
Sinkronisasi dua arah
Sinkronisasi dua arah hanya didukung antara dua kluster PolarDB for MySQL. Tiga kluster atau lebih tidak didukung.
Operasi DDL hanya dapat disinkronkan dalam arah maju. Hal ini menjaga konsistensi data.
DTS membuat database
dtsdi tujuan untuk mencegah sinkronisasi melingkar. Jangan ubah database ini selama tugas berjalan.Instansi sinkronisasi dua arah mencakup tugas maju dan tugas balik. Jika suatu objek muncul di kedua tugas:
Hanya satu tugas yang dapat menyinkronkan data penuh dan data inkremental untuk objek tersebut. Tugas lainnya hanya menyinkronkan data inkremental.
Data yang disinkronkan oleh satu tugas tidak diumpan balik sebagai data sumber untuk tugas lainnya.
DTS secara berkala mengeksekusi
CREATE DATABASE IF NOT EXISTS \test\`` pada database sumber untuk memajukan posisi log biner.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. |
Operasi SQL yang dapat disinkronkan
| Jenis | Operasi |
|---|---|
| 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 |
RENAME TABLE dapat menyebabkan inkonsistensi data. Misalnya, jika Anda menyinkronkan tabel berdasarkan nama lalu mengganti namanya, DTS berhenti menyinkronkan tabel tersebut. Untuk menghindarinya, sinkronkan seluruh database alih-alih tabel individual, dan pastikan database tempat tabel tersebut berada—baik sebelum maupun setelah penggantian nama—termasuk dalam cakupan sinkronisasi.
Menyiapkan sinkronisasi data
Penyiapan terdiri dari delapan langkah: navigasi ke daftar tugas, pilih wilayah, konfigurasikan database sumber dan tujuan, uji konektivitas, pilih objek dan konfigurasikan pengaturan sinkronisasi, konfigurasikan pengaturan lanjutan, jalankan pemeriksaan awal, dan beli instans.
Langkah 1: Buka halaman Tugas Sinkronisasi Data
Masuk ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik Data + AI.
Di panel navigasi sebelah kiri, pilih DTS (DTS) > Data Synchronization.
Navigasi dapat berbeda tergantung tata letak Konsol DMS. Lihat Mode sederhana dan Sesuaikan tata letak dan gaya Konsol DMS. Atau, buka langsung halaman Tugas Sinkronisasi Data.
Langkah 2: Pilih wilayah
Pada halaman Data Synchronization Tasks, pilih wilayah tempat instance sinkronisasi akan ditempatkan.
Di Konsol DTS baru, pilih wilayah dari bilah navigasi atas.
Langkah 3: Konfigurasikan database sumber dan tujuan
Klik Create Task. Di halaman wizard, konfigurasikan parameter berikut.
Setelah mengonfigurasi sumber dan tujuan, baca dengan cermat Limits yang ditampilkan di halaman. Melewatkan langkah ini dapat menyebabkan kegagalan tugas atau inkonsistensi data.
Pengaturan tugas
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk tugas DTS. DTS menghasilkan nama default. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. |
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans database DMS yang sudah ada untuk mengisi otomatis parameter koneksi, atau biarkan kosong dan isi parameter secara manual. |
| Database Type | Pilih PolarDB for MySQL. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat kluster sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Apakah akan menyinkronkan lintas akun Alibaba Cloud. Pilih No untuk sinkronisasi dalam akun yang sama. |
| PolarDB Cluster ID | ID kluster sumber. Sumber dan tujuan dapat berupa kluster yang sama (untuk sinkronisasi dalam kluster) atau kluster berbeda. |
| Database Account | Akun database dengan izin baca pada objek yang akan disinkronkan. |
| Database Password | Kata sandi untuk akun database. |
| Encryption | Apakah akan mengenkripsi koneksi. Lihat Konfigurasikan enkripsi SSL. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans database DMS yang sudah ada untuk mengisi otomatis parameter koneksi, atau biarkan kosong dan isi parameter secara manual. |
| Database Type | Pilih PolarDB for MySQL. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat kluster tujuan berada. |
| PolarDB Cluster ID | ID kluster tujuan. |
| Database Account | Akun database dengan izin baca pada database tujuan. Akun istimewa direkomendasikan. |
| Database Password | Kata sandi untuk akun database. |
| Encryption | Apakah akan mengenkripsi koneksi. Lihat Konfigurasikan enkripsi SSL. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan instans Elastic Compute Service (ECS). Untuk database yang dikelola sendiri yang dihosting di pusat data atau cloud pihak ketiga, tambahkan blok CIDR DTS secara manual. Lihat Tambahkan blok CIDR server DTS.
Menambahkan blok CIDR DTS ke daftar putih atau aturan grup keamanan Anda menimbulkan risiko keamanan potensial. Sebelum melanjutkan, ambil tindakan pencegahan seperti memberlakukan kredensial kuat, membatasi port yang terbuka, memvalidasi panggilan API, dan mengaudit daftar putih Anda secara berkala. Untuk keamanan yang lebih baik, hubungkan DTS ke database Anda melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Pilih objek dan konfigurasikan pengaturan sinkronisasi
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Secara default, Incremental Data Synchronization dipilih. Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. DTS menyinkronkan data yang ada sebagai garis dasar, kemudian menerapkan perubahan yang sedang berlangsung secara inkremental. |
| Method to Migrate Triggers in Source Database | Cara menangani trigger selama sinkronisasi. Atur ini hanya jika Anda menyinkronkan trigger dan telah memilih Schema Synchronization. Lihat Sinkronisasi atau migrasi trigger dari database sumber. |
| Synchronization Topology | Dalam contoh ini, Two-way Synchronization dipilih. Alternatifnya, Anda dapat memilih Two-way Synchronization. |
| Processing Mode of Conflicting Tables | Cara DTS menangani tabel di tujuan yang memiliki nama sama dengan tabel sumber: Precheck and Report Errors menghentikan tugas jika ditemukan nama tabel identik; Ignore Errors and Proceed melewati pemeriksaan dan dapat menyebabkan inkonsistensi data—gunakan dengan hati-hati. |
| Source Objects | Pilih objek dari bagian Source Objects dan klik ikon panah untuk memindahkannya ke bagian Selected Objects. Pilih kolom, tabel, atau database. Memilih hanya tabel atau kolom akan mengecualikan view, trigger, dan prosedur tersimpan. |
| Selected Objects | Klik kanan objek untuk mengganti namanya di tujuan (pemetaan nama objek) atau memilih operasi SQL tertentu yang akan disinkronkan. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Klik kanan tabel untuk menambahkan kondisi WHERE guna pemfilteran tingkat baris. Lihat Pemetaan nama objek dan Tentukan kondisi filter. |
Panduan pemilihan objek
Pilih semua objek terkait secara bersamaan untuk menghindari kegagalan akibat dependensi yang hilang, seperti view yang mereferensikan tabel atau tabel dengan relasi kunci asing. Jika database sumber akan mengalami penggantian nama tabel selama sinkronisasi (melalui RENAME TABLE), pilih seluruh database alih-alih tabel individual untuk memastikan nama database sebelum dan setelah penggantian nama termasuk dalam cakupan sinkronisasi.
Langkah 6: Konfigurasikan pengaturan lanjutan
Klik Next: Advanced Settings.
Verifikasi data
Konfigurasikan tugas verifikasi data untuk mendeteksi inkonsistensi antara sumber dan tujuan setelah sinkronisasi. Lihat Konfigurasikan tugas verifikasi data.
Advanced settings
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menggunakan klaster bersama. Untuk stabilitas yang lebih baik, beli klaster khusus. Lihat Apa itu klaster khusus DTS. |
| Set Alerts | Konfigurasikan peringatan untuk kegagalan tugas atau latensi yang melebihi ambang batas. Pilih Yes untuk mengatur ambang batas peringatan dan kontak notifikasi. Lihat Konfigurasikan pemantauan dan peringatan. |
| Select the engine type of the destination database | Mesin penyimpanan kluster tujuan: InnoDB (default) atau X-Engine (mesin penyimpanan online transaction processing (OLTP)). |
| Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database | Cara DTS menangani tabel temporary yang dihasilkan oleh alat Online DDL (DMS atau gh-ost): Yes — menyinkronkan data tabel temporary (dapat memperpanjang durasi tugas untuk perubahan besar); Tidak, Adaptasi ke Online DDL DMS — melewati tabel temporary dan hanya menyinkronkan DDL asli (tabel tujuan mungkin terkunci); Tidak, Adaptasi ke gh-ost — melewati tabel temporary dan hanya menyinkronkan DDL gh-ost asli (tabel tujuan mungkin terkunci; mendukung regex kustom untuk memfilter tabel shadow). |
| Retry Time for Failed Connections | Durasi DTS mencoba ulang setelah kegagalan koneksi. Rentang valid: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, jendela coba ulang terpendek yang berlaku. |
| Retry Time for Other Issues | Durasi DTS mencoba ulang setelah kegagalan DDL atau DML. Rentang valid: 1–1.440 menit. Default: 10 menit. Atur lebih dari 10 menit. Harus lebih kecil dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Synchronization | Membatasi beban baca/tulis selama sinkronisasi penuh. Konfigurasikan Queries per second (QPS) to the source database, RPS Migrasi Data Penuh, dan Kecepatan migrasi data untuk migrasi penuh (MB/s). Tersedia hanya jika Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Synchronization | Membatasi beban selama sinkronisasi inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Kecepatan sinkronisasi data untuk sinkronisasi inkremental (MB/s). |
| Environment Tag | Tag untuk mengidentifikasi instans DTS. Opsional. |
| Configure ETL | Apakah akan menerapkan transformasi extract, transform, and load (ETL). Pilih Yes untuk menulis pernyataan pemrosesan data di editor kode. Lihat Konfigurasikan ETL dan Apa itu ETL?. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Apakah DTS menulis operasi SQL heartbeat ke database sumber: Yes — menonaktifkan penulisan (indikator latensi sinkronisasi mungkin muncul di instans DTS); No — mengaktifkan penulisan (dapat memengaruhi backup fisik dan kloning database sumber). |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai. Setiap item pemeriksaan awal memiliki salah satu dari tiga hasil:
| Hasil | Makna | Tindakan |
|---|---|---|
| Passed | Item memenuhi semua persyaratan. | Tidak perlu tindakan. |
| Failed | Item tidak memenuhi persyaratan dan menghambat tugas. | Klik View Details di sebelah item yang gagal, perbaiki masalahnya, lalu klik Precheck Again. |
| Alert | Item tidak sepenuhnya memenuhi persyaratan, tetapi tugas dapat dilanjutkan dengan dampak potensial. | Untuk mengabaikan: klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data. |
Langkah 8: Beli instans sinkronisasi
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman buy, konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Billing Method | Langganan — bayar di muka untuk jangka waktu 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 menghindari biaya berkelanjutan. |
| Resource Group Settings | Kelompok sumber daya untuk instans. Default: kelompok sumber daya default. Lihat Apa itu Resource Management?. |
| Instance Class | Kelas throughput sinkronisasi. Pilih berdasarkan volume data dan persyaratan latensi Anda. Lihat Kelas instans instansi sinkronisasi data. |
| Subscription Duration | Jangka waktu langganan: 1–9 bulan, atau 1, 2, 3, atau 5 tahun. Tersedia hanya untuk metode penagihan Langganan. |
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start. Di dialog konfirmasi, klik OK.
Tugas muncul di daftar tugas. Pantau perkembangannya di sana.