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 |
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 |
| 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 |
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.
-
Eseguire il login a SQL*Plus come utente con privilegio
ALTER SYSTEM. -
Eseguire il comando seguente per determinare se il database è in modalità di log supplementare e in modalità di log forzato. Se il risultato è
YESper entrambe le query, il database soddisfa i requisiti di Oracle GoldenGate.SELECT SUPPLEMENTAL_LOG_DATA_MIN, FORCE_LOGGING FROM V$DATABASE; -
Se il risultato è
NOper 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; -
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
YESper entrambe le proprietà. -
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.
-
Avviare la riga di comando nel sistema di origine.
-
Eseguire il comando
DBLOGINcon 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
USERIDALIASe sulle opzioni aggiuntive, vedereUSERIDALIASin Parameters and Functions Reference for Oracle GoldenGate. -
Quando si utilizza
ADD SCHEMATRANDATAoADD TRANDATAin 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 utenteC##), è necessario includere il PDB. Eseguire il comandoADD SCHEMATRANDATAper 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 SCHEMATRANDATAabilita 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. -
ALLCOLSpuò 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. -
NOSCHEDULINGCOLSregistra 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 ALLCOLSNell'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 livello di log richiesto quando non si utilizza il log a livello di schema (vedere Abilita log supplementare a livello di schema). Utilizzare il log a livello di schema o di tabella. Per impostazione predefinita, la registrazione a livello di tabella abilita automaticamente la registrazione supplementare incondizionata della chiave primaria e la registrazione supplementare condizionale delle chiavi univoche e delle chiavi esterne di una tabella. Le opzioni consentono di modificare il log in base alle esigenze.
-
Per impedire la registrazione della chiave primaria per una determinata tabella.
-
Consente di registrare i valori di colonna non chiave a livello di tabella per supportare funzioni specifiche di Oracle GoldenGate, ad esempio l'applicazione di filtri, il rilevamento dei conflitti e la logica di risoluzione.
-
Se le colonne chiave cambiano in una tabella che dispone solo di log supplementari a livello di tabella, è necessario eseguire
ADD TRANDATAnella tabella prima di consentire qualsiasi attività DML nella tabella. -
Per abilitare il log supplementare per le viste JSON Relational Duality (JSON DV) e le tabelle di raccolta JSON, è necessario seguire le linee guida riportate in Abilita log supplementare per le viste JSON Relational Duality e le tabelle di raccolta JSON.
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.
-
Eseguire la riga di comando nel sistema di origine.
-
Eseguire il comando
DBLOGINutilizzando 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
DBLOGINe sulle opzioni aggiuntive, vedereUSERIDALIASin Parameters and Functions Reference for Oracle GoldenGate. -
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 TRANDATAsenza 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 ancheNOSCHEDULINGCOLS), 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. -
ALLCOLSabilita 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 comandoALTER TABLEcon una clausolaADD SUPPLEMENTAL LOG DATA ALWAYSappropriata 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. -
COLScolonne registra le colonne non chiave necessarie per una clausolaKEYCOLSo 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'opzioneNOKEY. -
NOKEYimpedisce la registrazione della chiave primaria o della chiave univoca. Richiede una clausolaKEYCOLSnei parametriTABLEeMAPe una clausolaCOLSnel comandoADD TRANDATAper registrare le colonneKEYCOLSalternative.
-
-
Se si utilizza
ADD TRANDATAcon l'opzioneCOLS, 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 clausolaKEYCOLS, prendere nota dell'aggiunta della clausolaKEYCOLSalle istruzioniTABLEeMAPdurante 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.
-
Abilita replica logica: l'abilitazione della replica logica (utilizzando
ADD TRANDATA) è obbligatoria per l'acquisizione delle modifiche apportate alle viste dualità e alle tabelle di raccolta. Questo processo consente il log supplementare necessario per tenere traccia delle modifiche a livello di documento JSON.Per informazioni dettagliate, vedere
ADD TRANDATA.Sul lato di Oracle AI Database è stata aggiunta una clausola in
CREATE/ALTER DDLper le viste Duality relazionali JSON e le tabelle di raccolta JSON. Questa clausola abilita la registrazione supplementare a livello di vista. Questo log si aggiunge a qualsiasi log esistente nelle tabelle di base.Per informazioni dettagliate, vedere la sezione logical_replication_clause in
CREATE TABLE/CREATE JSON RELATIONAL DUALITY VIEWe i comandiALTER TABLE/ALTER JSON RELATIONAL DUALITY VIEWSin Oracle AI Database SQL Language Reference. -
Modifiche DML per le viste Duality JSON e le tabelle di raccolta JSON: per le operazioni
INSERTeUPDATE, il documento JSON completo e l'attributo chiave_idvengono registrati in modo supplementare. Per le operazioni DELETE, viene registrato solo l'attributo chiave_id. -
Log commit transazione per viste dualità relazionali JSON: il log supplementare per le viste dualità si verifica al momento del commit. Vengono registrate solo le modifiche di rete.
Ad esempio, se si
INSERTun record e siUPDATEquesto record due volte in una transazione che contiene una vista dualità JSON, esiste solo una modifica logica contenente unINSERTcon il record aggiornato. -
Le viste dualità JSON alla replica delle viste dualità JSON utilizzando le tabelle sottostanti: le modifiche alla replica a livello di tabella relazionale di base delle viste dualità sono per lo più efficienti. Una vista dualità posizionata sopra la tabella relazionale sottostante riflette automaticamente tali modifiche in quanto vista. In questo caso, non è necessaria alcuna registrazione supplementare sulle viste Duality.
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