Gunakan Data Transmission Service (DTS) untuk mereplikasi data secara berkelanjutan dari database MySQL yang di-hosting pada instance ECS ke instance AnalyticDB for PostgreSQL. DTS menangani baik sinkronisasi data penuh awal maupun sinkronisasi inkremental berkelanjutan, sehingga data analitik Anda tetap mutakhir tanpa intervensi manual.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Database MySQL (versi 5.1, 5.5, 5.6, 5.7, atau 8.0) yang berjalan pada instance ECS
Binary logging diaktifkan pada database MySQL sumber, dan akun database dibuat khusus untuk tugas sinkronisasi. Untuk petunjuk penyiapan, lihat Create an account for a self-managed MySQL database and configure binary logging. Akun database tersebut memerlukan izin berikut: SELECT (pada objek yang akan disinkronkan), REPLICATION CLIENT, REPLICATION SLAVE, dan SHOW VIEW.
Kunci primer pada semua tabel yang akan Anda sinkronkan
Instance AnalyticDB for PostgreSQL. Untuk petunjuk penyiapan, lihat Create an AnalyticDB for PostgreSQL instance.
Batasan
Objek yang didukung: Hanya tabel. Anda tidak dapat menyinkronkan database atau skema secara langsung.
Operasi SQL yang didukung:
DML: INSERT, UPDATE, DELETE
DDL: ADD COLUMN saja. CREATE TABLE tidak didukung. Untuk menyinkronkan tabel baru yang ditambahkan setelah tugas dimulai, tambahkan secara manual ke objek yang dipilih. Lihat Add an object to a data synchronization task.
Tipe data yang tidak didukung: BIT, VARBIT, GEOMETRY, ARRAY, UUID, TSQUERY, TSVECTOR, TXID_SNAPSHOT, POINT. DTS tidak menyinkronkan kolom dengan tipe data tersebut.
Indeks awalan: Indeks awalan tidak disinkronkan. Jika tabel sumber Anda menggunakan indeks awalan, data mungkin gagal disinkronkan.
Alat DDL Online: Jangan gunakan gh-ost atau pt-online-schema-change selama tugas sinkronisasi aktif. Jika tidak, sinkronisasi data mungkin gagal.
Topologi sinkronisasi yang didukung
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi satu arah banyak-ke-satu
Pemetaan istilah
MySQL dan AnalyticDB for PostgreSQL menggunakan terminologi berbeda untuk konsep yang sama:
| MySQL | AnalyticDB for PostgreSQL |
|---|---|
| Database | Schema |
| Table | Table |
Menyiapkan tugas sinkronisasi
Langkah 1: Membeli instance DTS
Purchase a DTS instance. Pada halaman pembelian, atur opsi berikut:
Source Instance: MySQL
Target Instance: AnalyticDB for PostgreSQL
Synchronization Topology: One-Way Synchronization
Langkah 2: Mengonfigurasi saluran sinkronisasi
Masuk ke DTS console.
Pada panel navigasi sebelah kiri, klik Data Synchronization.
Di bagian atas halaman Synchronization Tasks, pilih wilayah tempat instance tujuan berada.
Temukan instance DTS dan klik Configure Synchronization Channel di kolom Actions.
Konfigurasikan instance sumber dan tujuan.

Rincian Instans Sumber
Parameter Deskripsi Synchronization task name DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar mudah diidentifikasi. Nama ini tidak perlu unik. Instance type Pilih User-Created Database in ECS Instance. Instance region Wilayah sumber yang Anda pilih pada halaman pembelian. Hanya-baca. Instance ID Pilih instance ECS yang meng-host database MySQL yang dikelola sendiri. Database type Atur ke MySQL. Hanya-baca. Port number Masukkan port layanan MySQL. Default: 3306. Database account Masukkan akun MySQL untuk tugas sinkronisasi. Akun ini memerlukan izin yang tercantum dalam Prasyarat. Database password Masukkan kata sandi untuk akun database. Detail instance tujuan
Parameter Deskripsi Instance type Atur ke AnalyticDB for PostgreSQL. Hanya-baca. Instance region Wilayah tujuan yang Anda pilih pada halaman pembelian. Hanya-baca. Instance ID Pilih instance AnalyticDB for PostgreSQL tujuan. Database name Masukkan nama database tujuan. Database account Masukkan initial account dari instance AnalyticDB for PostgreSQL, atau akun dengan izin RDS_SUPERUSER. Untuk informasi lebih lanjut, lihat Create a database account dan Manage users and permissions. Database password Masukkan kata sandi untuk akun database tujuan. Klik Set Whitelist and Next.
DTS secara otomatis menambahkan blok CIDR server DTS ke aturan inbound instance ECS dan daftar putih AnalyticDB for PostgreSQL, sehingga DTS dapat mengakses kedua instance tersebut.
Langkah 3: Memilih objek dan kebijakan sinkronisasi

