Layanan Transmisi Data (DTS) memungkinkan Anda memigrasikan data dari database Oracle yang dikelola sendiri ke instans ApsaraMQ for Kafka. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental—gunakan ketiganya secara bersamaan untuk sistem live yang memerlukan replikasi berkelanjutan tanpa celah data.
Prasyarat
Sebelum memulai, pastikan Anda telah menyelesaikan hal-hal berikut:
Buat instans sumber dan tujuan. Database Oracle yang dikelola sendiri dan instans ApsaraMQ for Kafka harus keduanya dalam status berjalan. Lihat Ikhtisar skenario migrasi data untuk versi yang didukung.
Aktifkan mode ARCHIVELOG pada Oracle. Database Oracle harus berjalan dalam mode ARCHIVELOG, dengan file log arsip dapat diakses dan periode retensi yang sesuai telah ditetapkan. Lihat Mengelola File Log Redo Terarsip.
Aktifkan pencatatan tambahan pada Oracle. Pencatatan tambahan harus diaktifkan, dengan
SUPPLEMENTAL_LOG_DATA_PKdanSUPPLEMENTAL_LOG_DATA_UIdiatur keYES. Lihat Pencatatan Tambahan.Verifikasi kapasitas penyimpanan Kafka. Penyimpanan yang tersedia pada instans ApsaraMQ for Kafka harus melebihi penyimpanan yang digunakan oleh database Oracle.
Buat topik Kafka. Buat topik di instans ApsaraMQ for Kafka untuk menerima data yang dimigrasikan. Lihat Langkah 1: Buat topik.
Buat akun database Oracle dengan izin yang diperlukan. Lihat Menyiapkan akun Oracle di bawah ini.
Tinjau kemampuan dan batasan DTS untuk Oracle. Advanced Database and Application Migration (ADAM) tersedia untuk evaluasi database sebelum migrasi. Lihat Menyiapkan database Oracle dan Ikhtisar.
Menyiapkan akun Oracle
Buat akun database dengan izin seperti yang ditunjukkan di bawah ini. Lewati langkah ini jika Anda sudah memiliki akun yang memenuhi syarat.
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| Database Oracle sumber | Izin pemilik skema | Izin pemilik skema | Izin detail halus |
Untuk petunjuk terperinci tentang cara membuat akun database dan memberikan izin yang diperlukan, lihat Menyiapkan akun database, CREATE USER, dan GRANT.
Untuk migrasi data inkremental, Anda juga harus mengaktifkan logging arsip dan pencatatan tambahan. Lihat Mengonfigurasi database Oracle.
Batasan
DTS tidak memigrasikan kunci asing. Perilaku CASCADE dan DELETE yang didefinisikan pada sumber tidak diterapkan di tujuan.
Jaringan dan konektivitas
Server database sumber harus memiliki bandwidth outbound yang mencukupi. Bandwidth yang tidak mencukupi akan mengurangi throughput migrasi.
Untuk Oracle Real Application Clusters (RAC) yang terhubung melalui Express Connect, Anda harus menentukan alamat IP virtual (VIP) untuk database saat mengonfigurasi database sumber.
Untuk Oracle Real Application Clusters (RAC) yang terhubung melalui Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway, atau Cloud Enterprise Network (CEN), gunakan satu alamat IP virtual (VIP) alih-alih alamat IP Single Client Access Name (SCAN). Setelah Anda menentukan VIP, failover node tidak lagi didukung untuk database Oracle RAC tersebut.
Tipe data
Jika bidang Oracle sumber berisi string
VARCHAR2kosong—yang dianggap sebagaiNULLdi Oracle—dan bidang tujuan yang sesuai memiliki kendalaNOT NULL, tugas migrasi akan gagal.Jangan memperbarui bidang
LONGTEXTselama migrasi. Tugas akan gagal jika pembaruanLONGTEXTterdeteksi.
Persyaratan objek
Tabel harus memiliki kendala
PRIMARY KEYatauUNIQUE, dengan semua bidang unik. Tanpa ini, catatan duplikat dapat muncul di tujuan.Untuk Oracle 12c dan versi setelahnya, nama tabel tidak boleh melebihi 30 byte.
Jika Anda memilih tabel individual dan perlu mengganti nama tabel atau kolom, satu tugas mendukung maksimal 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi pekerjaan menjadi beberapa tugas atau migrasikan seluruh database dalam satu tugas.
Retensi log untuk migrasi inkremental
Logging redo dan logging arsip harus diaktifkan.
| Mode migrasi | Retensi log minimum |
|---|---|
| Hanya migrasi inkremental | Lebih dari 24 jam |
| Migrasi penuh + migrasi inkremental | Minimal 7 hari (dapat dikurangi menjadi 24 jam setelah migrasi penuh selesai) |
Jika DTS tidak dapat mengakses log yang diperlukan, tugas akan gagal. Dalam kasus ekstrem, ketidakkonsistenan atau kehilangan data dapat terjadi. Perjanjian tingkat layanan DTS tidak mencakup kegagalan yang disebabkan oleh retensi log yang tidak mencukupi.
Batasan operasional selama migrasi
| Fase | Batasan |
|---|---|
| Migrasi skema dan migrasi data penuh | Jangan lakukan operasi DDL yang mengubah skema database atau tabel. |
| Hanya migrasi penuh | Jangan menulis ke database sumber. Untuk menjamin konsistensi, jalankan migrasi skema, migrasi data penuh, dan migrasi data inkremental secara bersamaan. |
Pertimbangan lainnya
Jadwalkan migrasi selama jam sepi. Migrasi data penuh meningkatkan beban baca dan tulis pada server sumber dan tujuan.
Setelah migrasi data penuh, ruang tabel tujuan lebih besar daripada sumber karena operasi
INSERTkonkuren menyebabkan fragmentasi.DTS mencoba ulang tugas migrasi yang gagal hingga 7 hari. Sebelum memindahkan beban kerja ke tujuan, hentikan atau lepas tugas yang gagal—atau cabut izin tulis DTS menggunakan
REVOKE. Jika tidak, tugas yang gagal yang dilanjutkan kembali dapat menimpa data tujuan dengan data sumber.Jika klaster Kafka tujuan ditingkatkan atau diturunkan spesifikasinya selama migrasi, restart klaster tersebut.
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya trafik Internet |
|---|---|---|
| Migrasi skema + Migrasi data penuh | Gratis | Dikenakan hanya jika data meninggalkan Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan. | — |
Pilih jenis migrasi
Pilih jenis migrasi berdasarkan tujuan Anda. Untuk sistem live, gunakan ketiga jenis secara bersamaan.
| Jenis migrasi | Apa yang dilakukan | Kapan menggunakannya |
|---|---|---|
| Migrasi skema | Memigrasikan skema objek dari Oracle ke Kafka. Pemicu tidak didukung—hapus pemicu sumber sebelum migrasi untuk mencegah ketidakkonsistenan data. Lihat Mengonfigurasi tugas sinkronisasi data untuk database sumber yang berisi pemicu. | Selalu sertakan sebagai langkah pertama. |
| Migrasi data penuh | Memigrasikan semua data historis dari Oracle ke Kafka. Tidak ada operasi DDL pada objek yang dimigrasikan selama fase ini. | Gunakan sendiri hanya untuk muatan data historis satu kali tanpa trafik live. |
| Migrasi data inkremental | Membaca file log redo Oracle dan terus-menerus mengalirkan perubahan ke Kafka. Menjaga tujuan tetap sinkron selama dan setelah migrasi. | Gabungkan dengan migrasi penuh untuk sistem live. |
Disarankan: Pilih Schema Migration, Migrasi Data Penuh, dan Migrasi Data Inkremental secara bersamaan. Ini adalah pendekatan standar untuk memastikan kelangsungan layanan saat Anda memigrasikan data dari database Oracle yang dikelola sendiri.
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | CREATE TABLE, ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE |
| CREATE VIEW, ALTER VIEW, DROP VIEW | |
| CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE | |
| CREATE FUNCTION, DROP FUNCTION, CREATE TRIGGER, DROP TRIGGER | |
| CREATE INDEX, DROP INDEX |
Mengonfigurasi dan memulai tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Jalur navigasi yang tepat bergantung pada mode dan tata letak konsol DMS. Lihat Mode simple dan Menyesuaikan tata letak dan gaya konsol DMS. Atau, buka langsung halaman Tugas Migrasi Data.
Dari daftar tarik-turun di samping Tugas Migrasi Data, pilih Wilayah tempat Instans migrasi akan ditempatkan.
Di konsol DTS baru, pilih wilayah di pojok kiri atas.
Langkah 2: Mengonfigurasi database sumber dan tujuan
Klik Create Task. Di halaman Buat Tugas, konfigurasikan parameter berikut.
Setelah mengonfigurasi database sumber dan tujuan, baca limits yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan tugas gagal atau menghasilkan data yang tidak konsisten.
Source database
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk tugas tersebut. DTS memberikan nama secara otomatis — ganti dengan nama deskriptif agar mudah diidentifikasi. Nama tidak perlu unik. |
| Select a DMS database instance | Pilih instans yang sudah ada (DTS akan mengisi parameter secara otomatis) atau biarkan kosong dan konfigurasi secara manual. |
| Database Type | Pilih Oracle. |
| Connection Type | Pilih metode yang sesuai dengan lokasi penyebaran database sumber. Contoh ini menggunakan Self-managed Database on ECS. Jika menggunakan database yang dikelola sendiri, siapkan lingkungan jaringan yang diperlukan terlebih dahulu. Lihat Ikhtisar persiapan. |
| Instance Region | Wilayah tempat database Oracle sumber berada. |
| ECS Instance ID | ID instans Elastic Compute Service (ECS) yang menjalankan database Oracle. |
| Port Number | Port layanan Oracle. Default: 1521. |
| Oracle Type | Pilih Non-RAC Instance (memerlukan parameter SID) atau RAC or PDB Instance (memerlukan parameter Service Name). Contoh ini menggunakan Non-RAC Instance. |
| Database Account | Akun Oracle dengan izin seperti yang dijelaskan di Menyiapkan akun Oracle. |
| Database Password | Password untuk akun database. |
Destination database
| Parameter | Deskripsi |
|---|---|
| Select a DMS database instance | Pilih instans yang sudah ada (DTS akan mengisi parameter secara otomatis) atau biarkan kosong dan konfigurasi secara manual. |
| Database Type | Pilih Kafka. |
| Connection Type | Pilih Express Connect, VPN Gateway, or Smart Access Gateway. ApsaraMQ for Kafka tidak tersedia sebagai metode akses langsung — konfigurasikan sebagai database Kafka yang dikelola sendiri. |
| Instance Region | Wilayah instans ApsaraMQ for Kafka. |
| Connected VPC | ID virtual private cloud (VPC) dari instans ApsaraMQ for Kafka. Untuk menemukannya: di konsol ApsaraMQ for Kafka, buka halaman Instance Details > tab Instance Information > bagian Configuration Information. |
| IP Address or Domain Name | Alamat IP dari Default Endpoint instans ApsaraMQ for Kafka. Untuk menemukannya: di konsol ApsaraMQ for Kafka, buka Instance Details > tab Instance Information > bagian Endpoint Information > Default Endpoint. |
| Port Number | Port layanan Kafka. Default: 9092. |
| Database Account | Akun ApsaraMQ for Kafka. Tidak diperlukan jika tipe instans adalah VPC Type. |
| Database Password | Password untuk akun database. Tidak diperlukan jika tipe instans adalah VPC Type. |
| Kafka Version | Versi instans ApsaraMQ for Kafka tujuan. |
| Connection Method | Pilih Non-encrypted atau SCRAM-SHA-256 sesuai kebutuhan keamanan Anda. |
| Topic | Topik yang menerima data yang dimigrasikan. Pilih dari daftar drop-down. |
| Topic That Stores DDL Information | Topik untuk event DDL. Jika dibiarkan kosong, event DDL akan disimpan di topik yang ditentukan oleh Topik. |
| Use Kafka Schema Registry | Apakah akan menggunakan Kafka Schema Registry untuk manajemen skema Avro. Pilih Yes dan masukkan URL Registry jika diperlukan, atau pilih No. |
Langkah 3: Uji konektivitas dan tambahkan blok CIDR DTS
Jika daftar izin IP dikonfigurasi pada database sumber, tambahkan blok CIDR server DTS ke dalamnya.
Menambahkan blok CIDR DTS ke daftar izin database atau grup keamanan ECS berpotensi menimbulkan risiko keamanan. Sebelum melanjutkan, ambil langkah pencegahan: perkuat kredensial, batasi port yang terbuka, autentikasi panggilan API, tinjau aturan daftar izin secara berkala, dan blokir rentang CIDR yang tidak sah. Sebagai alternatif, hubungkan DTS ke database melalui Express Connect, VPN Gateway, atau Smart Access Gateway alih-alih membuka akses publik.
Klik Test Connectivity and Proceed.
Langkah 4: Pilih objek dan konfigurasi pengaturan migrasi
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih Schema Migration dan Migrasi Data Penuh untuk migrasi satu kali. Pilih ketiga jenis—Migrasi Skema, Migrasi Data Penuh, dan Migrasi Data Inkremental—untuk menjaga tujuan tetap sinkron dan mempertahankan kelangsungan layanan. Jika Anda tidak memilih Incremental Data Migration, hindari menulis ke database sumber selama migrasi untuk mencegah ketidakkonsistenan data. |
| Processing Mode of Conflicting Tables | Periksa Awal dan Laporkan Kesalahan (default): gagal dalam pemeriksaan awal jika tujuan memiliki tabel dengan nama yang sama dengan sumber. Jika tabel yang bertentangan tidak dapat dihapus, gunakan pemetaan nama objek untuk mengganti namanya. Lihat Memetakan nama objek. Abaikan Kesalahan dan Lanjutkan: melewati pemeriksaan konflik nama. Catatan dengan kunci primer yang cocok tidak dimigrasikan; ketidaksesuaian skema dapat menyebabkan migrasi sebagian atau kegagalan tugas. Gunakan dengan hati-hati. |
| Data Format in Kafka | DTS Avro: data diurai menggunakan skema DTS Avro. Untuk definisi skema, lihat GitHub. SharePlex JSON: data disimpan dalam format JSON SharePlex. Lihat bagian Shareplex Json dalam "Format data kluster Kafka." |
| Policy for shipping data to Kafka partitions | Kebijakan partisi untuk data yang dimigrasikan. Lihat Menentukan kebijakan untuk memigrasikan data ke partisi Kafka. |
| Source Objects / Selected Objects | Di Objek Sumber, pilih tabel atau database yang akan dimigrasikan, lalu klik ikon panah untuk memindahkannya ke Objek yang Dipilih. Untuk mengganti nama satu objek, klik kanan objek tersebut di Selected Objects. Lihat Memetakan nama satu objek. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Memetakan nama beberapa objek sekaligus. Untuk memfilter baris berdasarkan kondisi, klik kanan tabel dan tentukan klausa WHERE. Lihat Menetapkan kondisi filter. Untuk membatasi operasi SQL mana yang dimigrasikan secara inkremental untuk objek tertentu, klik kanan objek tersebut dan pilih operasinya. |
Jika Anda mengganti nama objek menggunakan pemetaan nama objek, objek lain yang bergantung padanya mungkin gagal dimigrasikan.
Langkah 5: Mengonfigurasi pengaturan lanjutan
Klik Next: Advanced Settings.
| Parameter | Description |
|---|---|
| Select the dedicated cluster used to schedule the task | Secara default, DTS menjadwalkan tugas ke klaster bersama. Untuk menjalankan tugas ini pada klaster khusus, beli klaster tersebut dan pilih di sini. Lihat What is a DTS dedicated cluster. |
| Retry Time for Failed Connections | Durasi waktu DTS melakukan retry setelah terjadi kegagalan koneksi. Nilai yang valid: 10–1440 menit. Default: 720. Atur lebih dari 30 menit. Jika DTS berhasil terhubung kembali dalam jangka waktu ini, tugas akan dilanjutkan; jika tidak, tugas gagal. Jika beberapa tugas menggunakan database sumber atau tujuan yang sama, jendela retry yang paling baru diatur akan berlaku untuk semua tugas tersebut. DTS tetap mengenakan biaya untuk instans selama periode retry. |
| The wait time before a retry when other issues occur in the source and destination databases | Durasi waktu DTS melakukan retry setelah kegagalan operasi DDL atau DML. Nilai yang valid: 1–1440 menit. Default: 10. Atur lebih dari 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Membatasi throughput baca/tulis selama migrasi data penuh untuk mengurangi beban server database. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Opsi ini tersedia hanya jika Full Data Migration dipilih. |
| Enable Throttling for Incremental Data Migration | Membatasi throughput selama migrasi data inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Opsi ini tersedia hanya jika Incremental Data Migration dipilih. |
| Environment Tag | Tag opsional untuk mengkategorikan instans DTS berdasarkan lingkungan, misalnya production atau development. |
| Actual Write Code | Pengkodean karakter untuk data yang ditulis ke tujuan. Pilih berdasarkan kebutuhan data Anda. |
| Configure ETL | Menentukan apakah data akan ditransformasi sebelum dituliskan ke tujuan. Pilih Yes untuk memasukkan pernyataan pemrosesan di editor kode. Lihat Configure ETL in a data migration or data synchronization task. Pilih No untuk melewati ETL. Lihat What is ETL? |
| Monitoring and Alerting | Menentukan apakah akan mengonfigurasi peringatan untuk kegagalan tugas atau latensi migrasi yang tinggi. Pilih Yes dan tentukan ambang batas serta kontak peringatan. Lihat Configure monitoring and alerting for a new DTS task. |
Langkah 6: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk meninjau parameter API yang digunakan dalam konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck, lalu klik Preview API Call.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Jika ada item yang gagal:
Klik View Details di sebelah item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
Jika item peringatan tidak kritis dan dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Tunggu hingga tingkat keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.
Langkah 7: Beli instans dan mulai tugas
Di halaman Purchase Instance, konfigurasikan kelas instans.
| Bagian | Parameter | Deskripsi |
|---|---|---|
| Kelas Instans Baru | Kelompok Sumber Daya | Kelompok sumber daya untuk instans migrasi. Default: kelompok sumber daya default. Lihat Apa itu Manajemen Sumber Daya? |
| Kelas Instans | Kelas instans menentukan throughput migrasi. Lihat Spesifikasi instans migrasi data. |
Pilih kotak centang Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start.
Monitor progres di halaman Task Management.
Langkah selanjutnya
Ikhtisar skenario migrasi data—periksa daftar lengkap versi sumber dan tujuan yang didukung.
Memetakan nama objek—ganti nama objek saat tiba di tujuan.
Menetapkan kondisi filter—migrasikan subset baris menggunakan kondisi WHERE.
Menentukan kebijakan untuk memigrasikan data ke partisi Kafka—kendalikan cara data didistribusikan ke partisi Kafka.