Prima di aggiungere processi Extract e Replicat
Informazioni sulle configurazioni dei prerequisiti necessarie prima di creare i processi Extract e Replicat per una distribuzione di Oracle GoldenGate.
Aggiungi TRANDATA
Valido per Db2 per i, Db2 LUW, Db2 z/OS, Oracle, PostgreSQL, SQL Server e Sybase.
A seconda del database di origine, il log supplementare deve essere abilitato per acquisire le operazioni DML e può essere abilitato tramite il menu Trandata di una connessione al database nell'interfaccia Web o nel client di amministrazione mediante l'emissione di ADD TRANDATA o ADD SCHEMATRANDATA (solo per Oracle).
L'aggiunta di TRANDATA non è richiesta in un database di origine per un'estrazione di caricamento iniziale. Tuttavia, se sia Extract di caricamento iniziale che Extract di acquisizione dati di modifica (CDC) verranno utilizzati insieme, per una creazione di istanze in linea, è necessario aggiungere TRANDATA prima di avviare Extract di caricamento iniziale.
Abilita TRANDATA o SCHEMATRANDATA per Oracle AI Database
Questa operazione può essere eseguita a livello di tabella, schema o database globale.
Per abilitare il log supplementare, connettersi al database dalla pagina Connessioni DB, selezionare il menu Trandata, quindi eseguire le operazioni riportate di seguito.
-
Selezionare l'opzione Tabella o Schema come richiesto e fare clic sul segno più da aggiungere.
-
Inserire il nome della tabella per la quale è necessario impostare la registrazione supplementare. Assicurarsi di immettere il nome completo della tabella con il nome dello schema, ad esempio
HR.EMP. È inoltre possibile utilizzare un carattere jolly anziché un nome di tabella specifico. -
Fare clic su Sottometti.
È possibile saltare ADD TRANDATA in caso di caricamento iniziale senza CDC.
È inoltre possibile utilizzare i comandi ADD TRANDATA e ADD SCHEMATRANDATA per impostare trandata e trandata a livello di schema.
Nota: prima di eseguire il comando ADD TRANDATA, è necessario connettersi al database in cui verrà aggiunta Extract, utilizzando il comando DBLOGIN. Inoltre, eseguire i comandi ADD TRANDATA o ADD SCHEMATRANDATA prima di aggiungere Extract.
Abilita TRANDATA per database non Oracle
Valido per Db2 i, Db2 LUW, Db2 z/OS, PostgreSQL, SQL Server e Sybase.
Questo può essere fatto a livello di tabella o globale (database). Per abilitare il log supplementare, connettersi al database dalla pagina Connessioni DB, selezionare il menu Trandata, quindi eseguire le operazioni riportate di seguito.
-
Selezionare l'opzione Tabella e fare clic sul segno più da aggiungere.
-
Inserire il nome della tabella per la quale è necessario impostare la registrazione supplementare. Assicurarsi di immettere il nome completo della tabella, ad esempio
EMPLOYEE. È inoltre possibile utilizzare un carattere jolly anziché un nome di tabella specifico. -
Fare clic su Sottometti.
Per abilitare l'acquisizione delle modifiche per Db2 per i
Per acquisire le modifiche apportate a una tabella in un diario, è possibile eseguire il comando STRJRNPF nella riga di comando IBM i o eseguire il comando ADD TRANDATA dal client di amministrazione. Il comando ADD TRANDATA richiama STRJRNPF ed è il metodo consigliato per avviare la scrittura contabile delle tabelle, perché garantisce che l'attributo di immagine diario richiesto (IMAGES): *BOTH sia impostato sul comando STRJRNPF.
Il comando ADD TRANDATA è:
ADD TRANDATA table_specification
Dove: table_specification è uno dei seguenti:
-
*schema.table* [JOURNAL *library/journal*]
-
*library/file* [JOURNAL *library/journal]*)
Specifica di una scrittura contabile predefinita
Per specificare un diario predefinito per più tabelle o file nel comando ADD TRANDATA, invece di specificare la parola chiave JOURNAL, utilizzare il comando seguente prima di eseguire ADD TRANDATA.
DEFAULTJOURNAL *library/journal*
Qualsiasi comando ADD TRANDATA utilizzato senza diario acquisisce il diario dall'impostazione di DEFAULTJOURNAL.
Per visualizzare l'impostazione corrente di DEFAULTJOURNAL, eseguire il comando con argomenti.
Rimozione di una specifica scrittura contabile predefinita**
Per annullare l'uso di un diario predefinito, utilizzare il comando seguente:
DEFAULTJOURNAL CLEAR
Per abilitare l'acquisizione delle modifiche per Db2 LUW
Configurare Db2 per registrare le modifiche ai dati nel formato espanso fornito dalla funzione DATA CAPTURE CHANGES dei comandi CREATE TABLE e ALTER TABLE. Questo formato fornisce a Oracle GoldenGate le immagini complete prima e dopo delle righe modificate dalle istruzioni di aggiornamento. Eseguire il comando ALTER TABLE come indicato di seguito.
Eseguire il comando seguente.
ADD TRANDATA owner.table
dove owner.table è il nome completo della tabella. È possibile utilizzare un carattere jolly per specificare più nomi di tabella.
ADD TRANDATA esegue il comando seguente, che include la registrazione dell'immagine precedente delle colonne LONGVAR:
ALTER TABLE name DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
Esempio 7-1 Per escludere la registrazione LONGVAR:
Per omettere la clausola INCLUDE LONGVAR COLUMNS dal comando ALTER TABLE, utilizzare ADD TRANDATA con l'opzione EXCLUDELONG.
ADD TRANDATA *owner.table*, EXCLUDELONG
Nota: se le colonne LONGVAR sono escluse dal log, le funzioni di Oracle GoldenGate che richiedono le immagini precedenti, ad esempio i parametri GETUPDATEBEFORES, NOCOMPRESSUPDATES e NOCOMPRESSDELETES, potrebbero restituire errori se le tabelle contengono tali colonne. Per una soluzione alternativa, vedere le opzioni REQUIRELONGDATACAPTURECHANGES | NOREQUIRELONGDATACAPTURECHANGES del parametro TRANLOGOPTIONS.
Aggiungere una tabella checkpoint
È necessaria una tabella di checkpoint per tutte le repliche non parallele e deve essere creata nel database prima di aggiungere un Replicat. Un checkpoint riesce o non riesce con la transazione, quindi Replicat garantisce che una transazione venga applicata una sola volta, anche se si verifica un errore del processo o del database.
È possibile visualizzare la tabella dei checkpoint nella sezione Checkpoint. Per aggiungere una tabella di checkpoint, connettersi al database di destinazione dalla pagina Connessioni DB, selezionare Checkpoint, quindi effettuare le operazioni riportate di seguito.
-
Fare clic sul segno più per abilitare l'aggiunta di una tabella di checkpoint.
-
Aggiungere il nome della tabella di checkpoint nel formato
*table*.*checkpoint_table_name* -
Fare clic su Sottometti. Una volta creato il checkpoint, sarà possibile visualizzarlo nell'elenco delle tabelle di checkpoint.
Per eseguire questa procedura dalla riga di comando, vedere ADD CHECKPOINTTABLE in Command Line Interface Reference for Oracle GoldenGate.
Aggiungere una tabella di checkpoint con scrittura contabile in Db2 per i
Nel file Db2 per il database di destinazione i, ogni checkpoint scritto nella tabella di checkpoint deve essere inserito nella transazione Replicat.
Un metodo comune per creare la tabella dei checkpoint con il journaling è il seguente:
-
Nel sistema di destinazione, creare il file di checkpoint Replicat.
Impostare il nome del giornale da utilizzare per il file di checkpoint. Il valore predefinito sarà
GGSCHEMA/OGGJRN.È possibile modificarlo impostando l'impostazione predefinita per la sessione corrente del client di amministrazione utilizzando il comando
DEFAULTJOURNAL. La sintassi del comandoDEFAULTJOURNALè la seguente:DEFAULTJOURNAL *library_name*/*journal_name*Dove: library_name è il nome della libreria e
journal_nameè il nome del giornale da utilizzare per le operazioni successive che facoltativamente possono avere un giornale specificato. -
Aggiungere la tabella dei checkpoint.
ADD CHECKPOINTTABLE *library_name*.chkptab -
Aggiungere scritture contabili alla tabella dei checkpoint.
ADD TRANDATA *library_name*.CHKPTAB
Per ulteriori informazioni sulla creazione di una tabella di checkpoint, vedere Aggiungere una tabella di checkpoint.
Aggiungi tabella heartbeat
Le tabelle di heartbeat vengono utilizzate per monitorare il ritardo durante tutto il ciclo di replica dei dati. Gli heartbeat automatici vengono inviati da ogni database di origine nei flussi di replica aggiornando i record in una tabella seed heartbeat e una tabella heartbeat e creando un record cronologia heartbeat.
Ogni processo nel flusso di replica aggiorna il record di heartbeat con informazioni di tracciamento che vengono quindi aggiornate nella tabella di heartbeat del database di destinazione. Questi record heartbeat vengono inseriti o aggiornati nella tabella heartbeat dei database di destinazione.
Nota: la creazione della tabella di heartbeat è facoltativa ma consigliata.
Per aggiungere una tabella di heartbeat, connettersi a ciascun database di origine e di destinazione dalla pagina Connessioni DB, selezionare il menu Heartbeat, quindi eseguire i passi riportati di seguito.
-
Fare clic sul segno più (+) accanto per aggiungere una tabella di heartbeat.
-
Accettare le impostazioni predefinite o modificare i valori disponibili in base alle esigenze.
Nota: per i database che dispongono di un'opzione per Solo destinazione, selezionare questa opzione se il database verrà utilizzato solo come database di destinazione nel flusso di replica per evitare di creare job non necessari che sarebbero associati a un database di origine.
-
Fare clic su Sottometti.
Per eseguire questa attività dalla riga di comando ed esaminare importanti limitazioni specifiche del database, vedere ADD HEARTBEATTABLE in Command Line Interface Reference for Oracle GoldenGate.
Nella procedura riportata di seguito vengono descritti i comandi per impostare la tabella di heartbeat.
-
Avviare il client Admin dalla riga di comando.
-
Connettersi alla distribuzione dal client di amministrazione.
CONNECT https://remotehost:*srvmgrport* DEPLOYMENT *deployment_name* AS *deployment_user* PASSWORD *deployment_password*Di seguito viene fornito un esempio.
CONNECT https://remotehost:16000 DEPLOYMENT *ggdep_postgres* AS ggadmin PASSWORD P@ssWord -
Connettersi ai database di origine e di destinazione utilizzando il comando
DBLOGIN USERIDALIAS. L'esempio seguente mostra la connessione al database di origine con alias credenzialeggeast:(https://remotehost:16000 ggdep_postgres)> DBLOGIN USERIDALIAS ggeast -
Aggiungere la tabella heartbeat:
(https://remotehost:16000 ggdep_postgres)> ADD HEARTBEATTABLE
Facoltativamente, per un database solo di destinazione, utilizzato solo per la replica unidirezionale, è possibile includere l'opzione TARGETONLY, che non creerà una funzione di aggiornamento dei record di heartbeat.
Per informazioni dettagliate sulle opzioni dei comandi, vedere ADD HEARTBEATTABLE.
Esecuzione della funzione di aggiornamento e rimozione di Heartbeat per PostgreSQL
Oracle GoldenGate for PostgreSQL supporta una configurazione di tabella di heartbeat, con alcune limitazioni relative ai task di aggiornamento e rimozione.
La tabella di heartbeat e le funzioni associate vengono create dal comando ADD HEARTBEATTABLE, tuttavia per PostgreSQL non esiste uno scheduler automatico per chiamare le funzioni.
Una funzione principale controlla sia l'aggiornamento del record di heartbeat che le funzioni di rimozione della tabella della cronologia di heartbeat. Le impostazioni predefinite per entrambe queste funzioni sono 60 secondi per la frequenza di aggiornamento e 1 giorno per la rimozione dei record della cronologia, il che elimina per impostazione predefinita tutti i record precedenti a 30 giorni.
Per richiamare la funzione di record heartbeat principale, gli utenti devono creare un job a livello di sistema operativo che esegua
"select ggschema.gg_hb_job_run();"
Quando questa funzione viene chiamata, terrà conto delle impostazioni della frequenza di aggiornamento e delle impostazioni di rimozione dei record della cronologia e utilizzerà tali valori indipendentemente dalle impostazioni dello scheduler per la chiamata alla funzione.
Ad esempio, gli utenti possono creare un job Cron con la sintassi seguente e farlo eseguire ogni minuto.
PGPASSWORD="gguserpasswd" psql -U gguser -d dbname -h remotehost -p 5432 -c "select ggschema.gg_hb_job_run();" >/dev/null
2>&1
Windows Task Scheduler, pgAdmin o pg_cron sono altri programmi che possono essere utilizzati per pianificare la chiamata di funzione.
Creare il task di cleanup CDC di Oracle GoldenGate
Per gli utenti di SQL Server, è necessario creare i task di cleanup CDC di Oracle GoldenGate prima di aggiungere un'estrazione. A tale scopo, eseguire la procedura descritta in Dettagli del processo di cleanup CDC di Oracle GoldenGate.
PostgreSQL: considerazioni sull'estrazione per la distribuzione remota
Per una distribuzione remota, il database di origine e Oracle GoldenGate vengono installati su server separati. Le distribuzioni remote sono l'unica opzione disponibile per supportare i database cloud, come Azure per PostgreSQL o Amazon Aurora PostgreSQL.
Per le distribuzioni remote, l'indipendenza del sistema operativo tra il database server e il server Oracle GoldenGate deve essere la stessa.
L'ora e i fusi orari del server Oracle GoldenGate devono essere sincronizzati con quelli del database server. Se questo non è possibile, il posizionamento di un Estratto durante la creazione o la modifica di uno dovrà essere fatto da LSN.
Nei casi d'uso di acquisizione remota, l'uso di SQLEXEC può introdurre latenza aggiuntiva, poiché l'operazione SQLEXEC deve essere eseguita in serie per ogni record elaborato da Extract. Se un filtro speciale che richiede un SQLEXEC viene eseguito da Extract di un hub remoto e l'impatto sulle prestazioni è troppo grave, potrebbe essere necessario spostare il processo Extract più vicino al database di origine.
Con le distribuzioni remote, la bassa latenza di rete è importante ed è consigliabile che la latenza di rete tra il server Oracle GoldenGate e il database server di origine sia inferiore a 1 millisecondo.