Mengonfigurasi database Oracle Amazon RDS

  1. Pastikan database Anda berjalan dalam mode ARCHIVELOG. Untuk melakukannya, login ke database Oracle Anda dan jalankan perintah berikut pada perintah SQL:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Jika hasilnya adalah ARCHIVELOG, lanjutkan ke langkah c.
    2. Jika hasilnya adalah NOARCHIVELOG, Anda harus mengaktifkan mode ARCHIVELOG untuk database Anda.
    3. File log yang diarsipkan menggunakan ruang disk, jadi sebaiknya konfigurasikan parameter DB_RECOVERY_FILE_DEST_SIZE untuk database Anda. Gunakan parameter ini untuk menentukan (dalam byte) batas keras pada total ruang yang akan digunakan oleh file pemulihan database target. Dengan menetapkan parameter ini, Anda dapat mengelola kompromi antara melindungi database agar tidak kehabisan ruang disk dan streaming gagal karena kehilangan posisi log.
    4. Tentukan kebijakan retensi data untuk database Anda dengan menjalankan perintah ini:
      exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);
      Sebaiknya Anda menyimpan cadangan dan log arsip minimal selama 4 hari, dan 7 hari direkomendasikan.
    5. Konfigurasikan kebijakan rotasi file log Oracle. Sebaiknya tetapkan ukuran file log maksimum ke nilai yang lebih rendah dari 1 GB.
  2. Aktifkan data log tambahan. Untuk melakukannya, pertama-tama aktifkan logging tambahan tingkat database minimal dengan menjalankan perintah berikut:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

    Selanjutnya, pilih apakah akan mengaktifkan logging untuk tabel tertentu atau seluruh database.

    Untuk mencatat perubahan hanya untuk tabel tertentu, 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 perubahannya ingin Anda catat ke dalam log.

    Untuk mereplikasi sebagian besar atau semua tabel dalam database, pertimbangkan untuk mengaktifkan logging untuk seluruh database.

    Di perintah SQL, jalankan perintah berikut untuk mengaktifkan data log tambahan untuk seluruh database:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
  3. Berikan hak istimewa yang sesuai ke akun pengguna yang akan digunakan untuk terhubung ke database Anda. Untuk melakukannya, jalankan perintah berikut:

    GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    GRANT CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USER_NAME;
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','USER_NAME','EXECUTE');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR_D','USER_NAME','EXECUTE');
    GRANT SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;

    Jika organisasi Anda tidak mengizinkan pemberian izin GRANT SELECT ANY TABLE, gunakan solusi yang dijelaskan di bagian Oracle change data capture (CDC) di halaman FAQ Datastream.

    Jika database sumber Anda adalah Oracle 12c atau yang lebih baru, berikan hak istimewa tambahan berikut:

    GRANT LOGMINING TO USER_NAME;
  4. Berikan akses akun pengguna SELECT ke tampilan DBA_EXTENTS di database Anda. Hak istimewa ini memungkinkan Anda menggunakan pengisian ulang berbasis ROWID untuk sumber Oracle:

    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;

Langkah selanjutnya

  • Pelajari lebih lanjut cara kerja Datastream dengan sumber Oracle.