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:

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.

Segue la descrizione di gwuad_dt_026_file-replicat.png

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.

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.

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.

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