Konfigurasikan pengaturan berikut:
| Pengaturan | Opsi dan deskripsi |
|---|---|
| Initial synchronization | Pilih kedua opsi Initial Schema Synchronization dan Initial Full Data Synchronization. DTS menyalin skema dan data ke instance tujuan sebelum memulai sinkronisasi inkremental. |
| Processing mode of conflicting tables | Clear Target Table: Mengosongkan data tabel tujuan sebelum sinkronisasi data penuh awal. Gunakan opsi ini jika Anda ingin memulai dari awal atau setelah menjalankan uji coba. Ignore: Menambahkan data ke catatan yang sudah ada. Gunakan opsi ini saat menggabungkan data dari beberapa tabel sumber ke satu tabel tujuan. |
| Synchronization type | Pilih operasi DML yang akan disinkronkan: Insert, Update, Delete, AlterTable. |
| Objects to synchronize | Pada bagian Available, pilih tabel yang akan disinkronkan dan pindahkan ke bagian Selected menggunakan ikon |
| Replicate temporary tables when DMS performs DDL operations | Berlaku jika Anda menggunakan DMS untuk menjalankan operasi DDL Online pada sumber. Yes: Menyinkronkan tabel temporary yang dihasilkan oleh operasi DDL Online. Operasi DDL besar dapat menyebabkan keterlambatan sinkronisasi. No: Melewatkan tabel temporary dan hanya menyinkronkan data DDL asli. Hal ini dapat mengunci tabel tujuan. |
| Retry time for failed connections | Default: 720 menit (12 jam). DTS mencoba kembali koneksi dalam jendela waktu ini. Jika koneksi dipulihkan tepat waktu, tugas sinkronisasi akan dilanjutkan secara otomatis. Atur nilai ini berdasarkan kebutuhan ketersediaan Anda. Anda tetap dikenai biaya untuk instance DTS selama jendela percobaan ulang. |
Langkah 4: Mengatur kolom kunci primer dan kolom distribusi (hanya untuk sinkronisasi skema awal)
Langkah ini muncul hanya jika Anda memilih Initial Schema Synchronization. Tentukan kolom kunci primer dan kolom distribusi untuk setiap tabel yang disinkronkan ke AnalyticDB for PostgreSQL.

Untuk informasi lebih lanjut, lihat Define constraints dan Define table distribution.
Langkah 5: Menjalankan Pemeriksaan Awal dan memulai sinkronisasi
Klik Precheck di pojok kanan bawah. DTS memvalidasi konfigurasi sebelum memulai tugas. Jika ada pemeriksaan yang gagal, klik ikon
di samping item yang gagal untuk melihat detailnya. Perbaiki masalah tersebut dan jalankan kembali Pemeriksaan Awal. Jika item yang gagal tidak kritis untuk kasus penggunaan Anda, klik Ignore untuk melewatinya, lalu jalankan kembali Pemeriksaan Awal.Saat muncul pesan The precheck is passed, tutup dialog tersebut. Tugas sinkronisasi akan dimulai secara otomatis.
Tunggu hingga sinkronisasi awal selesai. Status tugas berubah menjadi Synchronizing begitu sinkronisasi inkremental dimulai. Pantau status tugas di halaman Synchronization Tasks.

Pertimbangan kinerja
DTS membaca dari sumber dan menulis ke tujuan secara konkuren selama sinkronisasi data penuh awal. Pada database dengan beban tinggi, spesifikasi rendah, atau volume data besar, hal ini dapat memengaruhi kinerja. Untuk meminimalkan dampak, jalankan sinkronisasi pada jam sepi ketika utilisasi CPU baik di sumber maupun tujuan berada di bawah 30%.