All Products
Search
Document Center

Data Transmission Service:Sinkronisasi data dari database Oracle yang dikelola sendiri ke instans ApsaraMQ for Kafka

Last Updated:Mar 29, 2026

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 sinkronisasiBiaya
Sinkronisasi skema dan sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenakan 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 operasiPernyataan
DMLINSERT, UPDATE, DELETE
DDLCREATE 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

DatabaseIzin yang diperlukanReferensi
Database Oracle yang dikelola sendiriIzin detail halusPersiapkan akun database, CREATE USER, GRANT
Penting

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 sinkronisasiRetensi log minimum
Hanya sinkronisasi data inkrementalLebih dari 24 jam
Sinkronisasi data penuh + sinkronisasi data inkrementalMinimal 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

  1. Masuk ke Konsol Data Management (DMS).

  2. Di bilah navigasi atas, klik Data + AI.

  3. 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

ParameterDeskripsi
Task NameNama untuk tugas DTS. DTS menghasilkan nama default. Gunakan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik.
Database TypePilih Oracle.
Connection TypeMetode 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 RegionWilayah tempat database Oracle yang dikelola sendiri berada.
ECS Instance IDID instans Elastic Compute Service (ECS) yang meng-host database Oracle.
Port NumberPort layanan database Oracle. Default: 1521.
Oracle TypeArsitektur 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 AccountAkun Oracle. Untuk izin yang diperlukan, lihat Izin yang diperlukan.
Database PasswordKata sandi untuk akun Oracle.

Destination Database

ParameterDeskripsi
Database TypePilih Kafka.
Connection TypePilih 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 RegionWilayah tempat instans ApsaraMQ for Kafka berada.
Connected VPCID 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 NameAlamat 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 NumberPort layanan instans ApsaraMQ for Kafka. Default: 9092.
Database AccountAkun untuk instans ApsaraMQ for Kafka. Tidak diperlukan untuk VPC-connected instances.
Database PasswordKata sandi untuk akun tersebut.
Kafka VersionVersi instans ApsaraMQ for Kafka.
EncryptionPilih Non-encrypted atau SCRAM-SHA-256 sesuai kebutuhan keamanan Anda.
TopicTopik untuk menerima data yang disinkronkan. Pilih dari daftar drop-down.
Topic That Stores DDL InformationTopik untuk menyimpan informasi DDL. Jika tidak diatur, informasi DDL disimpan di topik yang ditentukan oleh Topik.
Use Kafka Schema RegistryApakah 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.

Peringatan

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:

ParameterDeskripsi
Synchronization TypesSecara 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 TablesPrecheck 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 KafkaFormat 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 PartitionsKebijakan partisi untuk data yang disinkronkan. Lihat Specify the policy for migrating data to Kafka partitions.
Capitalization of Object Names in Destination InstanceKebijakan 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 ObjectsPilih kolom, tabel, atau database dari bagian Source Objects, lalu klik ikon right arrow untuk memindahkannya ke Selected Objects. Memilih tabel atau kolom akan mengecualikan view, trigger, dan stored procedure.
Selected ObjectsUntuk 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:

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menggunakan klaster bersama. Untuk stabilitas yang lebih baik, beli klaster khusus. Lihat What is a DTS dedicated cluster.
Retry Time for Failed ConnectionsJendela 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 IssuesJendela 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 MigrationMembatasi 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 SynchronizationMembatasi beban selama sinkronisasi data inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
Environment TagTag untuk mengidentifikasi instans DTS. Pilih sesuai kebutuhan Anda. Contoh ini tidak menggunakan tag.
Actual Write CodeFormat encoding untuk data yang ditulis ke tujuan.
Configure ETLApakah 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 AlertingApakah 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:

ParameterDeskripsi
Billing MethodSubscription: 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 SettingsKelompok sumber daya untuk instans. Default: default resource groupApa itu Resource Management?
Instance ClassKelas instans, yang menentukan kecepatan sinkronisasi. Lihat Kelas Instans untuk Instansi Sinkronisasi Data.
Subscription DurationTersedia 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.