Gunakan Data Transmission Service (DTS) untuk menyinkronkan data secara berkelanjutan dari kluster PolarDB for MySQL ke instans ApsaraDB RDS for MySQL. Kasus penggunaan umum mencakup disaster recovery, offloading baca, dan migrasi tanpa downtime.
Jenis tujuan yang didukung
Topik ini menggunakan instans ApsaraDB RDS for MySQL sebagai tujuan. Prosedur yang sama berlaku untuk jenis tujuan berikut:
Instans ApsaraDB RDS for MySQL
Database yang dikelola sendiri yang dihosting di Elastic Compute Service (ECS)
Database yang dikelola sendiri yang terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway
Database yang dikelola sendiri yang terhubung melalui Database Gateway
Database yang dikelola sendiri yang terhubung melalui Cloud Enterprise Network (CEN)
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster PolarDB for MySQL. Lihat Beli klaster langganan atau Beli klaster pay-as-you-go.
Instans ApsaraDB RDS for MySQL sebagai tujuan. Lihat Buat instans ApsaraDB RDS for MySQL.
Ruang penyimpanan yang tersedia pada instans tujuan melebihi ukuran total data kluster sumber.
Akun database sumber dengan izin baca pada objek yang akan disinkronkan.
Akun database tujuan dengan izin baca dan tulis pada database tujuan.
Binary logging diaktifkan pada kluster sumber dengan
loose_polar_log_bindiatur keon(diperlukan untuk sinkronisasi data inkremental). Lihat Aktifkan binary logging dan Ubah parameter.
Mengaktifkan binary logging menimbulkan biaya penyimpanan untuk file log biner pada kluster PolarDB for MySQL Anda.
Persyaratan retensi log biner:
| Jenis tugas | Periode retensi minimum |
|---|---|
| Hanya sinkronisasi data inkremental | 24 jam |
| Sinkronisasi data penuh awal + sinkronisasi data inkremental | 7 hari |
Setelah sinkronisasi data penuh selesai, Anda dapat mengatur periode retensi lebih dari 24 jam. Jika log biner tidak dipertahankan cukup lama, DTS mungkin gagal membacanya, menyebabkan tugas gagal atau, dalam kasus luar biasa, inkonsistensi atau kehilangan data. Tugas yang tidak memenuhi persyaratan ini berada di luar SLA DTS.
Batasan
Batasan database sumber
Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE, dengan semua field unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan.
Saat Anda memilih tabel sebagai objek sinkronisasi dan perlu mengeditnya (misalnya mengganti nama tabel atau kolom), satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau sinkronkan pada tingkat database.
Node read-only dari kluster PolarDB for MySQL sumber tidak dapat disinkronkan.
Operasi DDL selama sinkronisasi
Jangan gunakan pt-online-schema-change untuk operasi DDL pada tabel sumber selama sinkronisasi. Hal ini dapat menyebabkan tugas gagal.
Jika DTS adalah satu-satunya penulis ke database tujuan, Anda dapat menggunakan Data Management (DMS) untuk melakukan operasi DDL Online pada tabel sumber. Lihat Lakukan operasi bebas lock.
Jika alat selain DTS juga menulis ke tujuan, operasi DDL Online DMS dapat menyebabkan kehilangan data di tujuan.
RENAME TABLE risk
Jika Anda memilih tabel (bukan database) sebagai objek sinkronisasi dan mengganti namanya selama sinkronisasi, data untuk tabel tersebut berhenti disinkronkan. Untuk menghindarinya, pilih seluruh database sebagai objek sinkronisasi dan pastikan nama database sebelum dan sesudah penggantian nama termasuk dalam objek yang dipilih.
Kinerja sinkronisasi data penuh
DTS menggunakan resource baca dan tulis pada sumber dan tujuan selama sinkronisasi data penuh awal. Jadwalkan sinkronisasi selama jam sepi untuk meminimalkan beban. Operasi INSERT konkuren selama sinkronisasi penuh menyebabkan fragmentasi tabel di tujuan, sehingga ruang tabel tujuan akan lebih besar daripada sumber setelah sinkronisasi penuh selesai.
Perilaku kunci asing
Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari sumber ke tujuan.
Selama sinkronisasi data penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing pada tingkat session. Operasi pembaruan atau penghapusan kaskade pada sumber selama sinkronisasi dapat menyebabkan inkonsistensi data.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan |
Topologi sinkronisasi yang didukung
Untuk detailnya, lihat Topologi sinkronisasi.
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi kaskade satu arah
Sinkronisasi kaskade dua arah
Sinkronisasi satu arah banyak-ke-satu
Sinkronisasi dua arah satu-ke-satu
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 |
Konfigurasi tugas sinkronisasi data
Langkah 1: Buka halaman Tugas Sinkronisasi Data
Login ke Konsol Data Management (DMS).
Pada bilah navigasi atas, klik DTS.
Pada panel navigasi kiri, pilih DTS (DTS) > Data Synchronization.
Opsi navigasi bervariasi tergantung mode Konsol DMS Anda. Lihat Mode simple atau Sesuaikan tata letak dan gaya Konsol DMS. Anda juga dapat langsung menuju halaman Tugas Sinkronisasi Data.
Langkah 2: Buat tugas
Pilih wilayah tempat instans sinkronisasi akan berada.
Di Konsol DTS baru, pilih wilayah pada bilah navigasi atas.
Klik Create Task.
(Opsional) Jika tombol Back to Previous Version tidak ditampilkan, klik New Configuration Page di pojok kanan atas. Gunakan halaman konfigurasi baru saat tersedia — beberapa parameter berbeda antar versi.
Langkah 3: Konfigurasi database sumber dan tujuan
Setelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di bagian atas halaman sebelum melanjutkan. Mengabaikan hal ini dapat menyebabkan kegagalan tugas atau inkonsistensi data.
Parameter database sumber:
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama tugas. DTS memberikan nama default. Tentukan nama deskriptif agar lebih mudah diidentifikasi. Nama tidak harus unik. |
| Select a DMS database instance | Pilih instans terdaftar yang sudah ada, atau konfigurasi database sumber secara manual. Untuk mendaftarkan database Alibaba Cloud, lihat Daftarkan instans database Alibaba Cloud. Untuk mendaftarkan database yang dikelola sendiri, lihat Daftarkan database yang dihosting di layanan cloud pihak ketiga atau database yang dikelola sendiri. Di Konsol DTS, gunakan halaman Database Connections. |
| Database Type | Pilih PolarDB for MySQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat kluster PolarDB for MySQL sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No (contoh ini menggunakan Akun Alibaba Cloud yang sama). |
| PolarDB Cluster ID | ID kluster PolarDB for MySQL sumber. |
| Database Account | Akun dengan izin baca pada objek yang akan disinkronkan. |
| Database Password | Kata sandi untuk akun database. |
| Encryption | Apakah koneksi ke kluster sumber dienkripsi. Lihat Konfigurasi enkripsi SSL. |
Parameter database tujuan:
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans terdaftar yang sudah ada, atau konfigurasi database tujuan secara manual. Lihat tautan pendaftaran di atas. |
| Database Type | Pilih MySQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for MySQL tujuan berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No. |
| RDS Instance ID | ID instans ApsaraDB RDS for MySQL tujuan. |
| Database Account | Akun dengan izin baca dan tulis pada database tujuan. |
| Database Password | Kata sandi untuk akun database. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted, aktifkan enkripsi SSL pada instans RDS terlebih dahulu. Lihat Konfigurasi fitur enkripsi SSL. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR-nya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan database yang dihosting di ECS. Untuk database yang dihosting di beberapa instans ECS, tambahkan secara manual blok CIDR ke aturan grup keamanan setiap instans ECS. Untuk database yang dikelola sendiri di pusat data atau penyedia cloud pihak ketiga, tambahkan secara manual blok CIDR DTS. Lihat Tambahkan blok CIDR server DTS.
Menambahkan blok CIDR DTS ke daftar putih atau grup keamanan membuka potensi risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti memperkuat kredensial akun, membatasi port yang terbuka, mengotentikasi panggilan API, mengaudit aturan daftar putih secara berkala, dan menghubungkan melalui Express Connect, VPN Gateway, atau Smart Access Gateway jika memungkinkan.
Langkah 5: Pilih objek untuk disinkronkan
Pada halaman Select Objects, konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. Sinkronisasi data penuh menetapkan garis dasar yang menjadi dasar sinkronisasi inkremental — pilih ketiganya bersamaan untuk pengaturan sinkronisasi lengkap. Incremental Data Synchronization dipilih secara default. |
| Method to Migrate Triggers in Source Database | Tersedia hanya jika Schema Synchronization dipilih. Pilih cara menangani trigger. Lihat Sinkronkan atau migrasikan trigger dari database sumber. |
| Synchronization Topology | Pilih One-way Synchronization. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors (default): gagal dalam pemeriksaan awal jika tabel dengan nama identik ada di sumber dan tujuan. Gunakan pemetaan nama objek untuk menyelesaikan konflik. Lihat Pemetaan nama objek. Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel identik. Selama sinkronisasi penuh, catatan yang ada di tujuan dipertahankan jika nilai kunci primary atau unique cocok. Selama sinkronisasi inkremental, catatan yang cocok ditimpa. Jika skema berbeda, sinkronisasi mungkin sebagian gagal. |
| Capitalization of Object Names in Destination Instance | Default adalah DTS default policy. Sesuaikan jika tujuan memerlukan kapitalisasi tertentu. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Source Objects | Pilih objek dan klik ikon panah untuk memindahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau database. Memilih tabel atau kolom mengecualikan view, trigger, dan prosedur tersimpan. |
| Selected Objects | Klik kanan objek untuk mengganti namanya atau mengatur kondisi filter tingkat baris. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Lihat Pemetaan nama objek dan Atur kondisi filter. Mengganti nama objek dapat mengganggu sinkronisasi objek dependen. |
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | DTS menggunakan kluster bersama secara default. Untuk stabilitas tugas yang lebih tinggi, beli kluster khusus. Lihat Apa itu kluster khusus DTS. |
| Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database. | Mengontrol cara DTS menangani tabel temporary dari alat DDL Online (DMS atau gh-ost). Yes: menyinkronkan data tabel temporary (dapat memperpanjang waktu sinkronisasi). No, Adapt to DMS Online DDL: melewati tabel temporary; hanya DDL akhir yang disinkronkan (tabel tujuan mungkin terkunci sementara). No, Adapt to gh-ost: melewati tabel shadow gh-ost; hanya DDL akhir yang disinkronkan (tabel tujuan mungkin terkunci sementara). Jangan gunakan pt-online-schema-change — hal ini menyebabkan tugas gagal. |
| Retry Time for Failed Connections | Berapa lama DTS mencoba kembali koneksi yang gagal setelah tugas dimulai. Rentang: 10–1.440 menit. Default: 720. Kami menyarankan Anda mengatur parameter ini lebih dari 30. Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu retry terpendek yang berlaku. Waktu retry diperhitungkan dalam penagihan. |
| Retry Time for Other Issues | Berapa lama DTS mencoba kembali operasi DDL atau DML yang gagal. Rentang: 1–1.440 menit. Default: 10. Kami menyarankan Anda mengatur parameter ini lebih dari 10. Harus kurang dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Membatasi permintaan per detik (QPS) ke sumber, RPS, dan kecepatan migrasi (MB/detik) selama sinkronisasi penuh untuk mengurangi beban. Hanya terlihat jika Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Synchronization | Membatasi RPS dan kecepatan sinkronisasi (MB/detik) selama sinkronisasi inkremental. |
| Environment Tag | Tag opsional untuk mengklasifikasikan instans DTS. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Yes: DTS tidak menulis SQL heartbeat ke sumber (metrik latensi tugas mungkin terpengaruh). No: DTS menulis SQL heartbeat ke sumber (dapat memengaruhi backup fisik dan kloning sumber). |
| Configure ETL | Yes: mengaktifkan pemrosesan ekstrak, transformasi, dan muat (ETL). Masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL. No: menonaktifkan ETL. |
| Monitoring and Alerting | Yes: konfigurasikan ambang batas peringatan dan pengaturan notifikasi untuk menerima peringatan saat tugas gagal atau terjadi latensi sinkronisasi. Lihat Konfigurasi pemantauan dan peringatan. No: tanpa peringatan. |
Langkah 7: Konfigurasi verifikasi data (opsional)
Klik Next: Verification Configurations untuk mengatur verifikasi data. Lihat Konfigurasi verifikasi data.
Langkah 8: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter OpenAPI untuk tugas ini, arahkan kursor ke tombol dan klik Preview OpenAPI parameters.
Sebelum pemeriksaan awal dijalankan, verifikasi hal berikut untuk mengurangi risiko kegagalan:
Binary logging diaktifkan dan
loose_polar_log_bindiatur keon.Akun sumber memiliki izin baca; akun tujuan memiliki izin baca dan tulis.
Retensi log biner memenuhi minimum yang tercantum di bagian Prasyarat.
Tabel sumber memiliki PRIMARY KEY atau kendala UNIQUE.
Tugas hanya dimulai setelah pemeriksaan awal berhasil.
Jika suatu item gagal, klik View Details untuk meninjau penyebabnya, perbaiki masalah, lalu klik Precheck Again.
Jika peringatan dapat diabaikan dengan aman, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Langkah 9: Beli instans sinkronisasi
Tunggu hingga tingkat keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: bayar di muka untuk jangka waktu tetap. Durasi yang tersedia: 1–9 bulan, atau 1, 2, 3, atau 5 tahun. Biaya per bulan lebih rendah untuk jangka waktu lebih lama. Pay-as-you-go: ditagih per jam. Lepaskan instans saat tidak lagi diperlukan untuk menghentikan biaya. |
| Resource Group Settings | Kelompok sumber daya untuk instans. Default: default resource group. Lihat Apa itu Resource Management? |
| Instance Class | Menentukan kinerja dan kecepatan sinkronisasi. Pilih berdasarkan volume data dan persyaratan latensi Anda. Lihat Kelas instans instansi sinkronisasi data. |
| Subscription Duration | Hanya tersedia untuk penagihan subscription. Atur jangka waktu dan jumlah instans. |
Baca dan terima Syarat Layanan Data Transmission Service (Pay-as-you-go), lalu klik Buy and Start.
Tugas sinkronisasi muncul di daftar tugas. Pantau perkembangannya dari sana.
DTS secara berkala mengeksekusi CREATE DATABASE IF NOT EXISTS \test\`` pada database sumber untuk memajukan posisi log biner. Ini adalah perilaku yang diharapkan.