Layanan Transmisi Data (DTS) memungkinkan Anda menyinkronkan data dari instans ApsaraDB RDS for MySQL ke instans PolarDB-X 2.0 secara real time—termasuk skema, data penuh, dan perubahan inkremental berkelanjutan dalam satu Tugas.
Jenis sumber yang didukung
Topik ini menggunakan instans ApsaraDB RDS for MySQL sebagai contoh sumber. Prosedur yang sama berlaku untuk jenis sumber MySQL berikut:
Instans ApsaraDB RDS for MySQL
Database MySQL yang dikelola sendiri yang di-hosting pada Elastic Compute Service (ECS)
Database MySQL yang dikelola sendiri yang terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway
Database MySQL yang dikelola sendiri yang terhubung melalui Database Gateway
Database MySQL yang dikelola sendiri yang terhubung melalui Cloud Enterprise Network (CEN)
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ApsaraDB RDS for MySQL. Untuk informasi lebih lanjut, lihat Buat instans ApsaraDB RDS for MySQL.
Instans PolarDB-X 2.0 dengan ruang penyimpanan yang tersedia lebih besar daripada total ukuran data instans RDS MySQL sumber.
Akun database sumber dengan izin REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT.
Akun database tujuan dengan izin baca dan tulis.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. 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 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 |
Batasan
Persyaratan database sumber
Tabel harus memiliki PRIMARY KEY atau kendala UNIK dengan semua field unik. Tanpa kendala ini, database tujuan mungkin berisi catatan duplikat.
Saat melakukan sinkronisasi tingkat tabel dengan penggantian nama objek (seperti mengganti nama tabel atau kolom), satu Tugas mendukung hingga 1.000 tabel. Tugas yang melebihi batas ini akan mengembalikan error permintaan. Untuk menyinkronkan lebih dari 1.000 tabel, bagi pekerjaan tersebut ke beberapa Tugas atau sinkronkan seluruh database.
Persyaratan log biner:
Untuk ApsaraDB RDS for MySQL: Binary logging diaktifkan secara default. Verifikasi bahwa
binlog_row_imagediatur kefull—DTS akan mengembalikan error selama Pemeriksaan Awal jika pengaturan ini tidak ada. Lihat Ubah parameter instans. Simpan log biner minimal selama 3 hari (disarankan 7 hari).Untuk MySQL yang dikelola sendiri: Aktifkan binary logging, atur
binlog_formatkerow, dan aturbinlog_row_imagekefull. Simpan log biner minimal selama 7 hari. Untuk kluster dual-primary, atur jugalog_slave_updateskeONagar DTS dapat menangkap semua log biner. Lihat Buat akun untuk database MySQL yang dikelola sendiri dan konfigurasikan binary logging.
PentingJika log biner dipurge sebelum DTS membacanya, Tugas sinkronisasi akan gagal. Dalam kasus luar biasa, ketidakkonsistenan atau kehilangan data dapat terjadi. Retensi log biner yang tidak mencukupi tidak dicakup oleh Perjanjian Tingkat Layanan (SLA) DTS.
Jangan menjalankan pernyataan DDL yang mengubah skema database atau tabel selama sinkronisasi skema atau sinkronisasi data penuh. Melakukan hal tersebut menyebabkan Tugas gagal.
Data yang dihasilkan oleh operasi perubahan log biner—seperti data yang dipulihkan dari backup fisik atau data dari operasi kaskade—tidak disinkronkan ke tujuan. Jika diperlukan, hapus dan tambahkan kembali tabel yang terpengaruh dari objek sinkronisasi tanpa mengganggu bisnis Anda. Lihat Ubah objek yang akan disinkronkan.
Jika sumber adalah MySQL 8.0.23 atau versi lebih baru dan datanya mencakup kolom tak terlihat (invisible columns), DTS tidak dapat membaca kolom tersebut dan terjadi kehilangan data.
Untuk membuat kolom menjadi terlihat, jalankan:
ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;Tabel tanpa primary key eksplisit akan menghasilkan primary key tak terlihat secara otomatis. Jadikan primary key ini terlihat sebelum sinkronisasi. Lihat Generated Invisible Primary Keys.
Batasan lainnya
DTS tidak menyinkronkan tipe data berikut: BIT, VARBIT, GEOMETRY, ARRAY, UUID, TSQUERY, TSVECTOR, dan TXID_SNAPSHOT.
Indeks awalan tidak dapat disinkronkan. Jika database sumber berisi indeks awalan, Tugas mungkin gagal.
Jalankan Tugas sinkronisasi selama jam sepi. Sinkronisasi data penuh awal menggunakan resource baca dan tulis pada database sumber dan tujuan, yang meningkatkan beban.
Setelah sinkronisasi data penuh awal, ruang tabel tujuan lebih besar daripada sumber karena INSERT konkuren menyebabkan fragmentasi tabel.
Saat melakukan sinkronisasi tingkat tabel, jangan gunakan pt-online-schema-change untuk operasi DDL Online. Gunakan Data Management (DMS) sebagai gantinya. Lihat Lakukan operasi DDL tanpa lock.
Menulis data dari sumber lain ke tujuan selama sinkronisasi menyebabkan ketidakkonsistenan data.
Jika fitur EncDB diaktifkan pada instans RDS MySQL sumber, sinkronisasi data penuh tidak dapat dilakukan.
Catatan Instans RDS MySQL dengan Enkripsi Data Transparan (TDE) yang diaktifkan mendukung sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental.Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari sumber ke tujuan. Selama sinkronisasi data penuh dan sinkronisasi data inkremental, DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda melakukan operasi update atau delete kaskade pada sumber selama sinkronisasi, ketidakkonsistenan data dapat terjadi.
Jika Tugas DTS gagal, dukungan teknis DTS akan memulihkannya dalam waktu 8 jam. Selama pemulihan, Tugas mungkin dimulai ulang dan parameter Tugas (bukan parameter database) mungkin dimodifikasi.
Kasus khusus
Sumber MySQL yang dikelola sendiri: Alih bencana primary/secondary selama Tugas sinkronisasi aktif menyebabkan Tugas gagal. Jika tidak ada operasi DML yang terjadi pada sumber dalam waktu lama, pembacaan latensi sinkronisasi mungkin tidak akurat—jalankan operasi DML untuk memperbarui latensi. Jika Anda menyinkronkan seluruh database, buat tabel heartbeat yang menerima write setiap detik untuk mempertahankan pelacakan latensi yang akurat.
Sumber ApsaraDB RDS for MySQL: Instans RDS MySQL 5.6 read-only yang tidak mencatat log transaksi tidak dapat digunakan sebagai sumber.
Untuk kedua jenis sumber, DTS secara berkala mengeksekusi
CREATE DATABASE IF NOT EXISTS 'test'pada database sumber untuk memajukan posisi file log biner.
Buat Tugas sinkronisasi
Langkah 1: Buka konsol DTS
Buka halaman Sinkronisasi Data di konsol DTS.
Langkah 2: Pilih wilayah
Di pojok kiri atas, pilih wilayah tempat instans sinkronisasi data akan berada.
Langkah 3: Konfigurasikan database sumber dan tujuan
Klik Create Task. Di wizard Create Data Synchronization Task, konfigurasikan database sumber dan tujuan menggunakan parameter berikut.
Setelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan Tugas gagal atau mengakibatkan ketidakkonsistenan data.
Database sumber
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk Tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar Tugas mudah diidentifikasi. Nama tidak perlu unik. |
| Database Type | Pilih MySQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for MySQL sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk sinkronisasi dalam akun yang sama. |
| RDS Instance ID | ID instans ApsaraDB RDS for MySQL sumber. |
| Database Account | Akun database instans sumber. Akun harus memiliki izin REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT. |
| Database Password | Password untuk akun database. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted sesuai kebutuhan Anda. Untuk menggunakan enkripsi SSL, aktifkan SSL pada instans RDS MySQL sebelum mengonfigurasi Tugas ini. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| 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 instans tujuan. Akun harus memiliki izin baca dan tulis. |
| Database Password | Password untuk akun database. |
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 database yang di-hosting di ECS. Untuk database yang dikelola sendiri di pusat data atau yang disediakan oleh penyedia layanan cloud pihak ketiga, tambahkan secara manual Blok CIDR server DTS ke daftar putih database Anda. Lihat Blok CIDR server DTS.
Menambahkan Blok CIDR DTS ke daftar putih atau grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti memperkuat kredensial, membatasi port yang terbuka, melakukan audit rutin terhadap aturan daftar putih, dan menghapus Blok CIDR yang tidak sah. Pertimbangkan untuk terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway untuk keamanan yang lebih tinggi.
Langkah 5: Konfigurasikan objek dan pengaturan lanjutan
Pengaturan dasar
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Incremental Data Synchronization dipilih secara default. Pilih juga Schema Synchronization dan Full Data Synchronization untuk menyinkronkan data historis sebelum memulai sinkronisasi inkremental. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: Memeriksa apakah tujuan memiliki tabel dengan nama yang sama dengan sumber. Jika nama identik ada, error dikembalikan dan Tugas tidak dapat dimulai. Gunakan pemetaan nama objek untuk mengganti nama tabel tujuan jika diperlukan. Ignore Errors and Proceed: Melewati pemeriksaan awal untuk nama tabel identik. Selama sinkronisasi data penuh, catatan dengan nilai kunci primer atau kunci unik yang cocok dipertahankan di tujuan (tidak ditimpa). Selama sinkronisasi data inkremental, catatan yang cocok di tujuan ditimpa. Jika skema berbeda, inisialisasi data mungkin gagal atau hanya beberapa kolom yang disinkronkan. |
| Source Objects | Pilih objek dari bagian Source Objects dan klik ikon panah kanan untuk menambahkannya ke Selected Objects. Pilih kolom, tabel, atau database. Memilih tabel atau kolom mengecualikan view, trigger, dan prosedur tersimpan. |
| Selected Objects | Untuk mengganti nama satu objek, klik kanan objek tersebut dan gunakan fitur pemetaan nama objek. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Untuk memfilter operasi SQL tertentu untuk tabel atau database, klik kanan objek dan pilih operasi yang akan disinkronkan. Untuk memfilter baris, klik kanan objek dan tentukan kondisi filter SQL. Mengganti nama objek dapat menyebabkan objek dependen gagal disinkronkan. |
Pengaturan lanjutan
| Parameter | Deskripsi |
|---|---|
| Monitoring and Alerting | Pilih Yes untuk menerima notifikasi ketika Tugas gagal atau latensi sinkronisasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi sesuai kebutuhan. Lihat Konfigurasikan pemantauan dan peringatan. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default adalah Kebijakan default DTS. Lihat Tentukan kapitalisasi nama objek. |
| Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database | Dalam skenario ini, DTS tidak menyinkronkan operasi DDL. Anda harus mengatur parameter ini ke No, Adapt to DMS Online DDL atau No, Adapt to gh-ost. No, Adapt to DMS Online DDL melewati data tabel temporary dan hanya menyinkronkan DDL asli—tabel tujuan mungkin terkunci selama proses ini. No, Adapt to gh-ost melewati data tabel temporary dan hanya menyinkronkan DDL asli, dengan pemfilteran opsional berbasis regex untuk tabel shadow gh-ost—tabel tujuan mungkin terkunci selama proses ini. Yes menyinkronkan data tabel temporary yang dihasilkan oleh operasi DDL online tetapi dapat memperpanjang durasi Tugas secara signifikan. |
| Retry Time for Failed Connections | Rentang waktu di mana DTS mencoba koneksi yang gagal lagi. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika beberapa Tugas berbagi database sumber atau tujuan yang sama, waktu retry terpendek yang berlaku. DTS mengenakan biaya untuk instans selama periode retry. |
Langkah 6: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
DTS melakukan pemeriksaan awal sebelum Tugas dapat dimulai. Jika pemeriksaan awal gagal:
Klik View Details di sebelah setiap item yang gagal, selesaikan masalahnya, lalu jalankan pemeriksaan awal lagi.
Jika item peringatan dapat diabaikan, klik Confirm Alert Details, lalu Ignore, klik OK, dan klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 7: Beli instans sinkronisasi
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman buy, konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: Bayar di muka untuk jangka waktu tetap—lebih hemat biaya untuk penggunaan jangka panjang. Durasi subscription dapat 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun. 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. Lihat Apa itu Resource Management? |
| Instance Class | DTS menawarkan beberapa kelas instans dengan kecepatan sinkronisasi berbeda. Pilih berdasarkan volume data dan persyaratan latensi Anda. Lihat Kelas instans instansi sinkronisasi data. |
Langkah 8: Mulai Tugas
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. DTS menyinkronkan data historis dari sumber ke tujuan, lalu beralih ke sinkronisasi inkremental secara otomatis.