Impostazioni e requisiti log transazioni

Oracle GoldenGate si basa sui redo log per acquisire i dati necessari per replicare le transazioni di origine. I redo log Oracle nel sistema di origine devono essere configurati correttamente prima di avviare l'elaborazione di Oracle GoldenGate.

In questa sezione vengono descritti i livelli di log riportati di seguito che si applicano a Oracle GoldenGate. Il livello di log utilizzato dipende dalle funzioni di Oracle GoldenGate in uso.

Nota: il volume di redo viene aumentato in base al log richiesto. È possibile attendere fino a quando non si è pronti per avviare l'elaborazione di Oracle GoldenGate per abilitare il log.

Questa tabella mostra i casi d'uso di Oracle GoldenGate per le diverse proprietà di log.

Log, opzione Nome comando Descrizione Caso d'uso
Modalità di registrazione forzata ALTER DATABASE FORCE LOGGING; Forza la registrazione di tutte le transazioni e i caricamenti. Fortemente consigliato per tutti i casi d'uso di Oracle GoldenGate. FORCE LOGGING sostituisce qualsiasi impostazione NOLOGGING a livello di tabella.

Log supplementare minimo a livello di database

Vedere Abilita log replica database sottoinsieme.

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; Abilita la registrazione supplementare minima per aggiungere informazioni sull'incatenamento delle righe al redo log. Obbligatorio per tutti i casi d'uso di Oracle GoldenGate
Log supplementare a livello di schema [ADD SCHEMATRANDATA](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-5DA7C3DC-5D87-4A8B-AD23-6EF587A5CF41)

Abilita il log supplementare incondizionato della chiave primaria e il log supplementare condizionale delle chiavi univoche e delle chiavi esterne di tutte le tabelle di uno schema. Tutte queste chiavi insieme sono note come colonne di pianificazione.

Questa impostazione garantisce inoltre che qualsiasi nuovo oggetto creato in questo schema disponga del log supplementare appropriato.

Abilita il log per tutte le tabelle correnti e future nello schema. Se le colonne chiave primaria, chiave univoca e chiave esterna non sono identiche sia all'origine che alla destinazione, utilizzare ALLCOLS.
Log supplementare a livello di schema con log incondizionato per tutte le colonne supportate. Per informazioni sui tipi di colonna non supportati, vedere Abilita log supplementare a livello di schema. ADD SCHEMATRANDATA con l'opzione ALLCOLS

Abilita il log supplementare incondizionato di tutte le colonne di una tabella per tutte le tabelle di uno schema.

Questa impostazione garantisce inoltre che qualsiasi nuovo oggetto creato in questo schema disponga del log supplementare appropriato.

Utilizzato per le configurazioni bidirezionali e attive-attive in cui vengono controllati tutti i valori di colonna, non solo le colonne modificate, quando si tenta di eseguire un aggiornamento o un'eliminazione. Ciò richiede più risorse, ma consente il massimo livello di convalida dei dati in tempo reale e quindi il rilevamento dei conflitti.

Questo metodo deve essere utilizzato anche se utilizzeranno il parametro HANDLECOLLISIONS per i caricamenti iniziali.

Log supplementare a livello di schema, impostazione minima ADD SCHEMATRANDATA con l'opzione NOSCHEDULINGCOLS

Abilita il log supplementare incondizionato della chiave primaria e di tutti gli indici univoci validi di tutte le tabelle di uno schema.

Questa impostazione garantisce inoltre che qualsiasi nuovo oggetto creato in questo schema disponga del log supplementare appropriato.

Utilizzare solo per Replicat non integrato. Questo è il log minimo richiesto a livello di schema.

Registrazione supplementare a livello di tabella con supporto integrato per Replicat integrato

Vedere Abilita log supplementare a livello di tabella

ADD TRANDATA Abilita la registrazione supplementare incondizionata della chiave primaria e la registrazione supplementare condizionale delle chiavi univoche e delle chiavi esterne di una tabella. Tutte queste chiavi insieme sono note come colonne di pianificazione. Obbligatorio per tutti i casi d'uso di Oracle GoldenGate a meno che non venga utilizzato il log supplementare a livello di schema. Se le colonne chiave primaria, chiave univoca e chiave esterna non sono identiche sia all'origine che alla destinazione, utilizzare ALLCOLS.
Log supplementare a livello di tabella con log incondizionato per tutte le colonne supportate. Per informazioni sui tipi di colonna non supportati, vedere Abilita log supplementare a livello di tabella. ADD TRANDATA con l'opzione ALLCOLS Abilita il log supplementare incondizionato di tutte le colonne della tabella.

