- Pastikan database Anda berjalan dalam mode
ARCHIVELOG
.
Untuk melakukannya, login ke database Oracle Anda dan jalankan perintah berikut pada prompt SQL:
- Jika hasilnya adalah
ARCHIVELOG
, lanjutkan ke langkah 2. - Jika hasilnya adalah
NOARCHIVELOG
, Anda harus mengaktifkan modeARCHIVELOG
untuk database Anda. - Jalankan perintah berikut saat login sebagai
SYSDBA
:SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
- 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.
- Tentukan kebijakan retensi data untuk database Anda dengan menjalankan perintah Oracle Recovery Manager (RMAN) berikut:
TARGET / CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
Sebaiknya simpan cadangan dan arsip log selama minimal 4 hari, dan opsi yang direkomendasikan adalah 7 hari.
- 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.
- Aktifkan data log tambahan. Untuk melakukannya, pertama-tama aktifkan logging tambahan level database minimal dengan menjalankan perintah berikut:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Selanjutnya, pilih apakah akan mengaktifkan logging untuk tabel tertentu atau seluruh database.
Untuk mencatat perubahan hanya pada 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 ingin Anda catat perubahannya.
Untuk mereplikasi sebagian besar 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;
- 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 USERNAME; GRANT SELECT ON SYS.V$DATABASE TO USERNAME; GRANT SELECT ON SYS.V$ARCHIVED_LOG 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 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 Pengambilan data perubahan Oracle (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;
SELECT LOG_MODE FROM V$DATABASE;