Layanan Transmisi Data (DTS) menyinkronkan data dari instans ApsaraDB RDS for MySQL ke kluster PolarDB for MySQL, mendukung sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental.
Database sumber yang didukung
DTS mendukung jenis database MySQL berikut sebagai sumber sinkronisasi. Dokumen ini menggunakan instans ApsaraDB RDS for MySQL sebagai contoh. Prosedur yang sama berlaku untuk jenis sumber lainnya.
-
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 bahwa:
-
Instans ApsaraDB RDS for MySQL telah dibuat. Untuk informasi selengkapnya, lihat Buat instans ApsaraDB RDS for MySQL.
-
Kluster PolarDB for MySQL telah dibuat. Untuk informasi selengkapnya, lihat Beli kluster Edisi Perusahaan dan Beli kluster langganan.
-
Kluster PolarDB for MySQL memiliki ruang penyimpanan tersedia lebih besar daripada ukuran total data di instans ApsaraDB RDS for MySQL.
-
Akun database sumber memiliki izin REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT.
-
Akun database tujuan memiliki izin baca dan tulis pada database tujuan.
Persyaratan log biner
Database sumber harus memenuhi persyaratan log biner berikut. Untuk ApsaraDB RDS for MySQL, binary logging diaktifkan secara default.
| Parameter | Nilai yang Diperlukan | Catatan |
|---|---|---|
binlog_row_image |
full |
Diperlukan untuk semua jenis sumber. Jika tidak diatur ke full, Pemeriksaan Awal gagal dan tugas tidak dapat dimulai. Untuk ApsaraDB RDS for MySQL, lihat Ubah parameter instans. |
binlog_format |
row |
Hanya diperlukan untuk database MySQL yang dikelola sendiri. |
log_slave_updates |
ON |
Hanya diperlukan untuk database MySQL yang dikelola sendiri yang dideploy dalam kluster dual-primary. Memungkinkan DTS memperoleh semua log biner. Untuk informasi selengkapnya, lihat Buat akun untuk database MySQL yang dikelola sendiri dan konfigurasikan binary logging. |
| Retensi log biner | Minimal 7 hari | Jika DTS tidak dapat memperoleh log biner yang diperlukan, tugas mungkin gagal. Dalam kondisi luar biasa, ketidakkonsistenan atau kehilangan data dapat terjadi. Jika tidak, Service Level Agreement (SLA) DTS mungkin tidak terjamin. Untuk informasi selengkapnya, lihat Kelola file log biner. |
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Untuk informasi selengkapnya, lihat Ikhtisar penagihan. |
Metode penagihan dan kelas instans dikonfigurasi pada langkah terakhir proses pembuatan tugas. DTS mendukung metode penagihan langganan dan pay-as-you-go.
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
Untuk informasi selengkapnya, lihat Topologi sinkronisasi.
Operasi SQL yang didukung
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, dan DELETE |
| DDL | ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, dan TRUNCATE TABLE |
RENAME TABLE dapat menyebabkan ketidakkonsistenan data antara database sumber dan tujuan. Jika sebuah tabel dipilih sebagai objek sinkronisasi dan diubah namanya selama sinkronisasi, tabel yang telah diubah namanya tidak akan disinkronkan. Untuk mencegah hal ini, pilih database yang berisi tabel tersebut sebagai objek sinkronisasi. Pastikan bahwa baik database asli maupun database yang telah diubah namanya termasuk dalam objek sinkronisasi.
Batasan
Batasan database sumber
-
Tabel yang akan disinkronkan harus memiliki PRIMARY KEY atau kendala UNIQUE, dan semua field harus unik. Jika tidak, database tujuan mungkin berisi catatan data duplikat.
-
Jika tabel dipilih sebagai objek sinkronisasi dan perlu dimodifikasi (misalnya mengganti nama tabel atau kolom), satu tugas mendukung hingga 1.000 tabel. Untuk menyinkronkan lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau sinkronkan seluruh database.
Batasan database tujuan
-
Versi database tujuan harus sama dengan atau lebih baru daripada versi database sumber. Jika tidak, masalah kompatibilitas dapat terjadi.
Batasan DDL dan skema
-
Jangan gunakan pt-online-schema-change untuk melakukan operasi DDL Online pada tabel yang dipilih untuk sinkronisasi. Jika dilakukan, tugas akan gagal. Gunakan DMS untuk melakukan operasi DDL Online sebagai gantinya. Untuk informasi selengkapnya, lihat Lakukan operasi DDL tanpa lock.
-
Jika pernyataan DDL gagal di database tujuan, tugas sinkronisasi tetap berlanjut. Lihat pernyataan DDL yang gagal di log tugas. Untuk informasi selengkapnya, lihat Lihat log tugas.
-
DTS tidak dapat mengonversi data dari tipe DATETIME ke tipe VARCHAR.
Batasan kinerja dan data
-
Jadwalkan sinkronisasi selama jam sepi. Selama sinkronisasi data penuh awal, DTS menggunakan resource baca dan tulis pada kedua database sumber dan tujuan, yang dapat meningkatkan beban pada server database.
-
Sinkronisasi data penuh menyebabkan fragmentasi pada tabel tujuan melalui operasi INSERT konkuren. Setelah sinkronisasi data penuh, ruang tabel tujuan lebih besar daripada ruang tabel sumber.
-
Throttling tidak dapat diaktifkan untuk migrasi data penuh.
-
Menulis data dari sumber lain ke database tujuan selama sinkronisasi menyebabkan ketidakkonsistenan data. Misalnya, menjalankan pernyataan DDL Online melalui DMS sambil sumber lain menulis ke tujuan dapat menyebabkan kehilangan data.
Perilaku kunci asing
-
Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari database sumber ke database tujuan.
-
Selama sinkronisasi data penuh dan sinkronisasi data inkremental, DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing di tingkat session. Melakukan operasi update dan delete kaskade pada database sumber selama sinkronisasi dapat menyebabkan ketidakkonsistenan data.
Batasan EncDB
-
Jika fitur EncDB diaktifkan pada instans ApsaraDB RDS for MySQL sumber, sinkronisasi data penuh tidak dapat dilakukan.
Batasan MySQL yang dikelola sendiri
Batasan berikut hanya berlaku ketika sumber adalah database MySQL yang dikelola sendiri:
-
Alih bencana primary/secondary: Melakukan alih bencana primary/secondary pada database sumber saat tugas sedang berjalan menyebabkan tugas gagal.
-
Latensi sinkronisasi: DTS menghitung latensi sinkronisasi berdasarkan timestamp data terbaru yang telah disinkronkan di database tujuan dan timestamp saat ini di database sumber. Jika tidak ada operasi DML yang dilakukan pada database sumber dalam waktu lama, latensi mungkin tidak akurat. Untuk memperbarui latensi, lakukan operasi DML pada database sumber. Jika seluruh database dipilih sebagai objek sinkronisasi, buat tabel heartbeat yang diperbarui atau menerima data setiap detik.
-
Posisi log biner: DTS menjalankan
CREATE DATABASE IF NOT EXISTS 'test'di database sumber secara berkala untuk memajukan posisi file log biner.
Batasan ApsaraDB RDS
-
Instans ApsaraDB RDS for MySQL yang tidak mencatat log transaksi tidak dapat digunakan sebagai database sumber. Misalnya, instans ApsaraDB RDS for MySQL 5.6 read-only tidak dapat digunakan.
Buat tugas sinkronisasi
-
Buka halaman Tugas Sinkronisasi Data di Konsol DTS baru.
Atau, login ke Konsol DMS. Di bilah navigasi atas, arahkan pointer ke DTS dan pilih DTS (DTS) > Data Synchronization.
-
Di sisi kanan Data Synchronization Tasks, pilih wilayah tempat instansi sinkronisasi data berada.
CatatanJika Anda menggunakan Konsol DTS baru, Anda harus memilih wilayah tempat instansi sinkronisasi data berada di bilah navigasi atas.
-
Di bilah navigasi atas, pilih wilayah untuk tugas sinkronisasi data.
-
Klik Create Task dan konfigurasikan database sumber dan tujuan seperti yang dijelaskan dalam tabel berikut.
PeringatanSetelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di bagian atas halaman. Mengabaikannya dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.
Database sumber
Parameter Deskripsi Task Name DTS secara otomatis memberikan nama tugas. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama unik tidak diperlukan. Database Type Pilih MySQL. Connection Type Pilih Alibaba Cloud Instance. Instance Region Pilih wilayah instans ApsaraDB RDS for MySQL sumber. Cross-account Pilih No. RDS Instance ID Pilih ID instans ApsaraDB RDS for MySQL sumber. Instans sumber dan tujuan dapat sama atau berbeda. DTS mendukung sinkronisasi antara dua instans atau dalam satu instans. Database Account Masukkan akun database instans sumber. Akun harus memiliki izin REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT. Database Password Masukkan password akun database. Connection Method Pilih Non-encrypted atau SSL-encrypted. Jika SSL-encrypted dipilih, aktifkan enkripsi SSL untuk instans ApsaraDB RDS for MySQL sebelum mengonfigurasi tugas. Untuk informasi selengkapnya, lihat Konfigurasikan fitur enkripsi SSL. Database tujuan
Parameter Deskripsi Database Type Pilih PolarDB for MySQL. Connection Type Pilih Alibaba Cloud Instance. Instance Region Pilih wilayah kluster PolarDB for MySQL tujuan. PolarDB Cluster ID Pilih ID kluster PolarDB for MySQL tujuan. Database Account Masukkan akun database kluster tujuan. Akun harus memiliki izin baca dan tulis pada database tujuan. Database Password Masukkan password akun database. -
Klik Test Connectivity and Proceed. Jika database sumber atau tujuan adalah instans database Alibaba Cloud, seperti instans ApsaraDB RDS for MySQL atau ApsaraDB for MongoDB, DTS secara otomatis menambahkan blok CIDR server DTS ke daftar putih instans tersebut. Jika database sumber atau tujuan adalah database yang dikelola sendiri yang dihosting di instans ECS, DTS secara otomatis menambahkan blok CIDR server DTS ke aturan grup keamanan instans ECS, dan Anda harus memastikan bahwa instans ECS dapat mengakses database. Jika database dideploy di beberapa instans ECS, tambahkan secara manual blok CIDR server DTS ke aturan grup keamanan setiap instans ECS. Jika database sumber atau tujuan adalah database yang dikelola sendiri di pusat data atau disediakan oleh penyedia layanan cloud pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Untuk informasi selengkapnya, lihat Tambahkan blok CIDR server DTS.
PeringatanMenambahkan blok CIDR server DTS ke daftar putih database, instans, atau aturan grup keamanan ECS dapat menimbulkan risiko keamanan. Sebelum menggunakan DTS, ambil tindakan pencegahan seperti memperkuat kredensial, membatasi port yang terbuka, mengotentikasi panggilan API, meninjau secara berkala daftar putih dan aturan grup keamanan untuk menghapus blok CIDR yang tidak sah, atau menghubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
-
Konfigurasikan objek sinkronisasi dan pengaturan lanjutan.
Pengaturan dasar
Parameter Deskripsi Synchronization Types Incremental Data Synchronization dipilih secara default. Pilih juga Schema Synchronization dan Full Data Synchronization. Setelah Pemeriksaan Awal, DTS menyinkronkan data historis objek yang dipilih dari database sumber ke kluster tujuan sebagai dasar untuk sinkronisasi inkremental berikutnya. Processing Mode of Conflicting Tables Precheck and Report Errors: Memeriksa apakah database tujuan berisi tabel dengan nama yang sama seperti di sumber. Jika terdapat nama tabel yang identik, Pemeriksaan Awal akan mengembalikan error dan task tidak dapat dimulai. Jika nama yang identik ada tetapi tabel tujuan tidak dapat dihapus atau diganti namanya, gunakan fitur pemetaan nama objek untuk mengganti nama tabel yang disinkronkan ke tujuan. Untuk informasi selengkapnya, lihat Map object names. Ignore Errors and Proceed: Melewati pemeriksaan awal untuk nama tabel yang identik. PeringatanJika opsi ini dipilih, ketidakkonsistenan data dapat terjadi dan bisnis Anda mungkin menghadapi risiko potensial: (1) Jika database sumber dan tujuan memiliki skema yang sama serta sebuah catatan data memiliki nilai kunci primary atau kunci unik yang sama, selama sinkronisasi data penuh DTS akan melewati catatan tersebut (mempertahankan catatan tujuan yang sudah ada), sedangkan selama sinkronisasi data inkremental DTS akan menimpa catatan tujuan yang sudah ada. (2) Jika database sumber dan tujuan memiliki skema yang berbeda, inisialisasi data mungkin gagal, hanya beberapa kolom yang disinkronkan, atau task bisa gagal. Harap berhati-hati.
Select Objects Pilih objek dari bagian Source Objects dan pindahkan ke bagian Selected Objects. Kolom, tabel, atau database dapat dipilih. Memilih tabel atau kolom tidak akan menyinkronkan objek lain seperti view, trigger, dan prosedur tersimpan. Rename Databases and Tables Untuk mengganti nama satu objek, klik kanan objek tersebut di bagian Selected Objects. Untuk informasi selengkapnya, lihat Map the name of a single object. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas bagian Selected Objects. Untuk informasi selengkapnya, lihat Map multiple object names at a time. Filter data Tentukan kondisi WHERE untuk memfilter data. Untuk informasi selengkapnya, lihat Set filter conditions. SQL operations to synchronize Klik kanan objek di bagian Selected Objects untuk memilih operasi DML dan DDL yang akan disinkronkan. Untuk informasi selengkapnya, lihat Supported SQL operations. Pengaturan lanjutan
Parameter Deskripsi Monitoring and Alerting Konfigurasikan peringatan untuk tugas. Jika tugas gagal atau latensi sinkronisasi melebihi ambang batas, kontak peringatan menerima notifikasi. Pilih No untuk melewati peringatan, atau Yes untuk mengonfigurasi ambang batas peringatan dan pengaturan notifikasi. Untuk informasi selengkapnya, lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS. Capitalization of Object Names in Destination Instance Atur kapitalisasi nama database, tabel, dan kolom di instans tujuan. Default adalah DTS default policy. Untuk informasi selengkapnya, lihat Tentukan kapitalisasi nama objek di instans tujuan. Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database Tentukan apakah akan menyinkronkan tabel temporary yang dihasilkan oleh operasi DDL Online yang dilakukan melalui DMS atau tool gh-ost. Jangan gunakan pt-online-schema-change; jika tidak, tugas DTS akan gagal. Opsi: Yes — menyinkronkan data tabel temporary (dapat memperpanjang durasi tugas untuk set data besar). No, Adapt to DMS Online DDL — hanya menyinkronkan operasi DDL asli yang dilakukan melalui DMS. Tabel di database tujuan mungkin terkunci. No, Adapt to gh-ost — hanya menyinkronkan operasi DDL asli yang dilakukan melalui gh-ost. Menggunakan ekspresi reguler default atau kustom untuk memfilter tabel shadow dan tabel yang tidak diperlukan. Tabel di database tujuan mungkin terkunci. Retry Time for Failed Connection Atur durasi coba ulang untuk koneksi gagal setelah tugas dimulai. Nilai valid: 10 hingga 1.440 menit. Default: 720 menit. Atur nilai ini lebih besar dari 30. Jika DTS terhubung kembali dalam durasi yang ditentukan, tugas dilanjutkan. Jika tidak, tugas gagal. Jika durasi coba ulang berbeda diatur untuk beberapa tugas yang berbagi database sumber atau tujuan yang sama, durasi terpendek yang berlaku. DTS membebankan biaya untuk instans selama percobaan ulang. Tentukan durasi coba ulang berdasarkan kebutuhan bisnis Anda. Rilis instans DTS sesegera mungkin setelah instans sumber dan tujuan dirilis. -
Simpan pengaturan tugas dan jalankan Pemeriksaan Awal.
-
Untuk melihat parameter API untuk tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
-
Klik Next: Save Task Settings and Precheck.
DTS melakukan Pemeriksaan Awal sebelum memulai tugas. Tugas hanya dapat dimulai setelah lulus Pemeriksaan Awal. – Jika Pemeriksaan Awal gagal, klik View Details di sebelah item yang gagal. Atasi masalah tersebut dan jalankan Pemeriksaan Awal lagi. – Jika item Pemeriksaan Awal menghasilkan peringatan yang tidak dapat diabaikan, klik View Details, atasi masalah tersebut, dan jalankan Pemeriksaan Awal lagi. – Jika item Pemeriksaan Awal menghasilkan peringatan yang dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore di kotak dialog, dan klik OK. Kemudian klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data atau menimbulkan risiko bisnis.
-
-
Tunggu hingga success rate mencapai 100%, lalu klik Next: Purchase Instance.
-
Konfigurasikan instans sinkronisasi.
Parameter Deskripsi Billing Method Subscription: Bayar di muka untuk periode tetap. Lebih hemat biaya untuk penggunaan jangka panjang, dengan harga lebih rendah untuk periode lebih lama. Pay-as-you-go: Ditagih per jam tanpa komitmen. Cocok untuk penggunaan jangka pendek. Rilis instans saat tidak lagi diperlukan untuk menghentikan biaya. Resource Group Settings Pilih kelompok sumber daya untuk instans. Default: default resource group. Untuk informasi selengkapnya, lihat Apa itu Resource Management? Instance Class Pilih spesifikasi sinkronisasi berdasarkan kebutuhan kinerja. Kecepatan sinkronisasi bervariasi berdasarkan spesifikasi. Untuk informasi selengkapnya, lihat Kelas instans untuk instansi sinkronisasi data. Subscription Duration Hanya tersedia untuk metode penagihan Subscription. Opsi: 1 hingga 9 bulan, atau 1, 2, 3, atau 5 tahun. -
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
-
Klik Buy and Start untuk memulai tugas sinkronisasi data. Lacak kemajuan tugas di daftar tugas.