Mengonfigurasi database Oracle yang dapat dicocokkan

Datastream mendukung arsitektur multi-tenant Oracle, dengan satu database container (CDB) berisi satu atau beberapa database pluggable (PDB). Setiap database yang dapat dicocokkan adalah database mandiri dengan ID dan nama unik, serta dapat dikelola secara terpisah.

Untuk mengonfigurasi database pluggable Oracle yang dihosting sendiri sehingga Anda dapat menggunakannya dengan Datastream, lakukan langkah-langkah berikut:

  1. Pastikan database Anda berjalan dalam mode ARCHIVELOG. Untuk melakukannya, jalankan perintah berikut dari container CDB$ROOT:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Jika hasilnya adalah ARCHIVELOG, lanjutkan ke langkah 2.
    2. Jika hasilnya adalah NOARCHIVELOG, Anda harus mengaktifkan mode ARCHIVELOG untuk database Anda.
    3. Jalankan perintah berikut saat login sebagai SYSDBA:
      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
    4. File log yang diarsipkan menggunakan ruang disk, jadi sebaiknya konfigurasi parameter DB_RECOVERY_FILE_DEST_SIZE untuk database Anda. Gunakan parameter ini untuk menentukan (dalam byte) batas pasti pada total ruang yang akan digunakan oleh file pemulihan database target. Dengan menetapkan parameter ini, Anda dapat mengelola penyeimbangan antara melindungi database agar tidak kehabisan ruang disk dan aliran data gagal karena kehilangan posisi log.

  2. Tentukan kebijakan retensi data untuk database Anda dengan menjalankan perintah Oracle Recovery Manager (RMAN) berikut dari container CDB$ROOT:
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;

    Perintah ini menentukan kebijakan retensi data untuk semua database yang dapat dicocokkan dalam database container Anda.

    Sebaiknya simpan cadangan dan arsip log selama minimal 4 hari, dan opsi yang direkomendasikan adalah 7 hari.

  3. Kembali ke prompt SQL alat database yang Anda gunakan untuk mengonfigurasi kebijakan rotasi file log Oracle. Sebaiknya tetapkan ukuran file log maksimum tidak lebih dari 512 MB.
  4. Aktifkan data log tambahan. Untuk melakukannya, pertama-tama aktifkan logging tambahan pada database pada level container CDB$ROOT dengan menjalankan perintah berikut:
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

    Berikutnya, pilih apakah akan mengaktifkan logging untuk tabel tertentu atau seluruh database yang dapat dicocokkan.

    Untuk mencatat perubahan hanya pada tabel tertentu, hubungkan ke container database yang dapat dicocokkan dan jalankan perintah berikut untuk setiap tabel yang ingin Anda replikasi:

    ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

    Ganti kode berikut:

    • SCHEMA: nama skema yang berisi tabel.
    • TABLE: nama tabel yang ingin Anda catat perubahannya.

    Untuk mereplikasi beberapa atau semua tabel di database, sebaiknya aktifkan logging untuk seluruh database.

    Jalankan perintah berikut untuk mengaktifkan data log tambahan untuk seluruh database:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
  5. Membuat pengguna umum. Pengguna umum memiliki identitas yang sama dalam penampung CDB$ROOT dan di database yang dapat dicocokkan. Pengguna umum dapat terhubung ke dan melakukan operasi dalam container CDB$ROOT, dan dalam database yang dapat dicocokkan yang memiliki hak istimewa. Nama pengguna umum harus diawali dengan C## atau c##.
  6. Memberikan hak istimewa yang sesuai kepada pengguna umum yang akan digunakan untuk terhubung ke database Anda. Izin yang berbeda diperlukan pada tingkat container CDB$ROOT dan database yang dapat dicocokkan.
    • Hubungkan ke container CDB$ROOT dan jalankan perintah berikut:
      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USERNAME;
      GRANT SELECT ON SYS.V$DATABASE TO USERNAME;
      GRANT SELECT ON SYS.V$LOGMNR_CONTENTS TO USER_NAME;
      GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME;
      GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME;
      GRANT LOGMINING TO USER_NAME;
      GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;

    • Hubungkan ke database yang dapat dicocokkan dan jalankan perintah berikut:
      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USER_NAME;
      GRANT SELECT ANY TABLE TO USERNAME;
      GRANT SELECT ON SYS.V$DATABASE TO USERNAME;
      GRANT SELECT ON SYS.V$ARCHIVED_LOG TO USER_NAME;
      GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;