- Verifica che il database sia in esecuzione in modalità
ARCHIVELOG
.
Per farlo, accedi al tuo database Oracle ed esegui questo comando al prompt SQL:
- Se il risultato è
ARCHIVELOG
, vai al passaggio 2. - Se il risultato è
NOARCHIVELOG
, devi abilitare la modalitàARCHIVELOG
per il database. - Esegui i seguenti comandi dopo aver eseguito l'accesso come
SYSDBA
:SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
- I file di log archiviati occupano spazio su disco, quindi ti consigliamo di configurare il parametro DB_RECOVERY_FILE_DEST_SIZE per il tuo database. Utilizza questo parametro per specificare (in byte) il limite rigido relativo allo spazio totale utilizzabile dai file di recupero del database di destinazione. Impostando questo parametro, puoi gestire il compromesso tra la protezione del database da un eventuale esaurimento dello spazio su disco e l'interruzione dello stream a causa della perdita della posizione del log.
- Definisci un criterio di conservazione dei dati per il tuo database eseguendo questi comandi Oracle Recovery Manager (RMAN):
TARGET / CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
Ti consigliamo di conservare i backup e i log di archiviazione per almeno 4 giorni (quelli consigliati sono 7).
- Torna al prompt SQL dello strumento di database che stai utilizzando per configurare il criterio di rotazione dei file di log Oracle. Ti consigliamo di impostare una dimensione massima del file di log non superiore a 512 MB.
- Attiva i dati di log supplementari. Per farlo, abilita prima il logging supplementare a livello di database minimo eseguendo questo comando:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Quindi, scegli se attivare il logging per tabelle specifiche o per l'intero database.
Per registrare le modifiche solo per tabelle specifiche, esegui il seguente comando per ogni tabella da replicare:
ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
Sostituisci quanto segue:
- SCHEMA: il nome dello schema che contiene la tabella.
- TABLE: il nome della tabella per cui vuoi registrare le modifiche.
Per replicare la maggior parte o tutte le tabelle nel database, valuta la possibilità di attivare il logging per l'intero database.
Esegui questo comando per abilitare dati di log supplementari per l'intero database:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
- Concedi i privilegi appropriati all'account utente che verrà utilizzato per la connessione al tuo database. Per farlo, esegui il comando seguente:
GRANT EXECUTE_CATALOG_ROLE TO USER_NAME; GRANT CONNECT TO USER_NAME; GRANT CREATE SESSION TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME; 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;
Se la tua organizzazione non consente di concedere l'autorizzazione
GRANT SELECT ANY TABLE
, utilizza la soluzione descritta nella sezione CDC (Change Data Capture) di Oracle della pagina delle domande frequenti su Datastream.Se il tuo database di origine è Oracle 12c o successivo, dovrai concedere il privilegio aggiuntivo seguente:
GRANT LOGMINING TO USER_NAME;
- Concedi all'account utente
SELECT
l'accesso alla visualizzazioneDBA_EXTENTS
nel database. Questo privilegio ti consente di utilizzare il backfill basato suROWID
per l'origine Oracle:GRANT SELECT ON DBA_EXTENTS TO USER_NAME;
SELECT LOG_MODE FROM V$DATABASE;
Passaggi successivi
- Scopri di più su come funziona Datastream con le origini Oracle.