Utilizzato per le configurazioni bidirezionali e attive-attive in cui vengono controllati tutti i valori di colonna, non solo le colonne modificate, quando si tenta di eseguire un aggiornamento o un'eliminazione. Ciò richiede più risorse, ma consente il massimo livello di convalida dei dati in tempo reale e quindi il rilevamento dei conflitti.

Può essere utilizzato anche quando le chiavi primaria, univoca e esterna di origine e destinazione non sono uguali o cambiano costantemente tra origine e destinazione.

Log supplementare a livello di tabella, impostazione minima ADD TRANDATA con l'opzione NOSCHEDULINGCOLS Abilita la registrazione supplementare incondizionata della chiave primaria e di tutti gli indici univoci validi di una tabella. Da utilizzare per Replicat non integrato e Replicat non parallelo. Questo è il log minimo richiesto a livello di tabella.
Log supplementare a livello di tabella per le viste Duality relazionali JSON e le tabelle di raccolta JSON. ADD TRANDATA con Duality View name e Collection Table name Abilita la registrazione supplementare per le viste dualità e le tabelle di raccolta specificate. Per le linee guida, vedere Abilita log supplementare per viste di qualità relazionale JSON e tabelle di raccolta JSON. Vedere anche Dettagli del supporto per le viste Duality JSON-Relational e le tabelle di raccolta JSON per ulteriori informazioni.

Abilita log di replica del database set secondario

Oracle consiglia di impostare la modalità di log forzato del database di origine Oracle. La modalità di log forzato forza la registrazione di tutte le transazioni e tutti i caricamenti, sostituendo le impostazioni utente o di memorizzazione con il rispettivo contrario. Ciò garantisce che nessun dato di origine nella configurazione Extract venga perso.

In LogMiner è disponibile una modalità di log supplementare del database granulare denominata Subset Database Replication, che è la modalità consigliata di base per tutti i client Oracle GoldenGate e XStream. Sostituisce la modalità di log supplementare minimo utilizzata in precedenza.

Il log di replica del database subset è abilitato in CDB$ROOT (e tutti gli user-PDB lo ereditano) attualmente.

Nota: il log della chiave primaria a livello di database (PK) e dell'indice univoco (UI) è sconsigliato solo se si replica un subset di tabelle. Puoi utilizzarlo con Live Standby o se Oracle GoldenGate replicherà tutte le tabelle, ad esempio per ridurre i tempi di inattività per una migrazione o un upgrade.

Eseguire i passi riportati di seguito per verificare e abilitare, se necessario, il log di replica del database subset e il log forzato.

  1. Eseguire il login a SQL*Plus come utente con privilegio ALTER SYSTEM.

  2. Eseguire il comando seguente per determinare se il database è in modalità di log supplementare e in modalità di log forzato. Se il risultato è YES per entrambe le query, il database soddisfa i requisiti di Oracle GoldenGate.

    SELECT SUPPLEMENTAL_LOG_DATA_MIN, FORCE_LOGGING FROM V$DATABASE;
  3. Se il risultato è NO per una o entrambe le proprietà, procedere come segue per abilitarle in base alle esigenze:

    ALTER PLUGGABLE DATABASE *pdbname* ADD SUPPLEMENTAL LOG DATA SUBSET DATABASE REPLICATION;
    ALTER DATABASE FORCE LOGGING;
  4. Eseguire il comando seguente per verificare che queste proprietà siano abilitate.

    SELECT SUPPLEMENTAL_LOG_DATA_MIN, FORCE_LOGGING FROM V$DATABASE;

    L'output della query deve essere YES per entrambe le proprietà.

  5. Cambiare i file di log.

    ALTER SYSTEM SWITCH LOGFILE;

Abilita log supplementare a livello di schemi

Oracle GoldenGate supporta il log supplementare a livello di schema. Il log a livello di schema è necessario per i database di origine e di destinazione Oracle quando si utilizza la funzione di replica DDL di Oracle GoldenGate o nel database di origine se è possibile eseguire o eseguire DDL nelle tabelle da replicare. In tutti gli altri casi d'uso, è facoltativo, ma è necessario utilizzare invece il log a livello di tabella (vedere Abilita log supplementare a livello di tabella).

Per impostazione predefinita, il log a livello di schema abilita automaticamente il log supplementare non condizionale della chiave primaria e il log supplementare condizionale delle chiavi univoche e delle chiavi esterne di tutte le tabelle di uno schema. Le opzioni consentono di modificare il log in base alle esigenze.

