Datastream mendukung arsitektur multi-tenant Oracle, dengan satu database container (CDB) berisi satu atau beberapa database yang dapat di-plug (PDB). Setiap database plug-in adalah database mandiri dengan ID dan nama unik, serta dapat dikelola secara independen.
Anda dapat mengonfigurasi database Oracle pluggable untuk digunakan dengan metode CDC berikut:Untuk informasi selengkapnya tentang pembaca log biner dan LogMiner API, lihat Menggunakan file log redo database Oracle.
Untuk petunjuk mendetail tentang cara mengonfigurasi database Oracle sumber untuk setiap metode ini, lihat bagian berikut.
Mengonfigurasi database Oracle yang dapat dicolokkan untuk pembaca log biner
Untuk mengonfigurasi database Oracle pluggable agar dapat digunakan dengan metode CDC pembaca log biner, lakukan langkah-langkah berikut:
Pilih salah satu metode berikut untuk mengakses file log Anda:
- Automatic Storage Management (ASM): jika memilih opsi ini, Anda harus membuat koneksi ASM khusus, dan memberikan detailnya saat membuat profil koneksi.
- Database directories: jika memilih opsi ini, Anda perlu membuat objek direktori database yang mengarah ke file log redo dan file log yang diarsipkan, serta memberikan akses
READ
ke direktori kepada pengguna database Anda:
CREATE DIRECTORY
DIRECTORY_NAME_1 as 'ONLINE_REDO_LOGS_PATH '; CREATE DIRECTORYDIRECTORY_NAME_2 as 'ARCHIVED_REDO_LOGS_PATH '; GRANT READ ON DIRECTORYDIRECTORY_NAME_1 toUSER_NAME ; GRANT READ ON DIRECTORYDIRECTORY_NAME_2 toUSER_NAME ;Ganti kode berikut:
- DIRECTORY_NAME_1: nama direktori untuk file log redo online.
- DIRECTORY_NAME_2: nama direktori untuk file log redo yang diarsipkan.
- ONLINE_REDO_LOGS_PATH: jalur ke direktori tempat file log redo online akan disimpan.
- ARCHIVED_REDO_LOGS_PATH: jalur ke direktori tempat file log yang diarsipkan akan disimpan.
- USER_NAME: nama pengguna database yang ingin Anda beri akses
READ
.
Jika memilih metode pembaca log biner dan menggunakan direktori database, Anda perlu memberikan log redo dan nama direktori log yang diarsipkan saat membuat streaming.
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;
- Jika hasilnya adalah
ARCHIVELOG
, lanjutkan ke langkah berikutnya. - 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 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.
- Jika hasilnya adalah
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 Anda menyimpan cadangan dan log arsip minimal selama 4 hari, dan 7 hari direkomendasikan.
Kembali ke perintah SQL dari 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, aktifkan logging tambahan tingkat database minimal terlebih dahulu 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 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, 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 plug-in Anda. Untuk melakukannya, jalankan perintah berikut:
GRANT SELECT ON GV_$LOG TO
USER_NAME ; GRANT SELECT ON GV_$LOGFILE TOUSER_NAME ; GRANT SELECT ON GV_$ARCHIVED_LOG TOUSER_NAME ; GRANT SELECT ON GV_$INSTANCE TOUSER_NAME ; GRANT SELECT ON GV_$STANDBY_LOG TOUSER_NAME ; GRANT SELECT ON V_$INSTANCE TOUSER_NAME ; GRANT SELECT ON V_$PDBS TOUSER_NAME ; GRANT SELECT ON V_$TRANSPORTABLE_PLATFORM TOUSER_NAME ; GRANT SELECT ON V_$DATABASE TOUSER_NAME ; GRANT SELECT ON COL$ TOUSER_NAME ; GRANT SELECT ON DBA_OBJECTS TOUSER_NAME ; GRANT SELECT ON DBA_TABLESPACES TOUSER_NAME ; GRANT SELECT ON DBA_ENCRYPTED_COLUMNS TOUSER_NAME ; GRANT SELECT ON DBA_EXTENTS TOUSER_NAME ; GRANT CONNECT TOUSER_NAME ; GRANT CREATE SESSION TOUSER_NAME ; GRANT SELECT ANY TABLE TOUSER_NAME ; GRANT READ ON DIRECTORY ONLINELOG_DIR TOUSER_NAME ; GRANT READ ON DIRECTORY ARCHIVELOG_DIR TOUSER_NAME ;Ganti USER_NAME dengan nama akun pengguna yang ingin Anda gunakan untuk terhubung ke database.
Mengonfigurasi database Oracle yang dapat dicolokkan untuk LogMiner
Untuk mengonfigurasi database pluggable Oracle yang dihosting sendiri sehingga Anda dapat menggunakannya dengan LogMiner API, lakukan langkah-langkah berikut:
Pastikan database Anda berjalan dalam mode
ARCHIVELOG
. Untuk melakukannya, jalankan perintah berikut dari penampungCDB$ROOT
:SELECT LOG_MODE FROM V$DATABASE;
- 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 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.
- Jika hasilnya adalah
Tentukan kebijakan retensi data untuk database Anda dengan menjalankan perintah Oracle Recovery Manager (RMAN) berikut dari penampung
CDB$ROOT
:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
Perintah ini menentukan kebijakan retensi data untuk semua database yang dapat dicolokkan di database penampung Anda.
Sebaiknya Anda menyimpan cadangan dan log arsip minimal selama 4 hari, dan 7 hari direkomendasikan.
Kembali ke perintah SQL dari 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, aktifkan logging tambahan di database pada tingkat penampung
CDB$ROOT
terlebih dahulu dengan menjalankan perintah berikut:ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Selanjutnya, pilih apakah akan mengaktifkan logging untuk tabel tertentu atau seluruh database pluggable.
Untuk mencatat perubahan hanya untuk tabel tertentu, hubungkan ke penampung database yang dapat dicolokkan 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 perubahannya ingin Anda catat ke dalam log.
Untuk mereplikasi beberapa atau semua tabel dalam 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;
Buat pengguna umum. Pengguna umum memiliki identitas yang sama di penampung
CDB$ROOT
dan di database yang dapat dicolokkan. Pengguna umum dapat terhubung ke dan melakukan operasi dalam penampungCDB$ROOT
, dan dalam database plug-in apa pun yang memiliki hak istimewa. Nama pengguna umum harus diawali denganC##
atauc##
.Berikan hak istimewa yang sesuai kepada pengguna umum yang akan digunakan untuk terhubung ke database Anda. Izin yang berbeda diperlukan di tingkat penampung
CDB$ROOT
dan database yang dapat dicolokkan.- Hubungkan ke penampung
CDB$ROOT
dan jalankan perintah berikut:
GRANT CREATE SESSION TO
USER_NAME ; GRANT SET CONTAINER TOUSER_NAME ; GRANT SELECT ON SYS.V_$DATABASE TOUSER_NAME ; GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TOUSER_NAME ; GRANT EXECUTE ON DBMS_LOGMNR TOUSER_NAME ; GRANT EXECUTE ON DBMS_LOGMNR_D TOUSER_NAME ; GRANT LOGMINING TOUSER_NAME ; GRANT EXECUTE_CATALOG_ROLE TOUSER_NAME ;- Hubungkan ke database pluggable dan jalankan perintah berikut:
GRANT CREATE SESSION TO
USER_NAME ; GRANT SET CONTAINER TOUSER_NAME ; GRANT SELECT ANY TABLE TOUSER_NAME ; GRANT SELECT ON SYS.V_$DATABASE TOUSER_NAME ; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TOUSER_NAME ; GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TOUSER_NAME ;- Hubungkan ke penampung
Berikan akses
SELECT
pengguna umum ke tampilanDBA_EXTENTS
di database Anda. Hak istimewa ini memungkinkan Anda menggunakan pengisian ulang berbasisROWID
untuk sumber Oracle:GRANT SELECT ON DBA_EXTENTS TO
USER_NAME ;
Langkah berikutnya
- Pelajari lebih lanjut cara kerja Datastream dengan sumber Oracle.