All Products
Search
Document Center

:Konfigurasikan sumber data untuk sinkronisasi data dari Oracle

Last Updated:Jul 06, 2025

Sebelum menyinkronkan data dari Oracle ke Hologres secara real-time, gunakan langkah-langkah dalam topik ini untuk mengonfigurasi sumber data. Konfigurasi mencakup lingkungan jaringan, daftar putih, dan izin. Anda perlu mengonfigurasi baik sumber data Oracle maupun tujuan Hologres.

Prasyarat

Pastikan operasi berikut telah dilakukan sebelum mengonfigurasi sumber data:
  • Siapkan sumber data: Pastikan sumber data Oracle dan tujuan Hologres telah dibuat.
  • Rencanakan dan siapkan sumber daya: Grup sumber daya eksklusif untuk Data Integration harus sudah dibeli dan dikonfigurasi. Untuk informasi lebih lanjut, lihat Rencanakan dan Konfigurasikan Sumber Daya.
  • Evaluasi dan rencanakan lingkungan jaringan: Pilih metode koneksi jaringan sesuai dengan kebutuhan bisnis Anda dan hubungkan sumber data ke grup sumber daya eksklusif untuk Data Integration. Setelah terhubung, konfigurasikan pengaturan akses seperti vSwitches dan daftar putih.
    • Jika sumber data dan grup sumber daya eksklusif berada di wilayah dan virtual private cloud (VPC) yang sama, mereka akan terhubung secara otomatis.
    • Jika berada di lingkungan jaringan berbeda, hubungkan menggunakan metode seperti gateway VPN.

Informasi latar belakang

Untuk menyinkronkan data dari sumber ke tujuan, pastikan bahwa sumber data dan grup sumber daya eksklusif untuk Data Integration terhubung. Grup sumber daya tersebut juga harus dapat mengakses sumber data. Selain itu, sumber data Oracle hanya boleh berisi versi database, format penyandian karakter, dan tipe data yang didukung oleh Data Integration.
  • Konfigurasikan Daftar Putih untuk Sumber Data
    Jika sumber data dan grup sumber daya eksklusif berada di VPC yang sama, tambahkan blok CIDR dari grup sumber daya eksklusif ke daftar putih sumber data. Ini memastikan akses grup sumber daya ke sumber data.VPC connection
  • Buat Akun dan Berikan Izin

    Buat akun yang dapat digunakan untuk mengakses sumber data, membaca data dari sumber, dan menulis data ke tujuan selama proses sinkronisasi.

  • Periksa Versi Sumber Data Oracle

    Sinkronisasi data dari Oracle secara real-time diimplementasikan menggunakan utilitas Oracle LogMiner untuk menganalisis file log. Hanya database Oracle 10g, 11g, 12c non-CDB, 18c non-CDB, dan 19c non-CDB yang didukung oleh node sinkronisasi data real-time di DataWorks. Database Oracle 12c CDB, 18c CDB, dan 19c CDB tidak didukung. Database Oracle versi 12c atau yang lebih baru dapat berfungsi sebagai CDB untuk menampung beberapa PDB.

    1. Jalankan salah satu pernyataan berikut untuk melihat versi database Oracle:
      • Pernyataan 1:
        select * from v$version;
      • Pernyataan 2:
        select version from v$instance;
    2. Jika versi database Oracle adalah 12c, 18c, atau 19c, jalankan pernyataan berikut untuk memeriksa apakah database dapat berfungsi sebagai CDB. Jika database Oracle dapat berfungsi sebagai CDB, database tersebut tidak didukung oleh node sinkronisasi data real-time Data Integration di DataWorks.
      select name,cdb,open_mode,con_id from v$database;
    Catatan Ubah versi database Oracle yang tidak didukung oleh node sinkronisasi data real-time Data Integration di DataWorks. Jika tidak, Anda tidak dapat menyinkronkan data dari Oracle secara real-time menggunakan Data Integration.
  • Aktifkan Pembuatan File Log Arsip Tingkat Database dan File Redo Log serta Aktifkan Logging Tambahan Tingkat Database
    Aktifkan pembuatan file log arsip tingkat database, file redo log, dan logging tambahan untuk database Oracle yang dikonfigurasi sebagai sumber data.
    • File log arsip: Oracle mengarsipkan semua file redo log sebagai file log arsip yang digunakan untuk memulihkan database jika terjadi kegagalan.
    • File redo log: Oracle menggunakan file redo log untuk memastikan bahwa transaksi database dapat dieksekusi ulang. Dengan cara ini, data dapat dipulihkan jika terjadi kegagalan seperti pemadaman listrik.
    • Contohnya, jika pencatatan tambahan tidak diaktifkan, setelah menjalankan pernyataan UPDATE, file redo log hanya mencatat nilai bidang yang diubah saat pernyataan UPDATE dieksekusi. Jika pencatatan tambahan diaktifkan, file redo log mencatat nilai bidang sebelum dan sesudah modifikasi. Kondisi yang digunakan untuk memodifikasi bidang tujuan juga dicatat. Saat terjadi pengecualian seperti pemadaman listrik di database, Anda dapat memulihkan data berdasarkan detail modifikasi tersebut.

      Kami merekomendasikan agar Anda mengaktifkan logging tambahan untuk kolom kunci utama atau indeks unik.
      • Setelah mengaktifkan logging tambahan untuk kolom kunci utama, kolom yang membentuk kunci utama dicatat dalam log jika database diperbarui.
      • Setelah mengaktifkan logging tambahan untuk kolom indeks unik, kolom yang membentuk kunci unik atau indeks bitmap dicatat dalam log jika kolom dimodifikasi.
    Sebelum menyinkronkan data dari database Oracle secara real-time menggunakan Data Integration di DataWorks, pastikan bahwa pembuatan file log arsip tingkat database dan logging tambahan diaktifkan. Untuk memeriksa apakah pembuatan file log arsip tingkat database dan logging tambahan diaktifkan, jalankan pernyataan SQL berikut:
    select log_mode, supplemental_log_data_pk, supplemental_log_data_ui from v$database;
    • Nilai balik ARCHIVELOG dari parameter log_mode menunjukkan bahwa pembuatan file log arsip tingkat database diaktifkan. Jika nilai ARCHIVELOG tidak dikembalikan, Anda harus mengaktifkan pembuatan file log arsip tingkat database.
    • Nilai balik YES dari parameter supplemental_log_data_pk dan supplemental_log_data_ui menunjukkan bahwa logging tambahan diaktifkan. Jika nilai baliknya adalah FALSE, Anda harus mengaktifkan logging tambahan.
  • Periksa Format Penyandian Karakter

    Pastikan database Oracle hanya berisi format penyandian karakter yang didukung oleh Data Integration untuk mencegah kegagalan sinkronisasi data. Format penyandian berikut didukung: UTF-8, AL32UTF8, AL16UTF16, dan ZHS16GBK.

  • Periksa Tipe Data

    Pastikan database Oracle hanya berisi tipe data yang didukung oleh Data Integration untuk mencegah kegagalan sinkronisasi data. Tipe data berikut tidak didukung untuk sinkronisasi data real-time: LONG, BFILE, LONG RAW, dan NCLOB.