Nota: Oracle consiglia di utilizzare il log a livello di schema anziché il log a livello di tabella, in quanto garantisce che le nuove tabelle aggiunte a uno schema vengano acquisite se soddisfano le specifiche dei caratteri jolly. Questo metodo è consigliato anche perché qualsiasi modifica alle colonne chiave viene applicata automaticamente anche ai dati di log supplementari. Ad esempio, se una chiave cambia, non è necessario eseguire ADD TRANDATA.

Eseguire i passi riportati di seguito nel sistema di origine per abilitare il log supplementare a livello di schema.

  1. Avviare la riga di comando nel sistema di origine.

  2. Eseguire il comando DBLOGIN con l'alias di un utente nell'area di memorizzazione delle credenziali che dispone del privilegio per abilitare il log supplementare a livello di schema.

    DBLOGIN USERIDALIAS *alias*

    Per ulteriori informazioni su USERIDALIAS e sulle opzioni aggiuntive, vedere USERIDALIAS in Parameters and Functions Reference for Oracle GoldenGate.

  3. Quando si utilizza ADD SCHEMATRANDATA o ADD TRANDATA in un database multi-tenant, è possibile eseguire il login direttamente al PDB ed eseguire il comando. In alternativa, se si esegue il login a livello radice (utilizzando un utente C##), è necessario includere il PDB. Eseguire il comando ADD SCHEMATRANDATA per ogni schema per il quale si desidera acquisire le modifiche ai dati con Oracle GoldenGate.

    ADD SCHEMATRANDATA pdb.schema [ALLCOLS | NOSCHEDULINGCOLS]

    Dove:

    • Senza opzioni, lo schema ADD SCHEMATRANDATA abilita il log supplementare incondizionato sul sistema di origine della chiave primaria e il log supplementare condizionale di tutte le chiavi univoche e le chiavi esterne di tutte le tabelle correnti e future nello schema specificato. Il log non condizionale comporta l'inserimento forzato dei valori di chiave primaria nel log, indipendentemente dal fatto che la chiave sia stata modificata o meno durante l'operazione corrente. Il log condizionale registra tutti i valori di colonna di una chiave esterna o univoca se almeno uno di essi è stato modificato durante l'operazione corrente. L'impostazione predefinita è facoltativa per supportare Replicat non integrato, ma è necessaria per supportare Replicat integrato perché la chiave primaria, le chiavi univoche e le chiavi esterne devono essere tutte disponibili per il server in entrata per calcolare le dipendenze.

    • ALLCOLS può essere utilizzato per abilitare il log supplementare incondizionato di tutte le colonne di una tabella e si applica a tutte le tabelle correnti e future nello schema specificato. Consente di supportare Replicat integrato quando le tabelle di origine e di destinazione dispongono di colonne di pianificazione diverse. Le colonne di programmazione sono la chiave primaria, la chiave univoca e la chiave esterna.

    • NOSCHEDULINGCOLS registra solo i valori della chiave primaria e tutti gli indici univoci validi per le tabelle esistenti nello schema e le nuove tabelle aggiunte in seguito. Questo è il livello minimo richiesto di log a livello di schema ed è valido solo per Replicat in modalità non integrata.

    Nell'esempio seguente, il comando abilita il log supplementare predefinito per lo schema hr.

    ADD SCHEMATRANDATA pdbeast.hr ALLCOLS

    Nell'esempio seguente, il comando abilita il log supplementare solo per la chiave primaria e gli indici univoci validi per lo schema HR.

    ADD SCHEMATRANDATA pdbeast.hr NOSCHEDULINGCOLS

Abilita log supplementare a livello di tavolo

Abilitare il log supplementare a livello di tabella sul sistema di origine nei casi riportati di seguito.

Per abilitare il log supplementare a livello di tabella o utilizzare le funzioni facoltative del comando, attenersi alla procedura riportata di seguito nel sistema di origine.

  1. Eseguire la riga di comando nel sistema di origine.

  2. Eseguire il comando DBLOGIN utilizzando l'alias di un utente nell'area di memorizzazione delle credenziali che dispone del privilegio per abilitare il log supplementare a livello di tabella.

    DBLOGIN USERIDALIAS *alias*

    Per ulteriori informazioni su DBLOGIN e sulle opzioni aggiuntive, vedere USERIDALIAS in Parameters and Functions Reference for Oracle GoldenGate.

  3. Eseguire il comando ADD TRANDATA.

    ADD TRANDATA [*PDB*.]*schema.**table* [, COLS (*columns)*] [, NOKEY] [, ALLCOLS | NOSCHEDULINGCOLS]

    Dove:

    • PDB è il nome del contenitore radice o del pluggable database se la tabella si trova in un container database multi-tenant.

    • schema è lo schema di origine che contiene la tabella.

    • tabella: il nome della tabella. Per istruzioni sulla specifica dei nomi oggetto, vedere Specifica dei nomi oggetto nell'input di Oracle GoldenGate.

    • ADD TRANDATA senza altre opzioni abilita automaticamente la registrazione supplementare incondizionata della chiave primaria e la registrazione supplementare condizionale delle chiavi univoche e delle chiavi esterne della tabella. Il log non condizionale comporta l'inserimento forzato dei valori di chiave primaria nel log, indipendentemente dal fatto che la chiave sia stata modificata o meno durante l'operazione corrente. Il log condizionale registra tutti i valori di colonna di una chiave esterna o univoca se almeno uno di essi è stato modificato durante l'operazione corrente. L'impostazione predefinita è facoltativa per supportare Replicat non integrato (vedere anche NOSCHEDULINGCOLS), ma è necessaria per supportare Replicat integrato perché la chiave primaria, le chiavi univoche e le chiavi esterne devono essere tutte disponibili per il server in entrata per calcolare le dipendenze.

    • ALLCOLS abilita la registrazione supplementare incondizionata di tutte le colonne della tabella. Consente di supportare Replicat integrato quando le tabelle di origine e di destinazione dispongono di colonne di pianificazione diverse. Le colonne di programmazione sono la chiave primaria, la chiave univoca e la chiave esterna.

    • NOSCHEDULINGCOLS è valido solo per Replicat in modalità non integrata. Emette un comando ALTER TABLE con una clausola ADD SUPPLEMENTAL LOG DATA ALWAYS appropriata per il tipo di vincolo univoco definito per la tabella o per tutte le colonne in assenza di un vincolo univoco. Questo comando soddisfa i requisiti di log di base a livello di tabella di Oracle GoldenGate quando non verrà utilizzato il log a livello di schema. Per informazioni su come Oracle GoldenGate seleziona una chiave o un indice, vedere Ensuring Row Uniqueness in Source and Target Table.

    • COLS colonne registra le colonne non chiave necessarie per una clausola KEYCOLS o per l'applicazione di filtri e la manipolazione. Le parentesi sono obbligatorie. Queste colonne verranno registrate oltre alla chiave primaria a meno che non sia presente anche l'opzione NOKEY.

    • NOKEY impedisce la registrazione della chiave primaria o della chiave univoca. Richiede una clausola KEYCOLS nei parametri TABLE e MAP e una clausola COLS nel comando ADD TRANDATA per registrare le colonne KEYCOLS alternative.

  4. Se si utilizza ADD TRANDATA con l'opzione COLS, creare un indice univoco per le colonne nella destinazione per ottimizzare il recupero delle righe. Se si esegue il log di tali colonne come chiave sostitutiva di una clausola KEYCOLS, prendere nota dell'aggiunta della clausola KEYCOLS alle istruzioni TABLE e MAP durante la configurazione dei processi Oracle GoldenGate.

Abilita log supplementare per viste Duality relazionali JSON e tabelle di raccolta JSON

Prima di replicare le viste dualità relazionali JSON e le tabelle di raccolta JSON, è necessario impostare il log supplementare in Oracle GoldenGate. Per impostazione predefinita, il log supplementare non è abilitato per le viste dualità relazionali JSON e le tabelle di raccolta JSON. Quando si abilita il log supplementare per le viste Duality e le tabelle di raccolta, è possibile utilizzare le linee guida riportate di seguito.

Per la procedura di impostazione della registrazione supplementare a livello di tabella, vedere Abilita registrazione supplementare a livello di tabella.

Rimuovi log supplementare a livello di tabella

Se Oracle GoldenGate non richiede più l'acquisizione di una tabella e il parametro TABLE per la tabella è stato rimosso dal file dei parametri Extract oppure TABLEEXCLUDE viene utilizzato per escludere la tabella da un'istruzione con caratteri jolly, è possibile rimuovere il log supplementare dalla tabella.

Nota: se Extract risolve una tabella per la quale non è abilitato il log supplementare, questa verrà interrotta a seconda del tipo di operazione DML.

Se si utilizza DELETE TRANDATA per rimuovere log supplementari, il livello Replicat Identity della tabella viene impostato su NOTHING. È possibile disabilitare il log supplementare utilizzando l'interfaccia Web di Microservices Architecture dalla pagina Servizio di amministrazione, Configurazione, sotto la credenziale creata per un database di origine, oppure eseguire il comando DELETE TRANDATA.

Di seguito è riportata la sintassi per l'emissione di DELETE TRANDATA.

DBLOGIN USERIDALIAS alias_name
DELETE TRANDATA schema.tablename

Per verificare il livello di registrazione supplementare:

INFO TRANDATA schema.tablename