Creazione di un'istanza precisa per Oracle mediante estrazione caricamento iniziale
Informazioni sull'aggiunta dell'estrazione del caricamento iniziale mediante il client di amministrazione.
Il metodo di caricamento iniziale è altamente adatto per la creazione di istanze nei seguenti scenari:
-
Caricamento del database di destinazione con un piccolo set di tabelle dal subset del database di origine.
-
Caricamento dei dati in un ambiente eterogeneo
Il caricamento iniziale Extract funziona leggendo i dati direttamente dalle tabelle di origine e scrivendoli in un file EXTFILE. Si connette direttamente al database e recupera le modifiche. Come illustrato nel diagramma seguente, durante l'esecuzione di un'istanza di caricamento iniziale sono previste due fasi. L'estrazione EXTINIT è l'estrazione di caricamento iniziale e l'EXTPRM è l'estrazione principale. Il processo EXTPRM è impostato ma non avviato per la replica continua. Una volta completata la creazione dell'istanza, il processo di replica continua viene avviato dal momento in cui è stato avviato il caricamento iniziale.

Per configurare questa estrazione, è necessaria una combinazione di processi di caricamento iniziale e modifica dei dati (CDC) basati su file. Il processo di creazione delle istanze che utilizza Extract caricamento iniziale include i task riportati di seguito.
-
Aggiunta e configurazione di un'estrazione caricamento iniziale: questa estrazione viene utilizzata per copiare il contenuto esistente di una o più tabelle dall'origine al database di destinazione.
-
Configura acquisizione dati modifica: consente di copiare le modifiche transazionali dal database di origine al database di destinazione. Nota: l'architettura dei microservizi non supporta il caricamento diretto dei dati con Oracle GoldenGate.
Il processo di caricamento iniziale basato su file è il metodo preferito per eseguire la replica dei dati in MA. Di seguito sono riportati i componenti principali.
-
Extract di caricamento iniziale e Replicat: replica il contenuto esistente delle tabelle di database.
-
Extract primario e Replicat: replica i dati di modifica dalle tabelle di database.
-
Percorsi di distribuzione: trasferisce i file trail al sistema di destinazione.
Prima di iniziare, assicurarsi che l'alias delle credenziali del database (USERIDALIAS) sia stato creato.
Per impostare questa configurazione, è possibile utilizzare l'interfaccia Web Oracle GoldenGate, il client di amministrazione o i comandi cURL.
Passo 1: creare un'estrazione principale
Per replicare correttamente le risorse del database dall'origine al database di destinazione, viene utilizzata un'istanza precisa. L'estrazione principale viene avviata prima per avviare l'acquisizione anticipata dei dati di modifica. La creazione di un'istanza precisa si basa sulle seguenti ipotesi:
Nota: affinché la creazione di istanze funzioni in modo preciso, l'SCN di creazione delle istanze deve essere successivo all'SCN di registrazione.
-
L'estrazione principale è stata avviata. È responsabile della modifica dell'acquisizione dei dati e dell'annotazione del SCN di registrazione.
-
Il database è monitorato. Il database attende che l'SCN della transazione aperta meno recente venga visualizzato dopo l'SCN di registrazione. SCN di creazione istanza.
-
L'SCN di creazione delle istanze viene utilizzato durante la creazione dei processi Extract e Replicat di caricamento iniziale.
-
L'SCN di creazione delle istanze viene utilizzato per creare il Replicat primario, una volta completata la replica del caricamento iniziale.
-
Per MySQL, la creazione precisa dell'istanza è applicabile solo ai database di origine e di destinazione MySQL ed è implementata utilizzando la utility
Dumpdella shell MySQL. Per ulteriori informazioni sulla utilityDump, vedere MySQL Dump Utility.
Per iniziare, creare e avviare l'estrazione primaria EXTPRIM da AdminClient, come mostrato nell'esempio seguente:
Comando:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Output:
Using default deployment 'OGGDEP'
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Output:
Successfully logged into database.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 3> ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW
Output:
2018-03-16T13:37:07Z INFO OGG-08100 EXTRACT (Integrated) added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Output:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS extprim
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS extprim
Output:
--
-- E X T P R I M . p r m
-- Primary Extract Parameter File
--
Extract EXTPRIM
UseridAlias oggadmin
ExtTrail AA
Table user01.*;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> ADD EXTTRAIL aa EXTRACT extprim
Output:
2018-03-16T13:37:55Z INFO OGG-08100 EXTTRAIL added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 8> START EXTRACT extprim
Output:
2018-03-16T13:38:02Z INFO OGG-00975 EXTRACT EXTPRIM starting
2018-03-16T13:38:02Z INFO OGG-15426 EXTRACT EXTPRIM started
In questo esempio, oggadmin è l'alias della credenziale del database.
Dopo aver creato l'estrazione principale, recuperare il numero di registrazione SCN. Eseguire il comando REGISTER EXTRACT nel file AdminClient. Nell'esempio seguente viene recuperato un valore SCN pari a 1608891.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Output:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Passo 2: Determinare l'SCN di creazione dell'istanza
Il servizio di amministrazione nell'architettura dei microservizi Oracle GoldenGate fornisce un endpoint per il recupero delle informazioni sulle transazioni del database aperto. Queste informazioni possono essere utilizzate per identificare l'SCN da utilizzare durante la creazione di un'istanza dell'estrazione del caricamento iniziale.
Nell'esempio seguente, l'SCN di creazione istanza è 1609723, che è l'SCN più vecchio di tutte le transazioni aperte che è anche oltre l'SCN di registrazione di 1608891, identificato nel passo precedente.
-- Query for active transactions
--
SELECT T.START_SCN, T.STATUS TSTATUS, T.START_DATE,
S.SID, S.SERIAL#, S.INST_ID, S.USERNAME, S.OSUSER, S.STATUS SSTATUS, S.LOGON_TIME
FROM gv$transaction T
INNER JOIN gv$session S
ON s.saddr = t.ses_addr
UNION ALL
--
-- Query for current status
--
SELECT CURRENT_SCN, 'CURRENT', CURRENT_DATE,
NULL, NULL, NULL, 'SYS', NULL, NULL, NULL
from v$database
ORDER BY 1;
I risultati di questa query possono essere utilizzati per determinare l'SCN di creazione istanza. I risultati di questa query specifica sono:
1538916 ACTIVE 2018-03-16 18:10:31.0 3865 9176 1 OGGADMIN oracle INACTIVE 2018-03-16 18:10:26.0 1540555 CURRENT 2018-03-16 18:21:50.0 SYS
L'SCN utilizzato per creare un'istanza di Extract di caricamento iniziale viene ottenuto utilizzando SQL*Plus. Nell'esempio seguente, la query SQL utilizza il valore SCN di creazione istanza come 1624963, ovvero l'SCN meno recente di tutte le transazioni aperte che hanno superato anche l'SCN di registrazione di 1608891.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 14> SHELL ECHO 'SELECT MIN(START_SCN) FROM gv$transaction;' | ${ORACLE_HOME}/bin/sqlplus -S / as sysdba
MIN(START_SCN)
--------------
1624963
Se non sono presenti transazioni aperte, questa query SQL restituisce un risultato vuoto. Una query dettagliata che tiene conto della situazione in cui non ci sono transazioni aperte è:
SELECT MIN(SCN) as INSTANTIATION_SCN
FROM (SELECT MIN(START_SCN) as SCN
FROM gv$transaction
UNION ALL
SELECT CURRENT_SCN
FROM gv$database);
Passo 3: Creare e avviare il Replicat di caricamento iniziale
Prima di iniziare questo passo, verificare che la tabella di checkpoint oggadmin.checkpoints esista già nel sistema di destinazione. Il caricamento iniziale Replicat è responsabile dell'inserimento dei dati nel database di destinazione. Eseguire il comando seguente su AdminClient per creare e avviare il caricamento iniziale Replicat (REPINIT):
Comando:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Output:
Using default deployment 'OGGDEP'
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Output:
Successfully logged into database.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 3> ADD CHECKPOINTTABLE oggadmin.checkpoints
Output:
ADD "oggadmin.checkpoints" succeeded.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> ADD REPLICAT repinit EXTTRAIL dd CHECKPOINTTABLE oggadmin.checkpoints
Output:
2018-03-16T13:56:41Z INFO OGG-08100 REPLICAT added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS repinit
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS repinit
Output:
--
-- R E P I N I T . p r m
-- File-Based Initial Load Replicat Parameter File
--
Replicat REPINIT
UseridAlias oggadmin
Map user01.*
Target user01.*;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> START REPLICAT repinit
Output:
2018-03-16T13:58:21Z INFO OGG-00975 REPLICAT REPINIT starting
2018-03-16T13:58:21Z INFO OGG-15426 REPLICAT REPINIT started
Passo 4: Creare e avviare l'estrazione del carico iniziale
Utilizzando l'SCN di creazione delle istanze recuperato (1624963), l'estrazione del caricamento iniziale viene creata per scrivere il contenuto delle tabelle di database nel trail. Creare e avviare Extract di caricamento iniziale, EXTINIT.
A partire da Oracle GoldenGate 26ai, per il caricamento iniziale le viste tabella Extract non verranno risolte durante la risoluzione delle tabelle con un parametro TABLE che include caratteri jolly. Se le viste devono essere incluse nell'estrazione del caricamento iniziale, devono essere specificate in un parametro TABLE separato senza caratteri jolly.
Ad esempio, se esiste una tabella hr.employees e una vista hr.employees_view. Per Extract di caricamento iniziale, se nel file dei parametri di Extract di caricamento iniziale si specifica quanto segue:
TABLE hr.*;
Nell'estrazione del caricamento iniziale verranno inclusi solo i dati della tabella hr.employees.
Se è necessario includere hr.employees_view nel caricamento iniziale, aggiungere il parametro seguente al file dei parametri Extract di caricamento iniziale:
TABLE SCOTT.TAB1_VIEW;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 15> ADD EXTRACT extinit SOURCEISTABLE
Output:
2018-03-16T14:08:38Z INFO OGG-08100 EXTRACT added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 16> EDIT PARAMS extinit
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 17> VIEW PARAMS extinit
Output:
--
-- E X T I N I T . p r m
-- File-Based Initial Load Extract Parameter File
--
Extract EXTINIT
UseridAlias oggadmin
ExtFile CC Megabytes 2000 Purge
Table user01.*, SQLPredicate "As Of SCN 1624963";
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 18> START EXTRACT extinit
Output:
2018-03-16T14:13:42Z INFO OGG-00975 EXTRACT EXTINIT starting
2018-03-16T14:13:42Z INFO OGG-15426 EXTRACT EXTINIT started
Passo 5: Creare i percorsi di distribuzione
Creare due percorsi di distribuzione (AABB e CCDD) per copiare gli trail locali nell'host remoto dal client di amministrazione:
Comando:
OGG (https://oggdep.example.com:9100 oggdep) 15> ADD DISTPATH aabb SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=AA target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=BB
Output:
2018-03-16T17:28:27Z INFO OGG-08511 The path 'AABB' has been added.
Comando:
OGG (https://oggdep.oggdevops.us:9100 oggdep) 16> ADD DISTPATH ccdd SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=CC target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=DD
Output:
2018-03-16T17:28:35Z INFO OGG-08511 The path 'CCDD' has been added.
Comando:
OGG (https://oggdep.example:9100 oggdep) 17> START DISTPATH aabb
Output:
2018-03-16T17:28:42Z INFO OGG-08513 The path 'AABB' has been started.
Comando:
OGG (https://oggdep.example.com:9100 oggdep) 18> START DISTPATH ccdd
Output:
2018-03-16T17:28:47Z INFO OGG-08513 The path 'CCDD' has been started.
Se si utilizza il protocollo ogg anziché wss, è necessario utilizzare l'opzione TARGETTYPE. La sintassi in questo caso sarebbe:
ADD DISTPATH path-name SOURCE source-uri TARGET target-uri [ TARGETTYPE ( MANAGER | COLLECTOR | RECVSRVR ) ]
TARGETTYPE specifica il tipo di destinazione nel caso in cui il percorso della distribuzione utilizzi il protocollo precedente. Questo argomento è valido solo se lo schema URI di destinazione è ogg.
Passo 6: creare la replica primaria
Una volta completato il caricamento iniziale Extract e Replicat, è possibile eliminarli. Quindi, il processo Replicat primario viene creato sull'host remoto per applicare i dati di modifica al database di destinazione.
Utilizzare AdminClient per creare il processo Replicat primario. Nota: il Replicat principale viene avviato all'SCN di creazione delle istanze.
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 12> ADD REPLICAT repprim EXTTRAIL bb CHECKPOINTTABLE oggadmin.checkpoints
Output:
2018-03-16T17:37:46Z INFO OGG-08100 REPLICAT added.
Comando: EDIT PARAMS
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 13> EDIT PARAMS repprim
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 14> VIEW PARAMS repprim
Output:
--
-- R E P P R I M . p r m
-- Replicat Parameter File
--
Replicat REPPRIM
USERIDALIAS oggadmin
Map user01.*
Target user01.*;
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 15> START REPLICAT repprim ATCSN 1624963
Output:
2018-03-16T17:38:10Z INFO OGG-00975 REPLICAT REPPRIM starting
2018-03-16T17:38:10Z INFO OGG-15426 REPLICAT REPPRIM started