Batasan

  • Fitur logging tambahan hanya dapat dikonfigurasikan di database Oracle utama. Logging tambahan dapat diaktifkan untuk database utama atau sekunder.
  • Maksimum 500 GB data inkremental dapat disinkronkan dari instance Oracle secara real-time setiap hari.
  • Hanya database Oracle 10g, 11g, 12c non-CDB, 18c non-CDB, dan 19c non-CDB yang didukung oleh node sinkronisasi data real-time di DataWorks. Database Oracle 12c CDB, 18c CDB, dan 19c CDB tidak didukung. Database Oracle versi 12c atau yang lebih baru dapat berfungsi sebagai CDB untuk menampung beberapa PDB.

Tindakan pencegahan

  • Untuk node sinkronisasi data real-time Data Integration, Anda hanya dapat berlangganan file redo log online di database Oracle utama. Anda hanya dapat berlangganan file log arsip di database Oracle sekunder. Jika Anda memiliki persyaratan tinggi pada ketepatan waktu node sinkronisasi data real-time, kami sarankan Anda berlangganan log perubahan inkremental real-time di database Oracle utama. Jika Anda berlangganan file log arsip di database Oracle sekunder, latensi minimum antara pembuatan dan penerimaan log arsip ditentukan oleh interval di mana Oracle secara otomatis beralih antara dua file log arsip. Dalam hal ini, ketepatan waktu node sinkronisasi data real-time tidak dapat dijamin.
  • Simpan file log arsip database Oracle selama tiga hari. Saat sejumlah besar data ditulis ke database Oracle, kecepatan sinkronisasi data real-time mungkin lebih lambat daripada kecepatan pembuatan log. Ini memberikan waktu yang cukup bagi Anda untuk melacak data saat masalah terjadi selama sinkronisasi data. Anda dapat menganalisis file log arsip untuk menyelesaikan masalah dan memulihkan data.
  • Node sinkronisasi data real-time Data Integration tidak dapat melakukan operasi truncate pada tabel tanpa kunci utama di database Oracle. Node sinkronisasi data real-time menganalisis log tabel tanpa kunci utama dengan melakukan operasi logminer. Dalam proses ini, node sinkronisasi data real-time menggunakan rowid untuk menemukan baris. Jika operasi truncate dilakukan, nilai rowid di tabel diubah. Ini menyebabkan kesalahan dalam pelaksanaan node sinkronisasi data real-time.
  • Saat menjalankan node sinkronisasi data real-time di server DataWorks dengan konfigurasi 24 vCPU dan 192 GiB memori, pemanfaatan satu inti CPU pada server database Oracle bervariasi berdasarkan status log di database. Jika sebagian besar log bukan log update dan node sinkronisasi dapat memproses sekitar 30 hingga 50 ribu catatan data setiap detik, pemanfaatan satu inti CPU bisa 25% hingga 35%. Jika sebagian besar log adalah log update, server DataWorks mungkin mengalami hambatan kinerja selama sinkronisasi data real-time, dan pemanfaatan satu inti CPU pada server database Oracle hanya 1% hingga 5%.

