Gunakan Data Transmission Service (DTS) untuk menyiapkan pipeline sinkronisasi data langsung dari database self-managed IBM Db2 for Linux, UNIX, dan Windows (LUW) ke instans ApsaraDB RDS for MySQL. DTS menjalankan sinkronisasi data penuh diikuti oleh sinkronisasi inkremental berkelanjutan menggunakan teknologi replikasi change data capture (CDC) milik Db2.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ApsaraDB RDS for MySQL. Lihat Buat instans ApsaraDB RDS for MySQL.
Ruang penyimpanan bebas yang cukup pada instans tujuan untuk menampung seluruh data dari database sumber Db2 for LUW.
Akun database dengan izin yang diperlukan (lihat Siapkan akun database).
Pengarsipan log diaktifkan pada database Db2 for LUW (lihat Aktifkan pengarsipan log).
Cara kerja sinkronisasi
Sinkronisasi berjalan dalam hingga tiga fase:
| Fase | Deskripsi | Penagihan |
|---|---|---|
| Sinkronisasi skema | Menyalin skema tabel, termasuk kunci asing, dari sumber ke tujuan | Gratis |
| Sinkronisasi data penuh | Membaca seluruh data yang ada dari sumber dan menuliskannya ke tujuan | Gratis |
| Sinkronisasi data inkremental | Mengikuti log transaksi Db2 menggunakan CDC untuk mereplikasi operasi INSERT, UPDATE, dan DELETE secara near real time | Dikenai biaya. Lihat Ikhtisar penagihan |
Topologi sinkronisasi yang didukung:
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi satu arah kaskade
Sinkronisasi satu arah banyak-ke-satu
Untuk daftar lengkapnya, lihat Topologi sinkronisasi.
Batasan
Batasan umum (semua jenis sinkronisasi)
| Batas | Detail |
|---|---|
| Memerlukan kunci primer atau unik | Tabel harus memiliki PRIMARY KEY atau kendala UNIK, dengan semua bidang bernilai unik. Tanpa ini, tujuan mungkin berisi catatan duplikat. |
| Bandwidth outbound | Server yang menghosting Db2 for LUW harus memiliki bandwidth outbound yang mencukupi. Bandwidth yang tidak mencukupi mengurangi kecepatan sinkronisasi. |
| Batasan penggantian nama tabel | Saat menyinkronkan tabel sebagai objek dan mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 5.000 tabel. Tugas yang melebihi batas ini akan mengembalikan error permintaan. Bagi pekerjaan tersebut ke beberapa tugas, atau lakukan sinkronisasi di tingkat database. |
| Penjadwalan jam sepi | Sinkronisasi data penuh membaca dari sumber dan menulis ke tujuan secara bersamaan, sehingga meningkatkan beban server. Jadwalkan sinkronisasi awal selama jam sepi. |
| Ukuran ruang tabel tujuan | Operasi INSERT bersamaan selama sinkronisasi data penuh menyebabkan fragmentasi pada tabel tujuan. Ruang tabel tujuan akan lebih besar daripada sumber setelah sinkronisasi penuh. |
| Hanya tulis melalui DTS | Menulis ke tujuan dari sumber lain selama sinkronisasi dapat menyebabkan inkonsistensi data. Setelah sinkronisasi selesai, gunakan Data Management (DMS) untuk operasi DDL online. Lihat Lakukan operasi DDL tanpa lock. |
| Sensitivitas kapitalisasi nama kolom MySQL | Nama kolom MySQL tidak peka terhadap kapitalisasi. Jika database sumber memiliki kolom yang namanya hanya berbeda dalam kapitalisasi, kolom-kolom tersebut akan dipetakan ke kolom tujuan yang sama, menghasilkan hasil yang tidak diharapkan. |
| Perilaku kunci asing | DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada kunci asing di tingkat session selama sinkronisasi penuh dan inkremental. Operasi UPDATE atau DELETE kaskade pada sumber selama sinkronisasi dapat menyebabkan inkonsistensi data. |
Persyaratan retensi log
Persyaratan retensi log berbeda tergantung pada jenis sinkronisasi yang Anda pilih:
| Jenis sinkronisasi yang dipilih | Retensi log minimum |
|---|---|
| Hanya sinkronisasi data inkremental | Lebih dari 24 jam |
| Sinkronisasi data penuh + sinkronisasi data inkremental | Minimal 7 hari |
Setelah sinkronisasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam. Retensi log yang tidak mencukupi dapat mencegah DTS mengambil log, menyebabkan kegagalan tugas atau kehilangan data, dan tidak dicakup oleh SLA DTS.
Pengarsipan log harus diaktifkan sebelum Anda memulai. Jika pengarsipan log dimatikan, pemeriksaan awal gagal dan tugas tidak dapat dimulai.
Batasan sinkronisasi inkremental (CDC)
Batasan berikut hanya berlaku saat sinkronisasi data inkremental sedang berjalan:
| Batasan | Detail |
|---|---|
| Batasan teknologi CDC | DTS menggunakan teknologi replikasi CDC milik Db2 untuk sinkronisasi inkremental, yang memiliki batasan sendiri. Lihat Batasan data umum untuk SQL Replication. |
| Alih bencana primer/sekunder | Jika database sumber melakukan alih bencana primer/sekunder saat tugas sedang berjalan, tugas akan gagal. |
| Akurasi latensi sinkronisasi | DTS menghitung latensi berdasarkan stempel waktu catatan terakhir yang disinkronkan dibandingkan dengan stempel waktu sumber saat ini. Jika tidak ada operasi DML yang dijalankan pada sumber dalam periode panjang, nilai latensi yang ditampilkan mungkin tidak akurat. Jalankan operasi DML pada sumber untuk memperbarui nilai latensi. Jika Anda memilih seluruh database sebagai objek sinkronisasi, buatlah tabel heartbeat yang menerima pembaruan setiap detik. |
| Hanya operasi DML yang disinkronkan | DTS menyinkronkan INSERT, UPDATE, dan DELETE. Kegagalan operasi DDL tidak menghentikan tugas. Periksa pernyataan DDL yang gagal di log tugas. |
Persiapan
Siapkan akun database
Buat akun dengan izin berikut sebelum mengonfigurasi tugas DTS:
| Database | Izin yang diperlukan | Referensi |
|---|---|---|
| Db2 for LUW | Administrator database (otoritas DBADM) | Membuat ID grup dan pengguna untuk instalasi database Db2 (Linux dan UNIX) |
| ApsaraDB RDS for MySQL | Izin baca dan tulis pada database tujuan | Buat akun dan Ubah izin akun |
Aktifkan pengarsipan log
Pengarsipan log diperlukan untuk sinkronisasi data inkremental. Konfigurasikan parameter LOGARCHMETH1 atau LOGARCHMETH2 pada database Db2 for LUW:
Buat 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.
Tata letak konsol dapat berbeda. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS untuk detailnya. Anda juga dapat langsung menuju halaman Tugas Sinkronisasi Data di konsol DTS baru.
Langkah 2: Pilih wilayah
Di sisi kanan Tugas Sinkronisasi Data, pilih wilayah tempat instansi sinkronisasi data berada.
Di konsol DTS baru, pilih wilayah di bilah navigasi atas.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task. Di wizard Buat Tugas Sinkronisasi Data, konfigurasikan parameter berikut:
Task Name
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar mudah diidentifikasi. Nama tugas tidak perlu unik. |
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans database DMS yang sudah ada untuk mengisi otomatis parameter koneksi, atau biarkan kosong dan konfigurasikan parameter secara manual. |
| Database Type | Pilih DB2 for LUW. |
| Connection Type | Pilih metode akses berdasarkan lokasi penyebaran database sumber. Contoh ini menggunakan Self-managed Database on ECS. Untuk penyiapan lingkungan jaringan database yang dikelola sendiri, lihat Ikhtisar persiapan. |
| Instance Region | Wilayah tempat database Db2 for LUW berada. |
| Replicate Data Across Alibaba Cloud Accounts | Contoh ini menggunakan No. |
| ECS Instance ID | ID instans Elastic Compute Service (ECS) yang menghosting database sumber Db2 for LUW. |
| Port Number | Port layanan database sumber Db2 for LUW. Default: 50000. |
| Database Name | Nama database sumber Db2 for LUW. |
| Database Account | Akun Db2 for LUW. Lihat Siapkan akun database untuk izin yang diperlukan. |
| Database Password | Password untuk akun database. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans database DMS yang sudah ada untuk mengisi otomatis parameter koneksi, atau biarkan kosong dan konfigurasikan parameter secara manual. |
| Database Type | Pilih MySQL. |
| Connection Type | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans tujuan ApsaraDB RDS for MySQL berada. |
| RDS Instance ID | ID instans tujuan ApsaraDB RDS for MySQL. |
| Database Account | Akun ApsaraDB RDS for MySQL. Lihat Siapkan akun database untuk izin yang diperlukan. |
| Database Password | Password untuk akun database. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan SSL pada instans RDS terlebih dahulu. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih atau aturan grup keamanan instans database Alibaba Cloud dan database yang dihosting di ECS. Untuk database yang dikelola sendiri di pusat data atau cloud pihak ketiga, tambahkan secara manual blok CIDR DTS ke daftar putih database. Lihat Tambahkan blok CIDR server DTS.
Menambahkan blok CIDR DTS ke daftar putih atau grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil langkah-langkah untuk melindungi lingkungan Anda—seperti memperkuat kredensial, membatasi port yang terbuka, mengaudit panggilan API, dan meninjau secara berkala aturan daftar putih dan grup keamanan. Untuk keamanan lebih tinggi, sambungkan melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Konfigurasi objek dan pengaturan lanjutan
Pengaturan dasar
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih Schema Synchronization, Sinkronisasi Data Penuh, dan Sinkronisasi Data Inkremental. Secara default, hanya Sinkronisasi Data Inkremental yang dipilih. Sinkronisasi data penuh harus selesai sebelum sinkronisasi inkremental dimulai. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: memeriksa keberadaan tabel dengan nama identik di sumber dan tujuan. Tugas gagal dalam pemeriksaan awal jika ditemukan duplikat. Untuk mengganti nama tabel yang bertabrakan, gunakan pemetaan nama objek sebelum memulai. Ignore Errors and Proceed: melewati pemeriksaan nama duplikat. Selama sinkronisasi penuh, catatan tujuan yang sudah ada dengan nilai kunci primer atau unik yang cocok tetap dipertahankan; selama sinkronisasi inkremental, catatan tersebut ditimpa. Jika skema berbeda, inisialisasi mungkin gagal atau hanya beberapa kolom yang disinkronkan. Gunakan dengan hati-hati. |
| Source Objects | Pilih objek dari Source Objects dan klik |
| Selected Objects | Untuk mengganti nama satu objek di tujuan, klik kanan objek tersebut di Selected Objects. Lihat Petakan nama satu objek. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Petakan nama beberapa objek sekaligus. Untuk memfilter baris menggunakan klausa WHERE, klik kanan objek dan tentukan kondisinya. Lihat Tentukan kondisi filter. Untuk memilih operasi SQL tertentu untuk suatu tabel, klik kanan objek dan pilih operasinya. |
Pengaturan lanjutan
| Parameter | Deskripsi |
|---|---|
| Monitoring and Alerting | Konfigurasikan peringatan untuk kegagalan tugas atau pelanggaran ambang batas latensi. Pilih No untuk melewati, atau Yes untuk mengonfigurasi ambang batas peringatan dan kontak notifikasi. Lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS. |
| Retry Time for Failed Connections | Jendela coba ulang setelah kegagalan koneksi. Nilai valid: 10–1440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam jendela tersebut, tugas dilanjutkan secara otomatis; jika tidak, tugas gagal. Saat beberapa tugas berbagi sumber atau tujuan yang sama, jendela coba ulang terpendek yang berlaku. Perhatikan bahwa Anda dikenai biaya untuk instans DTS selama masa coba ulang. |
| Configure ETL | Pilih Yes untuk menentukan aturan ekstrak, transformasi, dan muat (ETL) di editor kode. Lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data. Pilih No untuk melewati ETL. |
Langkah 6: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.
Jika pemeriksaan awal gagal:
Klik View Details di sebelah item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
Jika item peringatan dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Langkah 7: 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 periode tertentu. Lebih hemat biaya untuk tugas jangka panjang. Pay-as-you-go: ditagih per jam. Cocok untuk tugas 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 | Kelas instans menentukan kecepatan sinkronisasi. Lihat Kelas instans untuk instansi sinkronisasi data. |
| Subscription Duration | Tersedia saat Metode Penagihan adalah Subscription. Tentukan durasi langganan dan jumlah instans sinkronisasi data yang akan dibuat. Pilih 1–9 bulan, atau 1, 2, 3, atau 5 tahun. |
Langkah 8: Mulai tugas
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start. Di dialog konfirmasi, klik OK.
Tugas muncul di daftar tugas. Pantau perkembangannya di sana.
Verifikasi sinkronisasi
Setelah Status tugas berubah menjadi Completed, jalankan perintah berikut pada database tujuan untuk memastikan data telah ditulis dengan benar:
ANALYZE TABLE <table_name>;Pemeriksaan ini sangat penting setelah kejadian seperti alih bencana high-availability (HA) di database sumber, di mana data mungkin hanya ditulis ke memori dan belum dipersisten.
Langkah selanjutnya
Petakan nama objek — ganti nama objek di database tujuan
Tentukan kondisi filter — filter baris dengan kondisi WHERE
Konfigurasikan pemantauan dan peringatan — atur peringatan latensi dan kegagalan
Lihat log tugas — periksa pernyataan DDL yang gagal dan event tugas
Lakukan operasi DDL tanpa lock — jalankan DDL di tujuan setelah sinkronisasi selesai