Gunakan Data Transmission Service (DTS) untuk menyinkronkan data secara real time dari instans ApsaraDB RDS for MariaDB ke instans ApsaraDB RDS for PostgreSQL. DTS mendukung sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental untuk jalur ini.
Prasyarat
Sebelum memulai, pastikan bahwa:
Instans ApsaraDB RDS for PostgreSQL tujuan telah dibuat. Untuk informasi lebih lanjut, lihat Buat instans ApsaraDB RDS for PostgreSQL.
Ruang penyimpanan yang tersedia pada instans tujuan lebih besar daripada ukuran total data pada instans 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 satu arah banyak-ke-satu
Operasi SQL yang dapat disinkronkan
DTS hanya mendukung sinkronisasi operasi DML: INSERT, UPDATE, dan DELETE.
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan oleh DTS sebelum membuat tugas.
| Database | Izin yang diperlukan |
|---|---|
| ApsaraDB RDS for MariaDB | SELECT |
| ApsaraDB RDS for PostgreSQL | CREATE dan USAGE pada objek yang akan disinkronkan, serta izin owner pada skema |
Untuk petunjuknya, lihat Buat akun pada instans MariaDB dan Ubah atau atur ulang izin akun untuk MariaDB. Untuk PostgreSQL, lihat Buat akun pada instans PostgreSQL dan Berikan otorisasi kepada akun layanan instans RDS PostgreSQL.
Batasan
Database sumber
Tabel yang akan disinkronkan harus memiliki kendala PRIMARY KEY atau UNIQUE, dengan semua field bernilai unik. Jika tidak, catatan duplikat mungkin muncul di database tujuan.
Jika Anda memilih tabel (bukan seluruh database) dan perlu mengganti nama tabel atau kolom di tujuan, satu tugas dapat menyinkronkan hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau sinkronkan seluruh database sebagai gantinya.
Pencatatan log biner (binary logging) diaktifkan secara default pada ApsaraDB RDS for MariaDB. Pengaturan log biner berikut diperlukan:
Parameter Nilai yang diperlukan Catatan binlog_row_imagefullHarus diatur sebelum memulai tugas. Jika tidak diatur ke full, Pemeriksaan Awal gagal. Lihat Ubah parameter.Periode retensi log biner Minimal 24 jam (hanya untuk sinkronisasi inkremental) atau minimal 7 hari (untuk sinkronisasi penuh + inkremental) Setelah sinkronisasi data penuh selesai, Anda dapat mengatur periode retensi menjadi lebih dari 24 jam. Retensi yang tidak mencukupi dapat menyebabkan tugas gagal atau mengakibatkan inkonsistensi data atau kehilangan data. Periode retensi yang tidak memenuhi persyaratan ini berada di luar perjanjian tingkat layanan (SLA) DTS.
Batasan lainnya
Versi database tujuan harus sama dengan atau lebih baru daripada versi database sumber. Versi tujuan yang lebih lama dapat menyebabkan masalah kompatibilitas.
Jalankan tugas selama jam sepi. Selama sinkronisasi data penuh awal, DTS menggunakan sumber daya baca dan tulis pada kedua database, yang dapat meningkatkan beban database.
Setelah sinkronisasi data penuh, ruang tabel (tablespace) database tujuan lebih besar daripada database sumber karena fragmentasi dari operasi INSERT bersamaan.
Selama sinkronisasi skema, DTS menyinkronkan kunci asing (foreign keys) dari database sumber ke database tujuan.
Selama sinkronisasi data penuh dan sinkronisasi data inkremental, DTS menonaktifkan sementara pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat sesi. Jika operasi kaskade UPDATE atau DELETE dilakukan pada database sumber selama sinkronisasi, inkonsistensi data dapat terjadi.
Jika Anda memilih tabel (bukan seluruh database), jangan gunakan alat seperti pt-online-schema-change untuk operasi DDL Online selama sinkronisasi. Gunakan Data Management (DMS) sebagai gantinya. Untuk informasi lebih lanjut, lihat Lakukan operasi DDL tanpa lock.
Tulis data ke database tujuan hanya melalui DTS selama sinkronisasi. Jika alat lain menulis ke database tujuan secara bersamaan, jangan gunakan DMS untuk operasi DDL Online, karena hal ini dapat menyebabkan kehilangan data.
Jika field TIMESTAMP memiliki nilai
0di database sumber, DTS mengonversinya menjadinulldi database tujuan.
Batasan untuk sumber MariaDB yang dikelola sendiri
Batasan ini hanya berlaku jika sumber adalah database MariaDB yang dikelola sendiri, bukan instans ApsaraDB RDS for MariaDB.
Jika terjadi alih bencana (switchover) primer/sekunder pada database sumber saat tugas sedang berjalan, tugas akan gagal.
DTS menghitung latensi sinkronisasi berdasarkan timestamp catatan terakhir yang disinkronkan di tujuan dan timestamp saat ini di sumber. Jika tidak ada operasi DML yang dilakukan pada sumber dalam periode yang lama, latensi yang dilaporkan mungkin tidak akurat. Untuk memperbarui latensi, lakukan operasi DML pada sumber. Jika Anda menyinkronkan seluruh database, buat tabel heartbeat — DTS memperbaruinya setiap detik.
DTS menjalankan secara berkala
CREATE DATABASE IF NOT EXISTS \test\`` pada sumber untuk memajukan posisi file log biner.
Buat tugas sinkronisasi data
Alur kerja keseluruhan adalah:
Konfigurasikan database sumber dan tujuan.
Uji konektivitas dan izinkan DTS mengakses kedua database.
Pilih objek dan konfigurasikan jenis sinkronisasi.
Konfigurasikan pengaturan lanjutan dan jalankan Pemeriksaan Awal.
Beli instans sinkronisasi dan mulai tugas.
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.
Langkah-langkah dapat berbeda tergantung pada mode Konsol DMS. Untuk informasi lebih lanjut, 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: Konfigurasikan database sumber dan tujuan
Di sisi kanan Tugas Sinkronisasi Data, pilih wilayah tempat instans sinkronisasi akan berada.
CatatanJika Anda menggunakan Konsol DTS baru, pilih wilayah di bilah navigasi atas.
Klik Create Task. Di wizard Create Task, konfigurasikan parameter di bawah ini.
Database sumber
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama tugas. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. |
| Database Type | Pilih MariaDB. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for MariaDB sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk sinkronisasi dalam akun yang sama. |
| Instance ID | ID instans ApsaraDB RDS for MariaDB sumber. |
| Database Account | Akun database instans sumber. |
| Database Password | Kata sandi untuk akun database sumber. |
| Encryption | Pilih Non-encrypted. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Database Type | Pilih PostgreSQL. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for PostgreSQL tujuan berada. |
| Instance ID | ID instans ApsaraDB RDS for PostgreSQL tujuan. |
| Database Name | Nama database tujuan. |
| Database Account | Akun database instans tujuan. Akun ini harus memiliki izin owner pada skema. |
| Database Password | Kata sandi untuk akun database tujuan. |
Langkah 3: Uji konektivitas
Klik Test Connectivity and Proceed.
Jika database sumber atau tujuan adalah instans database Alibaba Cloud, DTS secara otomatis menambahkan blok CIDR server-nya ke daftar putih instans tersebut. Jika database sumber atau tujuan adalah database yang dikelola sendiri yang di-host pada instans Elastic Compute Service (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 tersebut. Untuk database yang dikelola sendiri di pusat data atau di-host oleh penyedia cloud pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR server DTS.
Menambahkan blok CIDR DTS ke daftar putih database atau aturan grup keamanan membawa risiko keamanan. Sebelum melanjutkan, ambil langkah pencegahan seperti memperkuat kredensial akun, membatasi port yang terbuka, dan melakukan audit entri daftar putih secara berkala. Atau, hubungkan DTS ke database melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 4: Pilih objek dan jenis sinkronisasi
Konfigurasikan parameter di bawah ini.
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Secara default, Incremental Data Synchronization dipilih. Pilih juga Schema Synchronization dan Full Data Synchronization. DTS pertama-tama menyinkronkan data historis, yang menjadi garis dasar untuk sinkronisasi inkremental. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: Memeriksa keberadaan tabel dengan nama identik di sumber dan tujuan. Jika ada nama tabel yang identik, Pemeriksaan Awal gagal dan tugas tidak dapat dimulai. Untuk menyelesaikan konflik nama tanpa menghapus tabel tujuan, gunakan fitur pemetaan nama objek. Untuk informasi lebih lanjut, lihat Pemetaan nama objek. Ignore Errors and Proceed: Melewatkan Pemeriksaan Awal untuk nama tabel identik. Jika skema cocok dan suatu catatan memiliki kunci primer yang sama dengan catatan yang sudah ada di tujuan, DTS melewatkan catatan tersebut selama sinkronisasi data penuh (mempertahankan catatan yang ada) dan menimpanya selama sinkronisasi inkremental. Jika skema berbeda, beberapa kolom mungkin gagal diinisialisasi atau sinkronisasi dapat gagal. Gunakan dengan hati-hati. |
| Source Objects | Pilih objek dari bagian Source Objects dan klik |
| Selected Objects | Untuk mengganti nama satu objek, klik kanan objek tersebut di bagian Selected Objects. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Untuk informasi lebih lanjut, lihat Pemetaan nama objek. |
Langkah 5: Konfigurasikan pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan parameter di bawah ini.
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke kluster bersama. Untuk meningkatkan stabilitas tugas, beli kluster khusus. Untuk informasi lebih lanjut, lihat Apa itu kluster khusus DTS. |
| Retry Time for Failed Connections | Durasi waktu DTS mencoba kembali setelah kegagalan koneksi. Nilai yang valid: 10–1.440 menit. Default: 720 menit. Atur nilai ini lebih besar dari 30. Jika DTS terhubung kembali dalam waktu yang ditentukan, tugas dilanjutkan; jika tidak, tugas gagal. Catatan Saat beberapa tugas berbagi database sumber atau tujuan yang sama, waktu retry terpendek yang berlaku. DTS mengenakan biaya untuk instans selama masa retry. |
| Retry Time for Other Issues | Durasi waktu DTS mencoba kembali setelah kegagalan DDL atau DML. Nilai yang valid: 1–1.440 menit. Default: 10 menit. Atur nilai ini lebih besar dari 10. Nilai ini harus lebih kecil daripada nilai Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Selama sinkronisasi data penuh, DTS menggunakan sumber daya baca dan tulis pada kedua database. Untuk mengurangi beban pada tujuan, konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Parameter ini hanya tersedia jika Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Synchronization | Untuk mengurangi beban selama sinkronisasi inkremental, konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). |
| Environment Tag | Tag opsional untuk mengidentifikasi instans DTS berdasarkan lingkungan (misalnya, produksi atau uji coba). |
| Configure ETL | Apakah akan mengaktifkan fitur ekstrak, transformasi, muat (ETL). Pilih Yes untuk memasukkan pernyataan pemrosesan data di editor kode. Pilih No untuk melewati. Untuk informasi lebih lanjut, lihat Apa itu ETL? dan Konfigurasikan ETL dalam tugas sinkronisasi data. |
Langkah 6: Simpan pengaturan dan jalankan Pemeriksaan Awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi 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 ada item yang gagal:
Klik View Details di samping item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
Jika suatu item memicu peringatan yang dapat diabaikan dengan aman, klik Confirm Alert Details, lalu klik Ignore di kotak dialog View Details, dan konfirmasi. Kemudian klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Langkah 7: Beli instans dan mulai tugas
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 periode tetap. Lebih hemat biaya untuk penggunaan jangka panjang. Opsi durasi subscription: 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 tagihan. Resource Group Settings Kelompok sumber daya untuk instans sinkronisasi. Default-nya adalah kelompok sumber daya default. Untuk informasi lebih lanjut, lihat Apa itu Resource Management? Instance Class DTS menyediakan kelas instans dengan kecepatan sinkronisasi berbeda. Pilih kelas berdasarkan beban kerja Anda. Untuk informasi lebih lanjut, lihat Kelas instans untuk instansi sinkronisasi data. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start. Di kotak dialog konfirmasi, klik OK.
Tugas muncul di daftar tugas. Pantau perkembangannya di sana.