Prosedur

  1. Konfigurasikan Daftar Putih untuk Database Oracle.
    Tambahkan blok CIDR dari VPC tempat grup sumber daya eksklusif berada ke daftar putih database Oracle.
    1. Lihat dan Catat Alamat IP Elastis (EIP) dan Blok CIDR dari Grup Sumber Daya Eksklusif untuk Data Integration.
      1. Masuk ke Konsol DataWorks.
      2. Di panel navigasi di sebelah kiri, klik Resource Groups.
      3. Di tab Exclusive Resource Groups, temukan grup sumber daya eksklusif untuk Data Integration dan klik View Information di kolom Tindakan.
      4. Di kotak dialog Grup Sumber Daya Eksklusif, lihat dan catat nilai parameter EIPAddress dan CIDR Blocks.
      5. Di tab Exclusive Resource Groups, temukan grup sumber daya eksklusif untuk Data Integration dan klik Network Settings di kolom Tindakan.
      6. Di tab VPC Binding pada halaman yang muncul, lihat dan catat CIDR block of the vSwitch yang terkait dengan grup sumber daya eksklusif untuk Data Integration.
    2. Tambahkan Alamat IP Elastis (EIP) dari Grup Sumber Daya Eksklusif dan Blok CIDR ke Daftar Putih Database Oracle.
  2. Buat Akun dan Berikan Izin yang Diperlukan kepada Akun.
    Buat akun untuk masuk ke database. Akun tersebut harus memiliki izin yang diperlukan pada database Oracle.
    1. Buat Akun.
      Untuk informasi lebih lanjut, lihat Buat Akun Database Oracle.
    2. Berikan Izin kepada Akun.
      Jalankan pernyataan berikut untuk memberikan izin kepada akun. Ganti Akun untuk sinkronisasi data dengan akun yang dibuat saat Anda menjalankan pernyataan tertentu.
      grant create session to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk mengakses database.
      grant connect to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk terhubung ke database.
      grant select on nls_database_parameters to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk menanyakan pengaturan nls_database_parameters.
      grant select on all_users to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk menanyakan semua pengguna di database.
      grant select on all_objects to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk menanyakan semua objek di database.
      grant select on DBA_MVIEWS to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa materialized view database.
      grant select on DBA_MVIEW_LOGS to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat log materialized view database.
      grant select on DBA_CONSTRAINTS to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat batasan pada semua tabel database.
      grant select on DBA_CONS_COLUMNS to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat informasi tentang semua kolom di bawah batasan yang ditentukan pada semua tabel database.
      grant select on all_tab_cols to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat informasi tentang kolom dalam tabel, tampilan, dan kluster database.
      grant select on sys.obj$ to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat objek di database. sys.obj$ menunjukkan tabel objek yang terkandung dalam tabel kamus data. Tabel objek berisi semua objek.
      grant select on SYS.COL$ to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat definisi kolom dalam tabel database. SYS.COL$ menyimpan definisi kolom dalam tabel.
      grant select on sys.USER$ to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat tabel sistem database. sys.USER$ menunjukkan layanan sesi pengguna default.
      grant select on sys.cdef$ to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat tabel sistem database.
      grant select on sys.con$ to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat batasan database. sys.con$ mencatat batasan.
      grant select on all_indexes to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat semua indeks database.
      grant select on v_$database to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan v_$database database.
      grant select on V_$ARCHIVE_DEST to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan V_$ARCHIVE_DEST database.
      grant select on v_$log to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan v_$log database. v_$log menampilkan informasi log tentang file kontrol.
      grant select on v_$logfile to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan v_$logfile database. v_$logfile berisi informasi tentang file redo log.
      grant select on v_$archived_log to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan v$archived_log database. v$archived_log berisi informasi tentang log yang diarsipkan.
      grant select on V_$LOGMNR_CONTENTS to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan V_$LOGMNR_CONTENTS database.
      grant select on DUAL to 'Akun untuk sinkronisasi data';   // Otorisasi akun sinkronisasi untuk melihat tabel DUAL database. DUAL adalah tabel virtual yang berisi aturan sintaks SELECT. Di Oracle, hanya satu catatan yang disimpan dalam tabel DUAL.
      grant select on v_$parameter to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan v_$parameter database. v$parameter adalah tabel kamus dinamis yang menyimpan nilai parameter di database.
      grant select any transaction to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat transaksi database.
      grant execute on SYS.DBMS_LOGMNR to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk menggunakan alat LOGMNR. Alat LOGMNR membantu Anda menganalisis transaksi dan mengambil kembali data yang hilang.
      grant alter session to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memodifikasi konfigurasi koneksi database.
      grant select on dba_objects to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk melihat semua objek database.
      grant select on v_$standby_log to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk memeriksa tampilan v_$standby_log database. v_$standby_log berisi log yang diarsipkan dari database sekunder.
      grant select on v_$ARCHIVE_GAP to 'Akun untuk sinkronisasi data';  // Otorisasi akun sinkronisasi untuk menanyakan log yang diarsipkan yang hilang.
      Untuk menyinkronkan data offline penuh, jalankan pernyataan berikut untuk memberikan izin query pada semua tabel kepada akun sinkronisasi:
      grant select any table to 'Akun untuk sinkronisasi data';
      Di Oracle 12c dan versi yang lebih baru, jalankan pernyataan berikut untuk memberikan izin penambangan log kepada akun sinkronisasi. Fitur penambangan log sudah ada di Oracle versi sebelum 12c. Anda tidak perlu menjalankan pernyataan ini di versi tersebut.
      grant LOGMINING TO 'Akun untuk sinkronisasi data';
  3. Aktifkan Pembuatan File Log Arsip dan Logging Tambahan, serta Ganti File Redo Log.
    Masuk ke database utama dan lakukan langkah-langkah berikut:
    1. Jalankan pernyataan SQL berikut untuk mengaktifkan pembuatan file log arsip:
      shutdown immediate;
      startup mount;
      alter database archivelog;
      alter database open;
    2. Aktifkan logging tambahan.

      Pernyataan SQL:

      alter database add supplemental log data(primary key) columns; // Aktifkan logging tambahan untuk kolom kunci utama.
      alter database add supplemental log data(unique) columns; // Aktifkan logging tambahan untuk kolom indeks unik.
    3. Ganti file redo log.
      Setelah mengaktifkan logging tambahan, jalankan pernyataan berikut beberapa kali untuk mengganti file redo log. Kami sarankan Anda menjalankan pernyataan berikut lima kali:
      alter system switch logfile;
      Catatan Ini memastikan bahwa data dapat ditulis ke file log berikutnya setelah file log saat ini penuh. Data tentang operasi historis tidak akan hilang. Ini memudahkan pemulihan data.
  4. Periksa Format Penyandian Karakter Database.
    Jalankan pernyataan berikut untuk memeriksa format penyandian karakter database:
    select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
    • v$nls_parameters menyimpan nilai parameter di database.
    • NLS_CHARACTERSET menunjukkan set karakter database. NLS_NCHAR_CHARACTERSET menunjukkan set karakter nasional. Kedua set ini digunakan untuk menyimpan data tipe karakter.
    Jika database berisi format penyandian karakter yang tidak didukung untuk sinkronisasi data, ubah format tersebut sebelum menyinkronkan data.
  5. Periksa Tipe Data Tabel di Database.
    Jalankan pernyataan SELECT untuk menanyakan tipe data tabel di database. Contoh pernyataan yang dijalankan untuk menanyakan tipe data tabel 'tablename':
    select COLUMN_NAME,DATA_TYPE from all_tab_columns where TABLE_NAME='tablename';
    • COLUMN_NAME: nama kolom.
    • DATA_TYPE: tipe data kolom.
    • all_tab_columns: tampilan yang menyimpan informasi tentang semua kolom dalam tabel database.
    • TABLE_NAME: nama tabel untuk query. Saat Anda menjalankan pernyataan di atas, ganti 'tablename' dengan nama tabel untuk query.
    Jalankan pernyataan select * from 'tablename'; untuk menanyakan informasi tentang tabel yang diinginkan dan mendapatkan tipe data.
    Jika tabel berisi salah satu tipe data ini, hapus tabel dari daftar solusi sinkronisasi real-time atau ubah tipe data sebelum menyinkronkan data.

Apa yang harus dilakukan selanjutnya

Setelah sumber data dikonfigurasi, sumber, tujuan, dan grup sumber daya eksklusif untuk Data Integration akan terhubung. Grup sumber daya eksklusif tersebut dapat digunakan untuk mengakses sumber data. Anda dapat menambahkan sumber dan tujuan ke DataWorks, serta mengaitkannya dengan solusi sinkronisasi data saat membuat solusi tersebut.

Untuk informasi lebih lanjut tentang cara menambahkan sumber data, lihat Tambahkan Sumber Data.