Data Transmission Service (DTS) menyinkronkan data dari database Oracle yang dikelola sendiri ke kluster PolarDB for MySQL tanpa mengganggu aplikasi on-premises Anda.
Prasyarat
Sebelum memulai, pastikan Anda telah menyiapkan:
Kluster PolarDB for MySQL dengan kapasitas penyimpanan tersedia yang melebihi ukuran total database Oracle sumber. Lihat Beli kluster pay-as-you-go dan Beli kluster subscription.
Database di kluster PolarDB for MySQL tujuan untuk menerima data yang disinkronkan. Lihat Buat database.
Database Oracle sumber berjalan dalam ARCHIVELOG mode, dengan file log arsip dapat diakses dan periode retensi yang sesuai telah ditetapkan. Lihat Mengelola File Log Redo Terarsip.
Pencatatan tambahan (supplemental logging) diaktifkan pada database Oracle sumber, dengan
SUPPLEMENTAL_LOG_DATA_PKdanSUPPLEMENTAL_LOG_DATA_UIdiatur keYes. Lihat Pencatatan Tambahan.Pemahaman terhadap kemampuan dan keterbatasan DTS untuk sumber Oracle. Advanced Database & Application Migration (ADAM) tersedia untuk evaluasi database guna membantu merencanakan migrasi Anda. Lihat Persiapkan database Oracle dan Ikhtisar.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan |
Operasi SQL yang didukung
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | CREATE TABLE (fungsi dalam pernyataan tidak didukung); ALTER TABLE, ADD COLUMN, DROP COLUMN, RENAME COLUMN, ADD INDEX; DROP TABLE; RENAME TABLE, TRUNCATE TABLE, CREATE INDEX (hanya operasi oleh akun database saat ini) |
Izin yang diperlukan
| Database | Izin yang diperlukan | Referensi |
|---|---|---|
| Database Oracle yang dikelola sendiri | Izin tingkat granularitas halus | Persiapkan akun database, CREATE USER, GRANT |
| Kluster PolarDB for MySQL | Izin menulis pada database tujuan | Buat dan kelola akun database — gunakan akun istimewa |
Untuk sinkronisasi data inkremental dari Oracle, aktifkan archive logging dan supplemental logging pada database Oracle sebelum memulai tugas. Lihat Konfigurasi database Oracle.
Keterbatasan
Saat sinkronisasi skema, DTS menyinkronkan kunci asing (foreign keys) dari database sumber ke tujuan. Selama sinkronisasi data penuh dan inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda menjalankan operasi cascade update atau delete pada sumber selama sinkronisasi, ketidakkonsistenan data dapat terjadi.
Keterbatasan database sumber
Tabel yang akan disinkronkan harus memiliki kendala PRIMARY KEY atau UNIQUE dengan semua field unik. Tanpa kendala ini, database tujuan mungkin berisi catatan duplikat.
Jika database Oracle Anda versi 12c atau lebih baru, nama tabel tidak boleh melebihi 30 byte.
Jika Anda memilih tabel individual (bukan seluruh database) dan perlu mengganti nama tabel atau kolom di tujuan: satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas secara batch atau sinkronkan seluruh database sebagai gantinya.
Jika database sumber adalah database Oracle Real Application Cluster (RAC) yang terhubung melalui Express Connect, Anda harus menentukan alamat IP virtual (VIP) untuk database saat mengonfigurasi tugas sinkronisasi data.
Jika database Oracle yang dikelola sendiri adalah database Oracle RAC, Anda hanya dapat menggunakan VIP, bukan alamat IP Single Client Access Name (SCAN), saat mengonfigurasi tugas sinkronisasi data. Setelah Anda menentukan VIP, failover node pada database Oracle RAC tidak didukung.
Jika terjadi alih bencana (switchover) primary/secondary pada database sumber saat tugas sedang berjalan, tugas akan gagal.
Tugas gagal jika sumber berisi string kosong bertipe VARCHAR2 dan kolom tujuan yang sesuai memiliki kendala NOT NULL. Oracle memproses string VARCHAR2 kosong sebagai nilai null.
Log redo dan log arsip pada database sumber harus dipertahankan lebih dari tujuh hari. Jika DTS tidak dapat memperoleh log tersebut, tugas akan gagal. Dalam kasus luar biasa, ketidakkonsistenan atau kehilangan data dapat terjadi. Periode retensi kurang dari tujuh hari tidak dicakup oleh perjanjian tingkat layanan (SLA) DTS.
Keterbatasan tujuan dan umum
Nama tabel PolarDB for MySQL tidak peka huruf besar/kecil. Jika nama tabel Oracle sumber berisi huruf kapital, PolarDB for MySQL akan mengonversinya menjadi huruf kecil sebelum membuat tabel.
Jika database Oracle sumber berisi nama tabel yang hanya berbeda dalam kapitalisasi, ketidakkonsistenan data atau kegagalan tugas dapat terjadi. Gunakan fitur pemetaan nama objek untuk mengganti nama objek yang bentrok selama konfigurasi tugas.
Evaluasi dampak terhadap kinerja database sumber dan tujuan sebelum melakukan sinkronisasi. Jalankan tugas selama jam sepi bila memungkinkan.
Selama sinkronisasi data penuh, operasi INSERT konkuren menyebabkan fragmentasi tabel di tujuan. Setelah sinkronisasi penuh selesai, ruang tabel tujuan lebih besar daripada sumber.
DTS menghitung latensi sinkronisasi berdasarkan stempel waktu dari catatan terbaru yang disinkronkan di tujuan dibandingkan dengan stempel waktu sumber saat ini. Jika tidak ada operasi DML yang dijalankan di sumber dalam periode panjang, tampilan latensi mungkin tidak akurat. Jalankan operasi DML di sumber untuk memperbarui latensi. Jika Anda menyinkronkan seluruh database, buat tabel heartbeat — DTS memperbaruinya setiap detik agar latensi tetap akurat.
Tulis data ke database tujuan hanya melalui DTS selama sinkronisasi. Menulis dari sumber lain menyebabkan ketidakkonsistenan data.
Jika pernyataan DDL gagal dieksekusi di database tujuan, tugas tetap berjalan. Lihat pernyataan DDL yang gagal di log tugas. Lihat Lihat log tugas.
Set karakter database sumber dan tujuan harus kompatibel. Set karakter yang tidak kompatibel dapat menyebabkan ketidakkonsistenan data atau kegagalan tugas.
Gunakan fitur migrasi skema DTS. Jika tidak, tugas sinkronisasi mungkin gagal karena tipe data yang tidak kompatibel.
Zona waktu database sumber dan tujuan harus sama.
Konfigurasi 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.
Jalur navigasi dapat berbeda tergantung pada mode Konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS. Anda juga dapat langsung menuju halaman Tugas Sinkronisasi Data di Konsol DTS baru.
Di sisi kanan halaman, pilih wilayah tempat instans sinkronisasi data berada.
Di Konsol DTS baru, pilih wilayah di bilah navigasi atas.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task. Di wizard Create Data Synchronization Task, konfigurasikan parameter berikut.
Nama tugas
| Parameter | Deskripsi |
|---|---|
| Task Name | DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk mengidentifikasi tugas. Nama tidak perlu unik. |
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | (Opsional) Pilih database yang sudah ada agar DTS mengisi parameter secara otomatis. Jika tidak memilih, konfigurasikan parameter di bawah ini. |
| Database Type | Pilih Oracle. |
| Access Method | Pilih metode akses untuk database sumber. Contoh ini menggunakan Self-managed Database on ECS. Untuk metode akses lain, siapkan lingkungan yang diperlukan terlebih dahulu. Lihat Ikhtisar persiapan. |
| Instance Region | Wilayah tempat database Oracle sumber berada. |
| ECS Instance ID | ID Instance Elastic Compute Service (ECS) yang menjalankan database Oracle sumber. |
| Port Number | Port layanan database Oracle sumber. Default: 1521. |
| Oracle Type | Arsitektur database Oracle sumber: Non-RAC Instance (memerlukan SID) atau RAC or PDB Instance (memerlukan Service Name). Contoh ini menggunakan RAC or PDB Instance. |
| Database Account | Akun untuk database Oracle sumber. Lihat Izin yang diperlukan. |
| Database Password | Kata sandi untuk akun database. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | (Opsional) Pilih database yang sudah ada agar DTS mengisi parameter secara otomatis. Jika tidak memilih, konfigurasikan parameter di bawah ini. |
| Database Type | Pilih PolarDB for MySQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat kluster PolarDB for MySQL tujuan berada. |
| PolarDB Cluster ID | ID kluster PolarDB for MySQL tujuan. |
| Database Account | Akun database untuk kluster PolarDB for MySQL tujuan. Lihat Izin yang diperlukan. |
| Database Password | Kata sandi untuk akun database. |
| Encryption | Apakah koneksi ke database tujuan dienkripsi. Lihat Konfigurasi enkripsi SSL. |
Langkah 3: Uji konektivitas
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 pada Instance 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 di pusat data atau dari penyedia 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 aturan grup keamanan Anda menimbulkan risiko keamanan. Sebelum melanjutkan, ambil langkah pencegahan seperti: memperkuat kredensial, membatasi port yang terbuka, mengotentikasi panggilan API, mengaudit aturan daftar putih secara berkala, dan menghapus blok CIDR yang tidak sah. Atau, sambungkan melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 4: Pilih objek dan konfigurasi pengaturan sinkronisasi
Konfigurasikan parameter sinkronisasi berikut.
Pengaturan sinkronisasi
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Incremental Data Synchronization dipilih secara default. Pilih juga Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal selesai, DTS menyinkronkan data historis dari sumber ke tujuan sebagai dasar untuk sinkronisasi inkremental berikutnya. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: DTS memeriksa keberadaan tabel dengan nama identik di sumber dan tujuan. Jika nama identik ditemukan, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Jika tabel di tujuan tidak dapat dihapus atau diganti namanya, gunakan fitur pemetaan nama objek untuk mengganti nama objek sebelum memulai. Ignore Errors and Proceed: DTS melewati pemeriksaan nama identik. Selama sinkronisasi penuh, catatan tujuan yang sudah ada dengan kunci primer atau kunci unik yang sama dipertahankan. Selama sinkronisasi inkremental, catatan tersebut ditimpa. Jika skema berbeda, sinkronisasi mungkin sebagian atau tugas gagal. |
| Capitalization of object names in destination instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default-nya adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Source Objects | Pilih database, tabel, atau kolom dari Source Objects dan klik |
| Selected Objects | Jika akun database tujuan bukan akun istimewa, atau nama skema sumber tidak sesuai dengan konvensi penamaan PolarDB for MySQL, klik kanan skema di Selected Objects dan atur Schema Name ke nama database target. Untuk mengganti nama tabel setelah sinkronisasi, klik kanan tabel dan tentukan nama baru. Lihat Pemetaan nama objek. Untuk memfilter baris, klik kanan tabel dan tentukan kondisi filter. Lihat Atur kondisi filter. |
Jika Anda mengganti nama objek menggunakan pemetaan nama objek, objek lain yang bergantung padanya mungkin gagal disinkronkan.
Langkah 5: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan hal berikut.
Verifikasi data
Untuk konfigurasi verifikasi data, lihat Konfigurasi verifikasi data.
Pengaturan lanjutan
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan task ke kluster bersama. Untuk meningkatkan stabilitas task, beli kluster khusus. Lihat What is a DTS dedicated cluster. |
| Select the engine type of the destination database | Mesin penyimpanan untuk database tujuan. InnoDB adalah nilai default. X-Engine adalah mesin penyimpanan database untuk pemrosesan transaksi online (OLTP). |
| Retry Time for Failed Connections | Durasi DTS mencoba kembali koneksi yang gagal setelah task dimulai. Nilai yang valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit atau lebih. Jika DTS berhasil terhubung kembali dalam jangka waktu ini, task dilanjutkan; jika tidak, task gagal. Jika beberapa task menggunakan database sumber atau tujuan yang sama, jendela retry terpendek yang berlaku. DTS akan dikenai biaya selama periode retry. |
| Retry Time for Other Issues | Durasi DTS mencoba kembali operasi DDL atau DML yang gagal. Nilai yang valid: 1–1.440 menit. Default: 10 menit. Atur minimal 10 menit atau lebih. Nilai ini harus lebih kecil dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Membatasi beban pada tujuan selama sinkronisasi penuh dengan mengonfigurasi Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Opsi ini hanya ditampilkan ketika Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Synchronization | Membatasi beban pada tujuan selama sinkronisasi inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). |
| Environment Tag | Tag untuk mengidentifikasi instans DTS. Pilih sesuai kebutuhan Anda. |
| Actual Write Code | Format encoding untuk menulis data ke database tujuan. |
| Configure ETL | Apakah fitur ekstrak, transformasi, dan muat (ETL) diaktifkan. Pilih Yes untuk memasukkan pernyataan pemrosesan data di editor kode. Lihat Configure ETL in a data migration or data synchronization task. Pilih No untuk melewati ETL. |
| Monitoring and Alerting | Apakah akan mengonfigurasi peringatan untuk task. Pilih Yes untuk menetapkan ambang batas peringatan dan kontak notifikasi — DTS akan memberi tahu mereka jika task gagal atau latensi sinkronisasi melebihi ambang batas. Lihat Configure monitoring and alerting. |
Langkah 6: Simpan pengaturan dan 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.
DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai. Jika pemeriksaan awal gagal:
Klik View Details di samping setiap item yang gagal, selesaikan masalahnya, lalu jalankan kembali pemeriksaan awal.
Untuk item peringatan: jika item tersebut tidak dapat diabaikan, selesaikan dan jalankan kembali. Jika item tersebut dapat diabaikan, klik Confirm Alert Details > Ignore > OK > 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; lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam; cocok untuk penggunaan jangka pendek. Lepaskan instans saat tidak diperlukan lagi untuk menghentikan penagihan. |
| Resource Group Settings | Kelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Lihat Apa itu Resource Management? |
| Instance Class | DTS menyediakan kelas instans dengan kecepatan sinkronisasi yang berbeda. Lihat Kelas instans instansi sinkronisasi data. |
| Subscription Duration | Tersedia hanya untuk metode penagihan Subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun. |
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start. Di kotak dialog konfirmasi, klik OK.
Tugas muncul di daftar tugas. Pantau perkembangannya di sana.