Layanan Transmisi Data (DTS) memungkinkan Anda melakukan sinkronisasi data dari database MariaDB yang dikelola sendiri ke instans ApsaraDB RDS for MariaDB secara real time. Topik ini menjelaskan cara mengonfigurasi tugas sinkronisasi yang mencakup sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans tujuan ApsaraDB RDS for MariaDB. Untuk informasi lebih lanjut, lihat Buat instans ApsaraDB RDS for MariaDB.
Memiliki ruang penyimpanan yang cukup pada instans tujuan. Ruang yang tersedia harus melebihi ukuran total data dari database sumber.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. |
Topologi sinkronisasi yang didukung
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 detailnya, lihat Topologi sinkronisasi.
Operasi SQL yang dapat disinkronkan
| 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 diubah namanya selama proses sinkronisasi, datanya tidak akan lagi disinkronkan ke tujuan. Untuk mencegah hal ini, pilih seluruh database sebagai objek sinkronisasi, bukan tabel individual. Pastikan database sebelum dan sesudah penggantian nama termasuk dalam objek yang dipilih.
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan oleh DTS.
| Database | Izin yang diperlukan | Tujuan |
|---|---|---|
| Database MariaDB sumber yang dikelola sendiri | REPLICATION CLIENT | Memungkinkan DTS memeriksa status log biner menggunakan SHOW MASTER STATUS dan SHOW BINARY LOGS. |
| REPLICATION SLAVE | Memungkinkan DTS terhubung ke database sumber dan membaca log biner untuk sinkronisasi inkremental. | |
| SHOW VIEW | Memungkinkan DTS membaca definisi view selama sinkronisasi skema. | |
| SELECT | Memungkinkan DTS membaca data tabel selama sinkronisasi data penuh. | |
| Instans tujuan ApsaraDB RDS for MariaDB | Baca dan tulis | Memungkinkan DTS menulis data yang disinkronkan ke instans tujuan. |
Untuk petunjuk membuat akun dan memberikan izin:
Database sumber: Lihat CREATE USER dan GRANT dalam dokumentasi MariaDB.
Instans tujuan: Lihat Buat akun dan Ubah atau atur ulang izin akun.
Batasan
Selama sinkronisasi skema, DTS menyinkronkan foreign keys dari database sumber ke tujuan. Selama sinkronisasi 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 database sumber selama sinkronisasi, ketidakkonsistenan data dapat terjadi.
Batasan database sumber
| Batasan | Berlaku untuk |
|---|---|
| Tabel harus memiliki PRIMARY KEY atau kendala UNIK, dan semua field harus unik. Tanpa ini, database tujuan mungkin berisi record duplikat. | Sinkronisasi data penuh, sinkronisasi data inkremental |
| Saat menyinkronkan tabel individual (bukan seluruh database): tugas mendukung hingga 1.000 tabel. Melebihi batas ini menyebabkan error permintaan. Bagi workload ke beberapa tugas, atau sinkronkan seluruh database sebagai gantinya. | Semua jenis sinkronisasi |
Binary logging harus diaktifkan dan binlog_row_image harus diatur ke full. Jika tidak dikonfigurasi dengan benar, pemeriksaan awal gagal dan tugas tidak dapat dimulai. | Sinkronisasi data inkremental |
| Log biner harus disimpan selama minimal 7 hari. Retensi yang lebih pendek dapat menyebabkan tugas gagal atau mengakibatkan ketidakkonsistenan atau kehilangan data. SLA DTS tidak mencakup keandalan atau kinerja jika persyaratan ini tidak dipenuhi. | Sinkronisasi data inkremental |
Konfigurasi log biner yang diperlukan (tambahkan ke file konfigurasi MariaDB Anda):
log_bin = mariadb-bin
binlog_row_image = FULL| Parameter | Nilai yang diperlukan | Deskripsi |
|---|---|---|
log_bin | Jalur atau nama apa pun yang valid | Mengaktifkan binary logging. Diperlukan untuk sinkronisasi inkremental. |
binlog_row_image | FULL | Mencatat semua nilai kolom untuk setiap baris yang berubah. DTS memerlukan ini untuk replikasi yang akurat. |
Untuk informasi lebih lanjut tentang konfigurasi parameter, lihat Ubah parameter instans.
Batasan lainnya
| Batasan | Berlaku untuk |
|---|---|
| Versi database tujuan harus sama dengan atau lebih baru daripada versi sumber. Versi tujuan yang lebih lama dapat menyebabkan masalah kompatibilitas. | Semua jenis sinkronisasi |
| Lakukan sinkronisasi selama jam sepi untuk meminimalkan beban pada server database sumber dan tujuan. Selama sinkronisasi data penuh, DTS menggunakan resource baca dan tulis di kedua sisi. Untuk mengontrol beban, konfigurasikan pembatasan kecepatan di Advanced Settings (lihat langkah 6). | Sinkronisasi data penuh |
| Setelah sinkronisasi data penuh selesai, ruang tabel tujuan lebih besar daripada sumber karena fragmentasi dari operasi INSERT bersamaan. | Sinkronisasi data penuh |
Jika tabel individual (bukan seluruh database) dipilih sebagai objek sinkronisasi, jangan gunakan alat seperti pt-online-schema-change untuk operasi DDL. Gunakan Data Management (DMS) untuk operasi DDL Online sebagai gantinya. | Semua jenis sinkronisasi |
| Tulis data ke database tujuan hanya melalui DTS selama sinkronisasi. Jika Anda menggunakan alat lain untuk menulis data, jangan lakukan operasi DDL online melalui DMS — hal ini dapat menyebabkan kehilangan data. | Semua jenis sinkronisasi |
| Jika pernyataan DDL gagal dieksekusi di tujuan, tugas tetap berjalan. Lihat pernyataan DDL yang gagal di log tugas. | Semua jenis sinkronisasi |
Siapkan 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.
Operasi konsol dapat berbeda tergantung mode dan tata letak DMS Anda. Untuk informasi lebih lanjut, lihat Simple mode dan Sesuaikan tata letak dan gaya Konsol DMS. Atau, langsung buka halaman Tugas Sinkronisasi Data di Konsol DTS.
Langkah 2: Pilih wilayah
Di halaman Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi data berada.
Di Konsol DTS baru, pilih wilayah dari bilah navigasi atas.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task. Di halaman Create Task, konfigurasikan database sumber dan tujuan.
Baca Limits yang ditampilkan di halaman setelah mengonfigurasi database sumber dan tujuan. Melewatkan langkah ini dapat menyebabkan tugas gagal atau mengakibatkan ketidakkonsistenan data.
Database sumber
| Parameter | Nilai |
|---|---|
| Task Name | Nama deskriptif untuk tugas. DTS menghasilkan nama secara otomatis; Anda dapat mengubahnya. Nama tugas tidak perlu unik. |
| Database Type | Pilih MariaDB. |
| Access Method | Pilih Self-managed Database on ECS. |
| Instance Region | Wilayah tempat instans ECS berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No jika database sumber dan tujuan berada di bawah Akun Alibaba Cloud yang sama. |
| ECS Instance ID | ID instans ECS yang menjalankan database MariaDB sumber. |
| Port Number | Port layanan database MariaDB sumber. Default: 3306. |
| Database Account | Akun untuk database MariaDB sumber. Lihat Izin yang diperlukan. |
| Database Password | Password untuk akun database. |
| Encryption | Default: Non-encrypted. |
Database tujuan
| Parameter | Nilai |
|---|---|
| Database Type | Pilih MariaDB. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans tujuan ApsaraDB RDS for MariaDB berada. |
| RDS Instance ID | ID instans tujuan ApsaraDB RDS for MariaDB. |
| Database Account | Akun untuk database tujuan. Akun harus memiliki izin baca dan tulis. |
| Database Password | Password untuk akun database. |
| Encryption | Default: Non-encrypted. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan rentang IP servernya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan instans ECS. Untuk database yang dikelola sendiri yang di-deploy di beberapa instans ECS, tambahkan secara manual rentang IP server DTS ke aturan grup keamanan setiap instans. Untuk database yang di-host di pusat data atau penyedia cloud pihak ketiga, tambahkan secara manual rentang IP server DTS ke daftar putih database. Untuk informasi lebih lanjut, lihat Blok CIDR server DTS.
Menambahkan rentang IP server DTS ke daftar putih atau aturan grup keamanan menimbulkan potensi risiko keamanan. Sebelum melanjutkan, ambil langkah-langkah seperti memperkuat kredensial akun, membatasi port yang terbuka, mengotentikasi panggilan API, mengaudit aturan daftar putih secara berkala, dan menghubungkan ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Pilih objek sinkronisasi dan konfigurasi pengaturan
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. Sinkronisasi inkremental dipilih secara default. Sinkronisasi penuh menetapkan baseline data untuk sinkronisasi inkremental. |
| Method to Migrate Triggers in Source Database | Pilih cara menangani trigger dari database sumber. Konfigurasikan hanya jika trigger perlu disinkronkan. Parameter ini muncul hanya saat Schema Synchronization dipilih. Untuk informasi lebih lanjut, lihat Sinkronisasi atau migrasi trigger dari database sumber. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: memeriksa adanya tabel dengan nama identik di database sumber dan tujuan sebelum memulai tugas. Tugas hanya dimulai jika tidak ada konflik. Jika konflik ada dan tabel tidak dapat dihapus atau diganti namanya, gunakan pemetaan nama objek untuk mengganti nama tabel tujuan. Ignore Errors and Proceed: melewati pemeriksaan konflik. Jika suatu record di tujuan memiliki primary key atau unique key yang sama dengan record sumber — selama sinkronisasi penuh, record tujuan dipertahankan; selama sinkronisasi inkremental, record tujuan ditimpa. Jika skema berbeda, inisialisasi data mungkin gagal. |
| Capitalization of Object Names in Destination Instance | Default: DTS default policy. Sesuaikan jika Anda ingin tujuan sesuai dengan kapitalisasi database sumber atau tujuan. Untuk informasi lebih lanjut, lihat Tentukan kapitalisasi nama objek. |
| Source Objects | Pilih objek dari bagian Source Objects dan klik ikon panah untuk memindahkannya ke bagian Selected Objects. Pilih kolom, tabel, atau database. Jika Anda memilih tabel atau kolom, DTS tidak akan menyinkronkan view, trigger, atau prosedur tersimpan. |
| Selected Objects | Klik kanan objek untuk mengganti namanya atau memfilter data dengan kondisi WHERE. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Untuk informasi lebih lanjut, lihat Pemetaan nama objek dan Tentukan kondisi filter. Catatan: mengganti nama objek dapat menyebabkan objek dependen gagal disinkronkan. |
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings.
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas di kluster bersama. Untuk stabilitas lebih tinggi, beli dan tentukan kluster khusus. Untuk informasi lebih lanjut, lihat Apa itu kluster khusus DTS. |
| Monitoring and Alerting | Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Untuk informasi lebih lanjut, lihat Konfigurasi pemantauan dan peringatan. |
| Retry Time for Failed Connections | Rentang waktu selama DTS mencoba koneksi yang gagal. Rentang: 10–1.440 menit. Default: 720. Atur minimal 30 menit. Jika koneksi dipulihkan dalam periode ini, tugas dilanjutkan; jika tidak, tugas gagal. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, waktu retry terpendek yang berlaku. DTS menagih instans selama masa retry. |
| Retry Time for Other Issues | Rentang waktu selama DTS mencoba ulang operasi DDL atau DML yang gagal. Rentang: 1–1.440 menit. Default: 10. Atur minimal 10 menit. Nilai ini harus kurang dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Batasi beban baca/tulis pada database selama sinkronisasi penuh dengan mengonfigurasi Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Parameter ini muncul hanya saat Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Migration | Batasi beban selama sinkronisasi inkremental dengan mengonfigurasi RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). |
| Environment Tag | Berikan label lingkungan pada tugas. Opsional. |
| Configure ETL | Pilih Yes untuk mengaktifkan pemrosesan ekstrak, transformasi, muat (ETL). Masukkan pernyataan pemrosesan data di editor kode. Untuk informasi lebih lanjut, lihat Apa itu ETL? dan Konfigurasi ETL. |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter OpenAPI untuk konfigurasi tugas ini, arahkan kursor ke tombol tersebut dan klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai.
Jika item pemeriksaan gagal, klik View Details untuk melihat penyebabnya, perbaiki masalah, dan jalankan ulang pemeriksaan awal.
Jika item pemeriksaan menghasilkan peringatan:
Jika peringatan tidak dapat diabaikan, perbaiki masalah dan jalankan ulang pemeriksaan awal.
Jika peringatan dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore di dialog View Details, konfirmasi dengan OK, dan klik Precheck Again.
Mengabaikan item peringatan dapat menyebabkan ketidakkonsistenan data atau mengekspos bisnis Anda terhadap risiko.
Langkah 8: Beli instans sinkronisasi
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman buy, konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: 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 diperlukan lagi untuk menghentikan tagihan. |
| Resource Group Settings | Kelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Resource Management? |
| Instance Class | Kelas instans menentukan kecepatan sinkronisasi. Untuk informasi lebih lanjut, lihat Kelas instans untuk instansi sinkronisasi data. |
| Subscription Duration | Tersedia hanya untuk metode penagihan Subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun. |
Langkah 9: Mulai tugas
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. Pantau perkembangannya dari sana.