Jika Anda perlu menjaga dua instans ApsaraDB RDS for MariaDB tetap sinkron secara berkelanjutan—untuk migrasi, pemulihan bencana, atau penskalaan baca—Data Transmission Service (DTS) menangani sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental dalam satu Tugas. Ikuti langkah-langkah berikut untuk membuat tugas sinkronisasi antara dua instans MariaDB.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans ApsaraDB RDS for MariaDB tujuan. Lihat Buat instans ApsaraDB RDS for MariaDB.
Memiliki ruang penyimpanan pada instans tujuan yang melebihi total ukuran data instans sumber.
Memiliki akun database sumber dengan izin yang tercantum di Izin yang diperlukan.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. |
Topologi sinkronisasi yang didukung
DTS mendukung topologi berikut antara instans MariaDB:
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi kaskade satu arah
Sinkronisasi satu arah banyak-ke-satu
Sinkronisasi dua arah satu-ke-satu
Untuk referensi topologi lengkap, lihat Topologi sinkronisasi.
Operasi SQL yang didukung
| Jenis operasi | Pernyataan SQL |
|---|---|
| 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 |
Operasi RENAME TABLE dapat menyebabkan ketidakkonsistenan data. Jika tabel yang disinkronkan diganti namanya selama proses sinkronisasi, DTS akan menghentikan sinkronisasi datanya. Untuk mencegah hal ini, pilih seluruh database—bukan tabel individual—sebagai objek sinkronisasi. Pastikan database yang berisi tabel tersebut termasuk dalam objek sinkronisasi baik sebelum maupun setelah penggantian nama.
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan untuk setiap instans:
| Instance | Izin yang diperlukan |
|---|---|
| ApsaraDB RDS for MariaDB sumber | Izin baca dan tulis. Lihat Buat akun dan Ubah atau atur ulang izin akun. |
| ApsaraDB RDS for MariaDB tujuan | Izin baca dan tulis |
Jika akun sumber tidak dibuat melalui Konsol ApsaraDB RDS for MariaDB, berikan izin eksplisit berikut: REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT.
Batasan
Persyaratan database sumber
Tabel yang akan disinkronkan harus memiliki PRIMARY KEY atau kendala UNIQUE, dengan semua field unik. Tanpa kendala ini, database tujuan mungkin berisi catatan duplikat.
Saat menyinkronkan tabel tertentu (bukan seluruh database) yang memerlukan penggantian nama tabel atau kolom di tujuan, satu tugas mendukung hingga 1.000 tabel. Tugas yang melebihi batas ini akan mengembalikan error permintaan. Gunakan beberapa tugas secara batch atau sinkronkan seluruh database sebagai gantinya.
Konfigurasikan parameter log biner sebagai berikut sebelum memulai tugas:
Parameter Nilai yang diperlukan Mengapa binlog_row_imagefullPencatatan log biner diaktifkan secara default pada ApsaraDB RDS for MariaDB. Jika parameter ini tidak diatur ke full, Pemeriksaan Awal gagal dan tugas tidak dapat dimulai.Periode retensi log biner — hanya sinkronisasi inkremental Minimal 24 jam Jika DTS tidak dapat memperoleh log biner, tugas gagal dan ketidakkonsistenan data atau kehilangan data dapat terjadi. SLA DTS tidak berlaku jika persyaratan periode retensi tidak dipenuhi. Periode retensi log biner — sinkronisasi penuh + inkremental Minimal 7 hari Setelah sinkronisasi data penuh selesai, periode retensi dapat dikurangi menjadi lebih dari 24 jam.
Perilaku kunci asing
Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari sumber ke tujuan.
Selama sinkronisasi data penuh dan sinkronisasi data inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing di tingkat session. Operasi pembaruan dan penghapusan kaskade pada sumber selama sinkronisasi dapat menyebabkan ketidakkonsistenan data.
Batasan lainnya
Versi database tujuan harus sama dengan atau lebih baru daripada versi database sumber. Versi tujuan yang lebih lama menyebabkan masalah kompatibilitas.
Jalankan tugas sinkronisasi selama jam sepi. Sinkronisasi data penuh awal menggunakan resource baca dan tulis pada kedua instans, yang meningkatkan beban server.
Operasi INSERT bersamaan selama sinkronisasi data penuh awal menyebabkan fragmentasi tablespace di tujuan. Setelah sinkronisasi penuh selesai, tablespace yang digunakan di tujuan lebih besar daripada di sumber.
Jangan gunakan alat seperti pt-online-schema-change untuk operasi DDL Online pada tabel yang disinkronkan. Gunakan Data Management (DMS) sebagai gantinya. Lihat Lakukan operasi DDL tanpa lock.
Hanya tulis ke database tujuan melalui DTS selama proses sinkronisasi. Menggunakan alat lain untuk menulis ke tujuan dapat menyebabkan ketidakkonsistenan data. Jika Anda harus menggunakan alat lain, jangan gunakan DMS untuk operasi DDL Online, karena hal ini dapat menyebabkan kehilangan data di tujuan.
Jika pernyataan DDL gagal di database tujuan, tugas DTS tetap berjalan. Periksa pernyataan DDL yang gagal di log tugas. Lihat Tampilkan log tugas.
Buat tugas sinkronisasi
Langkah 1: Buka halaman Tugas Sinkronisasi Data
Masuk 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. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS. Anda juga dapat langsung membuka halaman Tugas Sinkronisasi Data di Konsol DTS baru.
Langkah 2: Pilih wilayah
Di sisi kanan Tugas Sinkronisasi Data, pilih wilayah tempat instans sinkronisasi berada.
Di Konsol DTS baru, pilih wilayah di bilah navigasi atas.
Langkah 3: Konfigurasikan database sumber dan tujuan
Klik Create Task. Di wizard Buat Tugas, konfigurasikan pengaturan berikut.
Baca Limits yang ditampilkan di halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.
Pengaturan tugas:
| Parameter | Deskripsi |
|---|---|
| Task Name | DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk membantu mengidentifikasi tugas. Nama unik tidak wajib. |
Source Database
| Parameter | Nilai |
|---|---|
| Select an existing DMS database instance | Opsional. Biarkan kosong jika tidak ada instans database DMS yang terdaftar. |
| Database Type | MariaDB |
| Connection Type | Instans Alibaba Cloud |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for MariaDB sumber berada |
| Cross-account | Tidak (untuk sinkronisasi dalam satu akun) |
| Instance ID | ID instans ApsaraDB RDS for MariaDB sumber |
| Database Account | Akun dengan izin baca pada objek yang akan disinkronkan |
| Database Password | Kata sandi untuk akun database |
| Encryption | Tidak terenkripsi |
Destination Database
| Parameter | Nilai |
|---|---|
| Select an existing DMS database instance | Opsional. Biarkan kosong jika tidak ada instans database DMS yang terdaftar. |
| Database Type | MariaDB |
| Connection Type | Instans Alibaba Cloud |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for MariaDB tujuan berada |
| RDS Instance ID | ID instans ApsaraDB RDS for MariaDB tujuan |
| Database Account | Akun dengan izin baca dan tulis pada database tujuan |
| Database Password | Kata sandi untuk akun database |
| Encryption | Tidak terenkripsi |
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 instans Elastic Compute Service (ECS) yang menghosting database yang dikelola sendiri. Anda harus memastikan bahwa instans ECS dapat mengakses database. Jika database dideploy di beberapa instans ECS, Anda harus secara manual menambahkan Blok CIDR server DTS ke aturan grup keamanan setiap instans ECS. Untuk database yang dikelola sendiri di pusat data atau dihosting oleh penyedia cloud pihak ketiga, tambahkan secara manual Blok CIDR DTS ke daftar putih database. Lihat Blok CIDR server DTS.
Menambahkan Blok CIDR ke daftar putih atau aturan grup keamanan menciptakan potensi risiko keamanan. Sebelum menggunakan DTS, ambil tindakan pencegahan seperti: menggunakan kredensial yang kuat, membatasi port yang terbuka, mengotentikasi panggilan API, meninjau aturan daftar putih dan grup keamanan secara berkala, serta menghubungkan melalui Express Connect, VPN Gateway, atau Smart Access Gateway bila memungkinkan.
Langkah 5: Konfigurasikan objek sinkronisasi
Konfigurasikan parameter berikut, lalu lanjutkan ke pengaturan lanjutan.
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. Incremental data synchronization dipilih secara default. Full data synchronization menyalin data historis dari sumber ke tujuan, yang berfungsi sebagai garis dasar untuk sinkronisasi inkremental. |
| Method to Migrate Triggers in Source Database | Pilih cara menyinkronkan trigger. Opsi ini hanya ditampilkan saat Schema Synchronization dipilih. Jika tidak ada trigger yang perlu disinkronkan, abaikan parameter ini. Lihat Synchronize or migrate triggers from the source database. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors (default): gagal dalam Pemeriksaan Awal jika sumber dan tujuan memiliki tabel dengan nama yang identik. Jika tabel di tujuan tidak dapat dihapus atau diganti namanya, gunakan fitur pemetaan nama objek untuk mengganti namanya. Lihat Map object names. Ignore Errors and Proceed: melewati pemeriksaan konflik. Gunakan opsi ini dengan hati-hati—ketidakkonsistenan data dapat terjadi. Selama full data synchronization, jika catatan di tujuan memiliki kunci primary atau kunci unik yang sama dengan catatan di sumber, catatan di tujuan dipertahankan (tidak ditimpa). Selama incremental data synchronization, catatan di tujuan akan ditimpa. Jika skema berbeda, hanya beberapa kolom yang mungkin tersinkronisasi atau tugas dapat gagal. |
| Source Objects | Pilih objek dari bagian Source Objects dan klik ikon panah untuk memindahkannya ke bagian Selected Objects. Anda dapat memilih kolom, tabel, atau database. Memilih tabel atau kolom akan mengecualikan view, trigger, dan prosedur tersimpan. |
| Selected Objects | Klik kanan objek untuk mengganti namanya. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Klik kanan tabel untuk memilih operasi SQL tertentu yang akan disinkronkan atau menambahkan kondisi WHERE untuk penyaringan data. Lihat Map object names dan Use SQL conditions to filter data. Mengganti nama objek dengan fitur pemetaan nama objek dapat menyebabkan objek dependen gagal disinkronkan. |
Langkah 6: Konfigurasikan pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Monitoring and Alerting | Aktifkan peringatan untuk menerima notifikasi ketika tugas gagal atau latensi sinkronisasi melebihi ambang batas. Tetapkan ambang batas peringatan dan penerima notifikasi. Lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS. |
| Retry Time for Failed Connections | Durasi DTS mencoba ulang koneksi yang gagal setelah tugas dimulai. Rentang: 10–1.440 menit. Default: 720 menit. Atur ke nilai lebih dari 30 menit. Jika DTS berhasil terhubung kembali dalam waktu ini, tugas dilanjutkan; jika tidak, tugas gagal. DTS menagih instans selama masa percobaan ulang. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, waktu ulang coba terpendek yang berlaku. |
| Retry Time for Other Issues | Durasi DTS mencoba ulang operasi DDL atau DML yang gagal. Rentang: 1–1.440 menit. Default: 10 menit. Atur ke nilai lebih dari 10 menit. Nilai ini harus lebih kecil dari Waktu Ulang Coba untuk Koneksi Gagal. |
| Enable Throttling for Full Data Migration | Batasi permintaan per detik (QPS) ke database sumber, RPS migrasi data penuh, dan kecepatan migrasi data (MB/s) untuk mengurangi beban pada server tujuan. Hanya tersedia saat Sinkronisasi Data Penuh dipilih. |
| Enable Throttling for Incremental Data Synchronization | Batasi RPS dan kecepatan sinkronisasi data (MB/s) untuk sinkronisasi inkremental guna mengurangi beban pada server tujuan. |
| Environment Tag | Tag untuk mengidentifikasi instans DTS. Opsional. |
| Configure ETL | Aktifkan fitur ekstrak, transformasi, dan muat (ETL) untuk memproses data selama sinkronisasi. Masukkan pernyataan pemrosesan data di editor kode. Lihat Apa itu ETL? dan Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data. |
Langkah 7: Jalankan Pemeriksaan Awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter OpenAPI untuk tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan Pemeriksaan Awal sebelum tugas dapat dimulai. Jika Pemeriksaan Awal gagal, klik View Details di samping setiap item yang gagal, selesaikan masalahnya, lalu jalankan kembali Pemeriksaan Awal. Jika item peringatan dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan item peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 8: Tunggu hingga Pemeriksaan Awal lolos
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Langkah 9: Beli instans sinkronisasi
Di halaman buy, konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: bayar di muka untuk durasi tertentu; 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 penagihan. |
| Resource Group Settings | Kelompok sumber daya untuk instans sinkronisasi. Default ke kelompok sumber daya default. Lihat Apa itu Resource Management? |
| Instance Class | Menentukan kecepatan sinkronisasi. Lihat Kelas instans untuk instansi sinkronisasi data. |
| Subscription Duration | Hanya tersedia dengan metode penagihan Subscription. Opsi: 1–9 bulan, atau 1, 2, 3, atau 5 tahun. |
Langkah 10: Terima syarat layanan
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Langkah 11: Mulai tugas
Klik Buy and Start. Di kotak dialog, klik OK.
Lacak progres di daftar tugas.