Data Transmission Service (DTS) mengalirkan data perubahan dari database Oracle yang dikelola sendiri ke instans ApsaraMQ for Kafka secara real time, memungkinkan konsumen downstream menerima aliran perubahan yang andal dari Oracle untuk skenario ingestion data lake, gudang data real-time, dan penguraian keterkaitan layanan.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki database Oracle yang dikelola sendiri dan instans ApsaraMQ for Kafka tujuan. Untuk versi yang didukung, lihat Ikhtisar skenario sinkronisasi data.
Database Oracle berjalan dalam mode ARCHIVELOG, dengan file log arsip dapat diakses dan periode retensi telah ditetapkan. Lihat Mengelola File Log Redo Terarsip.
Pencatatan tambahan diaktifkan pada database Oracle, dengan SUPPLEMENTAL_LOG_DATA_PK dan SUPPLEMENTAL_LOG_DATA_UI diatur ke Yes. Lihat Pencatatan Tambahan.
Memiliki penyimpanan bebas yang cukup pada instans ApsaraMQ for Kafka untuk menampung seluruh data dari database Oracle.
Membuat topik di instans ApsaraMQ for Kafka untuk menerima data yang disinkronkan. Lihat Langkah 1: Buat topik.
Memahami kemampuan dan batasan DTS untuk sinkronisasi Oracle. Lihat Persiapkan database Oracle dan Ikhtisar.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenakan biaya. 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
Sinkronisasi satu arah kaskade
Untuk detailnya, lihat Topologi sinkronisasi.
Operasi SQL yang dapat disinkronkan
| Jenis operasi | Pernyataan |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | CREATE TABLE, ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE; CREATE/ALTER/DROP VIEW; CREATE/ALTER/DROP PROCEDURE; CREATE/DROP FUNCTION; CREATE/DROP TRIGGER; CREATE/DROP INDEX |
Izin yang diperlukan
| Database | Izin yang diperlukan | Referensi |
|---|---|---|
| Database Oracle yang dikelola sendiri | Izin detail halus | Persiapkan akun database, CREATE USER, GRANT |
Untuk menyinkronkan data inkremental dari Oracle, aktifkan pencatatan arsip dan pencatatan tambahan. Lihat Konfigurasikan database Oracle.
Batasan
DTS tidak menyinkronkan kunci asing. Operasi cascade dan delete pada database sumber tidak diteruskan ke tujuan.
Batasan database sumber
Objek yang akan disinkronkan:
Tabel harus memiliki kendala PRIMARY KEY atau UNIQUE dengan semua field unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan.
Untuk Oracle 12c dan versi setelahnya, nama tabel tidak boleh melebihi 30 byte.
Jika Anda memilih tabel sebagai objek yang akan disinkronkan dan berencana mengeditnya di tujuan (misalnya, mengganti nama tabel atau kolom), satu tugas mendukung hingga 1.000 tabel. Tugas dengan lebih dari 1.000 tabel akan gagal dengan error permintaan. Pisahkan tabel ke beberapa tugas, atau sinkronkan seluruh database sebagai gantinya.
Oracle RAC:
Jika sumber adalah database Oracle RAC yang terhubung melalui Express Connect, tentukan alamat IP virtual (VIP) saat mengonfigurasi tugas.
Untuk database Oracle RAC, gunakan VIP alih-alih alamat IP Single Client Access Name (SCAN). Setelah Anda menentukan VIP, failover node untuk database Oracle RAC tidak didukung.
Retensi log:
| Cakupan sinkronisasi | Retensi log minimum |
|---|---|
| Hanya sinkronisasi data inkremental | Lebih dari 24 jam |
| Sinkronisasi data penuh + sinkronisasi data inkremental | Minimal 7 hari |
Jika DTS tidak dapat membaca redo log atau archive log, tugas akan gagal, atau bahkan ketidakkonsistenan data atau kehilangan data dapat terjadi. Setelah sinkronisasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam. Perjanjian tingkat layanan (SLA) DTS tidak berlaku jika periode retensi lebih pendek dari minimum ini.
Batasan sumber lainnya:
Alih bencana primary/secondary pada database sumber saat tugas sedang berjalan menyebabkan tugas gagal.
String kosong tipe VARCHAR2 diperlakukan sebagai nilai null di Oracle. Jika kolom yang sesuai di tujuan memiliki kendala NOT NULL, tugas akan gagal.
Jangan memperbarui field LONGTEXT selama sinkronisasi. Melakukannya menyebabkan tugas gagal.
Jangan menjalankan pernyataan DDL selama sinkronisasi skema atau sinkronisasi data penuh. Melakukannya menyebabkan tugas gagal.
Batas ukuran catatan tunggal
Ukuran maksimum catatan tunggal yang dapat ditulis DTS ke Kafka adalah 10 MB. Jika baris sumber melebihi batas ini, tugas akan terganggu.
Untuk menghindarinya, jangan menyinkronkan seluruh tabel yang berisi field besar. Sinkronkan hanya kolom tertentu saja. Saat mengonfigurasi tugas, kecualikan kolom dengan nilai besar. Jika tabel dengan field besar sudah termasuk dalam tugas, hapus tabel tersebut, tambahkan kembali, lalu terapkan kondisi filter untuk mengecualikan kolom besar.
Batasan lainnya
Tabel yang diubah namanya: Jika Anda mengubah nama tabel di database sumber dan nama baru tersebut tidak termasuk dalam objek yang dipilih, DTS tidak akan menyinkronkan data tabel yang diubah namanya ke Kafka. Untuk melanjutkan sinkronisasi, pilih kembali objek-objek tersebut. Lihat Menambahkan objek ke tugas sinkronisasi data.
Oracle Data Pump: Jangan gunakan Oracle Data Pump untuk menulis data ke database sumber selama sinkronisasi data inkremental. Kehilangan data dapat terjadi.
Dampak kinerja: DTS menggunakan sumber daya baca dan tulis dari database sumber dan tujuan selama sinkronisasi data penuh, yang dapat meningkatkan beban server. Jadwalkan tugas sinkronisasi selama jam sepi untuk meminimalkan dampak.
Ukuran ruang tabel: Operasi INSERT konkuren selama sinkronisasi data penuh menyebabkan fragmentasi tabel. Ruang tabel tujuan akan lebih besar daripada sumber setelah sinkronisasi data penuh selesai.
Latensi sinkronisasi: Latensi dihitung berdasarkan stempel waktu catatan terbaru yang disinkronkan di tujuan dan waktu saat ini di sumber. Jika tidak ada operasi DML yang dijalankan di sumber dalam periode panjang, latensi yang ditampilkan mungkin tidak akurat. Jalankan operasi DML di sumber untuk memperbarui latensi. Jika Anda menyinkronkan seluruh database, buat tabel heartbeat yang diperbarui setiap detik agar latensi tetap akurat.
Tulisan eksklusif: Tulis data ke tujuan hanya melalui DTS. Menulis melalui alat lain dapat menyebabkan ketidakkonsistenan data atau kehilangan data — misalnya, saat menggunakan DMS untuk melakukan operasi DDL Online.
Scaling Kafka: Jika klaster Kafka tujuan di-scale up atau down, restart klaster Kafka untuk melanjutkan sinkronisasi.
Buat tugas sinkronisasi data
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 mungkin berbeda tergantung pada mode dan tata letak konsol DMS. Lihat Simple mode dan Menyesuaikan tata letak dan gaya konsol DMS. Anda juga dapat langsung membuka halaman Tugas Sinkronisasi Data di konsol DTS baru.
Langkah 2: Pilih wilayah
Di sisi kanan Tugas Sinkronisasi Data, pilih wilayah tempat instans sinkronisasi data berada.
Di konsol DTS baru, pilih wilayah dari bilah navigasi atas.
Langkah 3: Konfigurasikan database sumber dan tujuan
Klik Create Task. Di wizard Create Data Synchronization Task, konfigurasikan parameter berikut.
Source Database
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk tugas DTS. DTS menghasilkan nama default. Gunakan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. |
| Database Type | Pilih Oracle. |
| Connection Type | Metode akses untuk database sumber. Contoh ini menggunakan Self-managed Database on ECS. Jika sumber Anda adalah database yang dikelola sendiri, siapkan lingkungan jaringan terlebih dahulu. Lihat Ikhtisar persiapan. |
| Instance Region | Wilayah tempat database Oracle yang dikelola sendiri berada. |
| ECS Instance ID | ID instans Elastic Compute Service (ECS) yang meng-host database Oracle. |
| Port Number | Port layanan database Oracle. Default: 1521. |
| Oracle Type | Arsitektur Oracle. Pilih Non-RAC Instance dan konfigurasikan SID, atau pilih RAC or PDB Instance dan konfigurasikan Service Name. Catatan Instans RAC tidak didukung. Contoh ini menggunakan Non-RAC Instance. |
| Database Account | Akun Oracle. Untuk izin yang diperlukan, lihat Izin yang diperlukan. |
| Database Password | Kata sandi untuk akun Oracle. |
Destination Database
| Parameter | Deskripsi |
|---|---|
| Database Type | Pilih Kafka. |
| Connection Type | Pilih Express Connect, VPN Gateway, or Smart Access Gateway. DTS tidak mencantumkan ApsaraMQ for Kafka sebagai metode akses khusus. Hubungkan ke klaster Kafka yang dikelola sendiri. |
| Instance Region | Wilayah tempat instans ApsaraMQ for Kafka berada. |
| Connected VPC | ID virtual private cloud (VPC) tempat instans ApsaraMQ for Kafka berada. Untuk mendapatkan ID VPC, buka konsol ApsaraMQ for Kafka, buka halaman Detail Instans, dan temukan ID VPC di Informasi Konfigurasi pada tab Instance Information. |
| IP Address or Domain Name | Alamat IP dari parameter Default Endpoint instans ApsaraMQ for Kafka. Untuk mendapatkan alamat IP, buka halaman Detail Instans dan cari di Informasi Endpoint pada tab Instance Information. |
| Port Number | Port layanan instans ApsaraMQ for Kafka. Default: 9092. |
| Database Account | Akun untuk instans ApsaraMQ for Kafka. Tidak diperlukan untuk VPC-connected instances. |
| Database Password | Kata sandi untuk akun tersebut. |
| Kafka Version | Versi instans ApsaraMQ for Kafka. |
| Encryption | Pilih Non-encrypted atau SCRAM-SHA-256 sesuai kebutuhan keamanan Anda. |
| Topic | Topik untuk menerima data yang disinkronkan. Pilih dari daftar drop-down. |
| Topic That Stores DDL Information | Topik untuk menyimpan informasi DDL. Jika tidak diatur, informasi DDL disimpan di topik yang ditentukan oleh Topik. |
| Use Kafka Schema Registry | Apakah akan menggunakan Kafka Schema Registry. Pilih No atau Yes. Jika Anda memilih Yes, masukkan URL atau alamat IP yang terdaftar di Kafka Schema Registry untuk skema Avro Anda. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR-nya ke daftar putih instansiasi basis data Alibaba Cloud (seperti ApsaraDB RDS untuk MySQL atau ApsaraDB untuk MongoDB). Untuk database yang dihosting di ECS, DTS secara otomatis menambahkan blok CIDR-nya ke aturan grup keamanan ECS. Jika database diterapkan di beberapa instance ECS, tambahkan secara manual blok CIDR DTS ke aturan grup keamanan setiap instance ECS. Untuk database lokal atau database dari penyedia pihak ketiga, tambahkan secara manual blok CIDR DTS ke daftar putih database. Lihat Blok CIDR server DTS.
Menambahkan blok CIDR DTS ke daftar putih atau aturan grup keamanan Anda dapat menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti memperkuat kredensial, membatasi port yang terbuka, mengaudit panggilan API, meninjau aturan daftar putih secara berkala, dan memblokir blok CIDR yang tidak sah. Atau, hubungkan database ke DTS menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Konfigurasikan objek dan pengaturan sinkronisasi
Konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Secara default, Incremental Data Synchronization dipilih. Pilih juga Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal (precheck), DTS menyinkronkan data historis dari sumber ke tujuan sebagai garis dasar untuk sinkronisasi inkremental. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: DTS memeriksa adanya tabel dengan nama identik di sumber dan tujuan. Tugas tidak dapat dimulai jika ditemukan konflik. Untuk menyelesaikan konflik penamaan tanpa menghapus atau mengganti nama tabel tujuan, gunakan fitur pemetaan nama objek. Lihat Map object names. Ignore Errors and Proceed: Melewati pemeriksaan konflik penamaan. Jika skema sumber dan tujuan sama, DTS mempertahankan catatan tujuan yang sudah ada selama sinkronisasi data penuh dan menimpanya selama sinkronisasi data inkremental. Jika skema berbeda, inisialisasi mungkin sebagian gagal atau tugas bisa gagal sepenuhnya. Gunakan opsi ini dengan hati-hati. |
| Data Format in Kafka | Format data yang ditulis ke Kafka. DTS Avro: data mengikuti skema DTS Avro. Lihat definisi skema di GitHub. SharePlex JSON: data menggunakan format SharePlex JSON. Lihat Shareplex Json. |
| Policy for Shipping Data to Kafka Partitions | Kebijakan partisi untuk data yang disinkronkan. Lihat Specify the policy for migrating data to Kafka partitions. |
| Capitalization of Object Names in Destination Instance | Kebijakan kapitalisasi untuk nama database, tabel, dan kolom di instans tujuan. Default: DTS default policy. Lihat Specify the capitalization of object names in the destination instance. |
| Source Objects | Pilih kolom, tabel, atau database dari bagian Source Objects, lalu klik ikon |
| Selected Objects | Untuk mengganti nama satu objek, klik kanan objek tersebut. Lihat Map the name of a single object. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Map multiple object names at a time. Untuk memfilter operasi SQL tertentu pada suatu tabel, klik kanan tabel tersebut dan pilih operasi yang diinginkan. Lihat SQL operations that can be synchronized. Untuk memfilter baris, klik kanan suatu tabel dan tetapkan kondisi filter. Lihat Set filter conditions. Mengganti nama objek dapat menyebabkan objek dependen gagal disinkronkan. |
Langkah 6: Konfigurasikan pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menggunakan klaster bersama. Untuk stabilitas yang lebih baik, beli klaster khusus. Lihat What is a DTS dedicated cluster. |
| Retry Time for Failed Connections | Jendela waktu untuk mencoba ulang koneksi yang gagal. Nilai yang valid: 10–1440 menit. Default: 720 menit. Atur nilai ini lebih dari 30 menit. Jika DTS berhasil terhubung kembali dalam jendela waktu ini, task akan dilanjutkan; jika tidak, task akan gagal. Jika beberapa task menggunakan sumber atau tujuan yang sama, jendela waktu retry terpendek yang berlaku. Selama proses retry, Anda tetap dikenai biaya untuk instans DTS. |
| Retry Time for Other Issues | Jendela waktu untuk mencoba ulang kegagalan operasi DDL atau DML. Nilai yang valid: 1–1440 menit. Default: 10 menit. Atur nilai ini lebih dari 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Membatasi beban pada server database tujuan selama sinkronisasi data penuh. 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 | Membatasi beban selama sinkronisasi data 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. Contoh ini tidak menggunakan tag. |
| Actual Write Code | Format encoding untuk data yang ditulis ke tujuan. |
| Configure ETL | Apakah akan mengaktifkan ekstrak, transformasi, dan muat (ETL). Pilih Yes untuk mengonfigurasi pernyataan pemrosesan data. Lihat Configure ETL in a data migration or data synchronization task. Pilih No untuk melewati ETL. |
| Monitoring and Alerting | Apakah akan mengonfigurasi notifikasi untuk kegagalan task atau latensi sinkronisasi yang tinggi. Pilih No atau Yes. Jika Anda memilih Yes, konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Configure monitoring and alerting when you create a DTS task. |
Langkah 7: Simpan pengaturan dan jalankan pemeriksaan awal
Untuk melihat pratinjau parameter OpenAPI sebelum menyimpan, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Klik Next: Save Task Settings and Precheck.
DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai. Jika pemeriksaan awal gagal:
Klik View Details di samping setiap item yang gagal, selesaikan masalahnya, dan jalankan pemeriksaan awal lagi.
Jika peringatan dipicu untuk item yang dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore di kotak dialog, klik OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 8: Beli instans sinkronisasi
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman pembelian, konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: bayar di muka untuk jangka waktu tetap. 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 biaya. |
| Resource Group Settings | Kelompok sumber daya untuk instans. Default: default resource groupApa itu Resource Management? |
| Instance Class | Kelas instans, yang menentukan kecepatan sinkronisasi. Lihat Kelas Instans untuk Instansi Sinkronisasi Data. |
| Subscription Duration | Tersedia hanya untuk metode penagihan Subscription. Nilai valid: 1–9 bulan, atau 1, 2, 3, atau 5 tahun. |
Langkah 9: Mulai tugas
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start. Di kotak dialog, klik OK.
Tugas muncul di daftar tugas. Pantau perkembangannya dari sana.