Topik ini menjelaskan cara menggunakan Data Transmission Service (DTS) untuk menyinkronkan data dari database Oracle yang dikelola sendiri ke instance ApsaraMQ for Kafka.
Prasyarat
Anda memiliki database Oracle sumber yang dikelola sendiri dan instance tujuan Message Queue for Apache Kafka.
CatatanUntuk informasi lebih lanjut mengenai versi database sumber dan instance tujuan yang didukung, lihat Ikhtisar skenario sinkronisasi data.
-
Database Oracle yang dikelola sendiri berjalan dalam mode ARCHIVELOG, dan log arsipnya memiliki periode retensi yang wajar serta dapat diakses. Untuk informasi lebih lanjut, lihat ARCHIVELOG.
-
Pencatatan tambahan (supplemental logging), termasuk supplemental_log_data_pk dan supplemental_log_data_ui, telah diaktifkan. Untuk informasi lebih lanjut, lihat Supplemental Logging.
Instance tujuan Message Queue for Apache Kafka harus memiliki ruang penyimpanan yang lebih besar daripada data pada database Oracle sumber yang dikelola sendiri.
Instance tujuan Message Queue for Apache Kafka harus memiliki topik untuk menerima data yang disinkronkan. Untuk informasi lebih lanjut, lihat Langkah 1: Buat topik.
-
Sebelum menyinkronkan database sumber Oracle, pahami kemampuan dan keterbatasan Data Transmission Service (DTS), serta gunakan Advanced Database & Application Migration (ADAM) untuk menilai database Anda. Hal ini memastikan migrasi lancar ke cloud. Untuk informasi lebih lanjut, lihat Keterbatasan dan persiapan untuk database Oracle dan Ikhtisar penilaian database.
Keterbatasan
DTS tidak menyinkronkan foreign key dari database sumber ke database tujuan. Oleh karena itu, operasi cascade dan delete pada database sumber tidak disinkronkan ke database tujuan.
Kategori | Deskripsi |
Batasan pada database sumber |
|
Batasan lainnya |
|
Penagihan
|
Jenis sinkronisasi |
Harga |
|
Sinkronisasi skema dan sinkronisasi data penuh |
Gratis. |
|
Sinkronisasi data inkremental |
Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. |
Batas ukuran catatan tunggal
Ukuran catatan tunggal yang ditulis ke Kafka dibatasi hingga 10 MB. Jika satu baris di database sumber melebihi 10 MB, DTS tidak dapat menuliskannya ke Kafka dan tugas terganggu. Dalam kasus ini, kami menyarankan agar Anda tidak menyinkronkan tabel yang terpengaruh. Jika Anda harus menyinkronkan tabel tersebut, Anda dapat menyinkronkan hanya beberapa kolom. Saat mengonfigurasi tugas DTS, filter catatan dengan field besar. Jika tugas sudah berjalan, modifikasi objek sinkronisasi untuk menghapus tabel tersebut, lalu tambahkan kembali tabel dan filter kolom dengan field besar agar dilewati dari sinkronisasi.
Topologi sinkronisasi
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi satu arah banyak-ke-satu
Sinkronisasi satu arah bertingkat (cascade)
Untuk informasi lebih lanjut mengenai topologi sinkronisasi ini dan catatan pentingnya, lihat topologi sinkronisasi data.
Operasi SQL yang didukung
Jenis operasi | Pernyataan SQL |
DML | INSERT, UPDATE, dan DELETE |
DDL |
|
Izin akun database
Database | Izin yang diperlukan | Pengaturan akun |
Database Oracle yang dikelola sendiri | Memerlukan izin detail halus (fine-grained). |
Anda juga harus mengaktifkan archive log dan supplemental logging untuk menangkap perubahan data inkremental. Untuk informasi lebih lanjut, lihat Konfigurasi database.
Prosedur
-
Buka halaman daftar tugas sinkronisasi di wilayah tujuan. Anda dapat menggunakan salah satu dari dua metode berikut:
Dari Konsol DTS
-
Masuk ke Konsol Data Transmission Service (DTS).
-
Di panel navigasi kiri, klik Data Synchronization.
-
Di pojok kiri atas halaman, pilih wilayah tempat instans sinkronisasi berada.
Dari Konsol DMS
CatatanOperasi aktual dapat berbeda tergantung pada mode dan tata letak Konsol DMS. Untuk informasi lebih lanjut, lihat Mode sederhana dan Sesuaikan tata letak dan gaya antarmuka DMS.
-
Masuk ke Data Management (DMS).
-
Di bilah menu atas, pilih .
-
Di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi berada.
-
Klik Create Task untuk membuka halaman konfigurasi tugas.
Konfigurasikan database sumber dan tujuan.
Kategori
Parameter
Deskripsi
N/A
Task Name
DTS secara otomatis menghasilkan nama tugas. Kami menyarankan agar Anda menentukan nama deskriptif untuk memudahkan identifikasi. Nama tersebut tidak harus unik.
Source Database
Database Type
Pilih Oracle.
Connection Type
Pilih metode akses berdasarkan lokasi penyebaran database sumber Anda. Contoh ini menggunakan Self-managed Database on ECS.
CatatanJika instans sumber adalah database yang dikelola sendiri, Anda harus menyelesaikan persiapan yang diperlukan. Untuk informasi lebih lanjut, lihat Ikhtisar persiapan.
Instance Region
Pilih wilayah tempat database Oracle yang dikelola sendiri berada.
ECS Instance ID
Pilih ID instance ECS yang menghosting database Oracle yang dikelola sendiri.
Nomor Port
Masukkan port layanan database Oracle yang dikelola sendiri. Nilai default adalah 1521.
Oracle Type
Non-RAC Instance: Jika Anda memilih opsi ini, Anda juga harus memasukkan SID.
RAC or PDB Instance: Jika Anda memilih opsi ini, Anda juga harus memasukkan Service Name.
PentingMeskipun opsi ini berlabel "Instans RAC atau PDB", instans RAC tidak didukung.
Contoh ini menggunakan Non-RAC Instance.
Database Account
Masukkan akun database untuk database Oracle yang dikelola sendiri. Untuk informasi mengenai izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.
Database Password
Masukkan kata sandi yang sesuai dengan akun database.
Destination Database
Database Type
Pilih Kafka.
Connection Type
Pilih Express Connect, VPN Gateway, or Smart Access Gateway.
CatatanDalam skenario ini, instance Message Queue for Apache Kafka berfungsi sebagai database Kafka yang dikelola sendiri untuk instans sinkronisasi.
Instance Region
Pilih wilayah tempat instance tujuan Message Queue for Apache Kafka berada.
Connected VPC
Pilih ID VPC dari instance tujuan Message Queue for Apache Kafka. Anda dapat menemukan ID VPC di halaman Basic Information instance Kafka.
Nama Host atau Alamat IP
Masukkan alamat IP dari Endpoint Default instance Message Queue for Apache Kafka.
CatatanAnda dapat menemukan alamat IP untuk Default Endpoint di halaman Basic Information dari instans Message Queue for Apache Kafka.
Port Number
Masukkan port layanan instance Message Queue for Apache Kafka. Nilai default adalah 9092.
Database Account
Masukkan akun database instance Message Queue for Apache Kafka.
CatatanJika instance Message Queue for Apache Kafka adalah instans terhubung-VPC, Anda tidak perlu mengonfigurasi Database Account dan Database Password.
Database Password
Masukkan kata sandi yang sesuai dengan akun database.
Kafka Version
Pilih versi yang sesuai dengan instance Kafka Anda.
Connection Method
Pilih Non-encrypted atau SCRAM-SHA-256 berdasarkan kebutuhan bisnis dan keamanan Anda.
Topic
Pilih topik untuk menerima data.
Use Kafka Schema Registry
Kafka Schema Registry adalah lapisan penyedia metadata. Ini menyediakan API RESTful untuk menyimpan dan mengambil skema Avro.
No: Jangan gunakan Kafka Schema Registry.
Yes: Gunakan Kafka Schema Registry. Anda harus menentukan URL atau alamat IP yang terdaftar di Kafka Schema Registry untuk skema Avro Anda.
-
Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman. Di kotak dialog CIDR Blocks of DTS Servers, klik Test Connectivity.
CatatanPastikan blok CIDR alamat IP server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Hal ini dapat dilakukan secara otomatis atau manual. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR alamat IP server DTS ke daftar putih.
Konfigurasikan objek tugas.
Di halaman Configure Objects, konfigurasikan objek yang akan disinkronkan.
Parameter
Deskripsi
Synchronization Types
Incremental Data Synchronization dipilih. Secara default, Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal selesai, DTS melakukan sinkronisasi data penuh objek yang dipilih dari instans sumber ke kluster tujuan. Ini berfungsi sebagai data garis dasar untuk sinkronisasi data inkremental berikutnya.
Processing Mode for Existing Tables in Destination
-
Precheck and Report Errors: Memeriksa apakah tabel dengan nama yang sama ada di database tujuan. Jika tabel dengan nama yang sama tidak ada, pemeriksaan awal lolos. Jika tabel dengan nama yang sama ada, pemeriksaan awal gagal dan tugas sinkronisasi data tidak dimulai.
CatatanJika Anda tidak dapat menghapus atau mengganti nama tabel dengan nama yang sama di database tujuan, Anda dapat memetakannya ke nama tabel yang berbeda. Untuk informasi lebih lanjut, lihat Petakan nama tabel dan kolom.
-
Ignore Errors and Proceed: Melewati pemeriksaan nama tabel duplikat di database tujuan.
PeringatanMemilih Ignore Errors and Proceed dapat menyebabkan inkonsistensi data dan membahayakan bisnis Anda. Misalnya:
-
Jika skema tabel sama dan catatan di database tujuan memiliki nilai kunci primer atau kunci unik yang sama dengan catatan di database sumber:
-
Selama sinkronisasi penuh, DTS mempertahankan catatan di kluster tujuan. Catatan yang sesuai dari database sumber tidak disinkronkan.
-
Selama sinkronisasi inkremental, catatan dari database sumber menimpa catatan di database tujuan.
-
-
Jika skema tabel berbeda, sinkronisasi data awal mungkin gagal. Hal ini dapat mengakibatkan hanya data kolom parsial yang disinkronkan atau kegagalan sinkronisasi total. Lanjutkan dengan hati-hati.
-
Data Format in Kafka
Pilih format data yang digunakan DTS untuk menulis data ke instance Kafka.
Jika Anda memilih DTS Avro, Anda harus mengurai data berdasarkan definisi skema DTS Avro. Untuk informasi lebih lanjut, lihat Definisi skema DTS Avro dan Contoh deserialisasi DTS Avro.
Jika Anda memilih Shareplex Json, lihat Shareplex Json untuk deskripsi parameter dan contohnya.
Kafka Data Compression Format
Pilih format kompresi untuk kompresi pesan Kafka berdasarkan kebutuhan bisnis Anda.
LZ4 (default): Rasio kompresi rendah, tetapi kecepatan kompresi tinggi.
GZIP: Rasio kompresi tinggi, tetapi kecepatan kompresi rendah.
CatatanKonsumsi CPU tinggi.
Snappy: Rasio kompresi dan kecepatan kompresi sedang.
Policy for Shipping Data to Kafka Partitions
Pilih kebijakan yang memenuhi kebutuhan bisnis Anda.
Message acknowledgement mechanism
Pilih mekanisme konfirmasi yang memenuhi kebutuhan bisnis Anda.
Topic That Stores DDL Information
Pilih topik untuk menyimpan informasi DDL. Jika Anda tidak memilihnya, informasi DDL disimpan di topik penerima data secara default.
Capitalization of Object Names in Destination Instance
Anda dapat mengonfigurasi kebijakan sensitivitas huruf besar/kecil untuk nama objek database, tabel, dan kolom yang disinkronkan ke instans tujuan. Secara default, DTS default policy dipilih. Anda juga dapat memilih untuk menggunakan kebijakan default database sumber dan tujuan. Untuk informasi lebih lanjut, lihat Kebijakan sensitivitas huruf besar/kecil untuk nama objek tujuan.
Source Objects
Di kotak Source Objects, klik objek yang akan disinkronkan, lalu klik
untuk memindahkannya ke kotak Selected Objects.CatatanAnda dapat memilih database, tabel, dan kolom sebagai objek sinkronisasi. Jika Anda memilih tabel atau kolom, objek lain seperti view, trigger, dan prosedur tersimpan tidak disinkronkan ke database tujuan.
Selected Objects
Tidak diperlukan konfigurasi tambahan dalam contoh ini. Anda dapat menggunakan fitur pemetaan untuk mengatur nama topik, jumlah partisi, dan kunci partisi untuk tabel sumber di instance Kafka tujuan. Untuk informasi lebih lanjut, lihat Informasi pemetaan.
CatatanJika Anda menggunakan pemetaan nama objek, sinkronisasi mungkin gagal untuk objek lain yang bergantung pada objek yang dipetakan.
Untuk memilih operasi SQL untuk sinkronisasi inkremental, klik kanan objek di bagian Selected Objects dan pilih operasi SQL yang akan disinkronkan di kotak dialog yang muncul.
-
Klik Next: Advanced Settings untuk mengonfigurasi parameter lanjutan.
Parameter
Deskripsi
Dedicated Cluster for Task Scheduling
Secara default, DTS menjadwalkan tugas pada kluster bersama, dan Anda tidak perlu memilih kluster. Untuk kinerja yang lebih stabil, Anda dapat membeli kluster khusus untuk menjalankan tugas sinkronisasi DTS. Untuk informasi lebih lanjut, lihat Apa itu kluster khusus DTS?.
Retry Time for Failed Connections
Setelah tugas sinkronisasi dimulai, jika koneksi ke database sumber atau tujuan gagal, DTS melaporkan kesalahan dan segera mulai mencoba menghubungkan kembali. Durasi ulang default adalah 720 menit. Anda juga dapat menentukan durasi ulang kustom dari 10 hingga 1.440 menit. Kami menyarankan agar Anda mengatur durasi minimal 30 menit. Jika DTS berhasil terhubung kembali ke database dalam durasi yang ditentukan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.
Catatan-
Jika Anda memiliki beberapa instans DTS (misalnya, Instans A dan Instans B) yang berbagi sumber atau tujuan yang sama, dan Anda mengatur waktu ulang jaringan menjadi 30 menit untuk Instans A dan 60 menit untuk Instans B, durasi yang lebih pendek yaitu 30 menit digunakan untuk keduanya.
-
Karena DTS mengenakan biaya untuk waktu proses tugas selama periode ulang koneksi, kami menyarankan agar Anda menyesuaikan durasi ulang berdasarkan kebutuhan bisnis Anda atau segera melepas instans DTS setelah instans database sumber dan tujuan dilepas.
Retry Time for Other Issues
Setelah tugas sinkronisasi dimulai, jika terjadi masalah non-konektivitas lainnya pada database sumber atau tujuan (seperti pengecualian eksekusi DDL atau DML), DTS melaporkan kesalahan dan segera memulai operasi ulang terus-menerus. Durasi ulang default adalah 10 menit. Anda juga dapat menyesuaikan durasi ulang dalam rentang 1 hingga 1.440 menit. Kami menyarankan agar Anda mengaturnya minimal 10 menit. Jika operasi terkait berhasil dalam durasi ulang yang ditetapkan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.
PentingNilai Retry Time for Other Issues harus lebih kecil daripada Retry Time for Failed Connections.
Enable Throttling for Full Data Synchronization
Selama tahap sinkronisasi penuh, DTS mengonsumsi resource baca dan tulis dari database sumber dan tujuan, yang dapat meningkatkan beban database. Untuk mengurangi beban pada database sumber dan tujuan, Anda dapat mengatur batas laju untuk tugas sinkronisasi penuh dengan mengonfigurasi parameter Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s).
Catatan-
Item konfigurasi ini hanya tersedia ketika Synchronization Types diatur ke Full Data Synchronization.
-
Anda juga dapat menyesuaikan laju sinkronisasi penuh setelah instans sinkronisasi berjalan.
Enable Throttling for Incremental Data Synchronization
Anda juga dapat mengatur batas laju untuk tugas sinkronisasi inkremental. Untuk mengurangi tekanan pada database tujuan, atur RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
Environment Tag
Anda dapat memilih label lingkungan untuk mengidentifikasi instans berdasarkan kebutuhan Anda. Tidak diperlukan konfigurasi dalam contoh ini.
Actual Write Code
Anda dapat memilih pengkodean karakter untuk data yang ditulis ke database tujuan berdasarkan kebutuhan Anda.
Configure ETL
Pilih apakah akan mengaktifkan fitur ekstrak, transformasi, muat (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL?. Nilai yang valid:
-
Yes: Mengaktifkan fitur ETL. Masukkan pernyataan pemrosesan data di editor kode. Untuk informasi lebih lanjut, lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data.
-
No: Menonaktifkan fitur ETL.
Monitoring and Alerting
Tentukan apakah akan mengonfigurasi peringatan. Jika sinkronisasi gagal atau latensi melebihi ambang batas yang ditentukan, notifikasi dikirim ke kontak peringatan.
-
No: Tidak ada peringatan yang dikonfigurasi.
-
Yes: Konfigurasi peringatan dengan mengatur ambang batas peringatan dan menentukan notifikasi peringatan. Untuk informasi lebih lanjut, lihat Konfigurasi pemantauan dan peringatan selama konfigurasi tugas.
-
-
Simpan tugas dan jalankan pemeriksaan awal.
-
Untuk melihat parameter API untuk mengonfigurasi instans ini, arahkan kursor ke tombol Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters di gelembung.
-
Jika Anda telah selesai melihat parameter API, klik Next: Save Task Settings and Precheck di bagian bawah halaman.
Catatan-
Sebelum pekerjaan sinkronisasi dimulai, DTS menjalankan pemeriksaan awal. Pekerjaan hanya dapat dimulai setelah semua item pemeriksaan awal lolos.
-
Jika pemeriksaan awal gagal, klik View Details untuk item yang gagal. Perbaiki masalah sesuai petunjuk, lalu jalankan kembali pemeriksaan awal.
-
Jika pemeriksaan awal mengembalikan peringatan:
-
Jika item pemeriksaan gagal dan tidak dapat diabaikan, klik View Details di sebelah item tersebut. Ikuti instruksi untuk memperbaiki masalah, lalu jalankan kembali pemeriksaan awal.
-
Untuk item pemeriksaan yang dapat diabaikan, Anda dapat mengklik Confirm Alert Details, Ignore, OK, dan Precheck Again secara berurutan untuk melewati peringatan dan menjalankan kembali pemeriksaan awal. Jika Anda memilih untuk mengabaikan item peringatan, hal ini dapat menyebabkan masalah seperti inkonsistensi data dan menimbulkan risiko bagi bisnis Anda.
-
-
Beli instans.
-
Ketika Success Rate mencapai 100%, klik Next: Purchase Instance.
-
Di halaman Purchase, pilih metode penagihan dan spesifikasi link untuk instans sinkronisasi data. Tabel berikut menjelaskan parameter-parameter ini secara detail.
Kategori
Parameter
Deskripsi
New Instance Class
Metode Penagihan
-
Langganan: Anda membayar saat membuat instans. Ini cocok untuk kebutuhan jangka panjang dan lebih hemat biaya dibandingkan bayar sesuai penggunaan. Semakin lama durasi langganan, semakin tinggi diskonnya.
-
Bayar sesuai penggunaan: Anda dikenai biaya per jam. Ini cocok untuk kebutuhan jangka pendek. Anda dapat melepas instans segera setelah digunakan untuk menghemat biaya.
Konfigurasi Kelompok Sumber Daya
Kelompok sumber daya tempat instans berada. Default adalah kelompok sumber daya default. Untuk informasi lebih lanjut, lihat Apa itu Resource Management?.
Spesifikasi Link
DTS menyediakan spesifikasi sinkronisasi dengan tingkat kinerja berbeda. Spesifikasi link sinkronisasi memengaruhi laju sinkronisasi. Anda dapat memilih spesifikasi berdasarkan skenario bisnis Anda. Untuk informasi lebih lanjut, lihat Spesifikasi link sinkronisasi data.
Durasi Langganan
Dalam mode langganan, pilih durasi dan jumlah untuk instans langganan. Anda dapat memilih langganan bulanan dari 1 hingga 9 bulan, atau langganan tahunan selama 1, 2, 3, atau 5 tahun.
CatatanOpsi ini hanya tersedia ketika metode penagihan adalah Subscription.
-
-
Setelah menyelesaikan konfigurasi, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
-
Klik Buy and Start. Di kotak dialog OK, klik OK.
Anda dapat melihat progres tugas di halaman Data Synchronization.
-
Pemetaan
Di area Selected Objects, arahkan kursor ke nama topik tujuan.
Klik tombol Edit yang muncul di sebelah nama topik tujuan.
Di kotak dialog Edit Table, konfigurasikan pengaturan pemetaan.
CatatanKotak dialog Edit Schema untuk pengaturan tingkat database dan memiliki lebih sedikit parameter yang dapat dikonfigurasi dibandingkan kotak dialog Edit Table, yang untuk pengaturan tingkat tabel.
Jika Anda tidak menyinkronkan seluruh database, Anda tidak dapat memodifikasi parameter Name of target Topic dan Number of Partitions di kotak dialog Edit Schema.
Parameter
Deskripsi
Name of target Topic
Topik tujuan tempat DTS menulis data dari tabel sumber. Secara default, ini adalah Topic yang Anda pilih di bagian Destination Database selama langkah Configurations for Source and Destination Databases.
PentingJika database tujuan adalah instance Alibaba Cloud Message Queue for Apache Kafka, topik yang ditentukan harus ada di instance Kafka tujuan. Jika tidak, tugas sinkronisasi data gagal. Jika database tujuan adalah database Kafka yang dikelola sendiri dan instans sinkronisasi mencakup tugas sinkronisasi skema, DTS mencoba membuat topik yang ditentukan di database tujuan.
Jika Anda mengubah Name of target Topic, DTS menulis data ke topik baru tersebut.
Filter Conditions
Untuk informasi lebih lanjut, lihat Atur Kondisi Filter.
Number of Partitions
Jumlah partisi di topik tujuan.
Partition Key
Parameter ini tersedia ketika Anda mengatur Policy for Shipping Data to Kafka Partitions ke Ship Data to Separate Partitions Based on Hash Values of Primary Keys. Anda dapat memilih satu atau beberapa kolom sebagai kunci partisi. DTS menghitung nilai hash berdasarkan kunci ini dan mendistribusikan baris ke partisi-partisi topik tujuan.
CatatanAnda dapat memilih Partition Key hanya di kotak dialog Edit Table.
Klik OK.
FAQ
Apakah saya dapat memodifikasi Kafka Data Compression Format?
Ya. Anda dapat menggunakan fitur Modify synchronization objects untuk memodifikasinya.
Apakah saya dapat memodifikasi Message acknowledgement mechanism?
Ya. Anda dapat menggunakan fitur Modify synchronization objects untuk memodifikasinya.