Πώς κάνουμε replicate πίνακες από την Oracle Database πρός τον SQL Server με την χρήση GoldenGate
- Πώς συλλέγουμε to actual execution plan από τα queries με χρήση Extended Event και πως διαβάζουμε τα δεδομένα του - 2 Δεκέμβριος 2024
- Πώς βρίσκουμε τι δικαιώματα έχει ένας χρήστης σε βάση δεδομένων της Oracle - 1 Νοέμβριος 2024
- Πώς ενεργοποιούμε το Unified Auditing σε Oracle Database - 7 Οκτώβριος 2024
Σε αυτό το άρθρο θα δούμε πως μπορούμε να αντιγράφουμε εγγραφές πινάκων από Oracle Database που είναι σε Unix πρός SQL Server που είναι σε Windows με την χρήση του Oracle GoldenGate.
Τι είναι το GoldenGate
Το Oracle GoldenGate είναι ένα εργαλείο που μας επιτρέπει να αντιγράφουμε και να διαμορφώνουμε δεδομένα μεταξύ βάσεων δεδομένων, χωρίς να μας επηρεάζει το λειτουργικό σύστημα ή το RDBMS που γίνεται χρήση. Η ενημέρωση των πινάκων μπορεί να είναι είτε προς μία κατεύθυνση με ένα target (unidirectional), είτε πρός πολλά targets (broadcast), είτε αμφίδρομα (bidirectional).
Για παράδειγμα μπορούμε να μεταφέρουμε δεδομένα πινάκων με την χρήση GoldenGate από Oracle σε Oracle, από Oracle προς SQL Server, από SQL Server πρός SQL Server, είτε από Oracle ταυτόχρονα προς SQL Server, MySQL, DB2 και PostgreSQL.
Πώς λειτουργεί το GoldenGate
Το GoldenGate κάνει χρήση τριών processes: Extract, Data Pump (σε περίπτωση που κάνουμε χρήση απομακρυσμένου server) και του Replicat.
Το Extract είναι υπεύθυνο για να καταγράφει τις committed συνναλλαγές από τους πίνακες που έχουμε ορίσει και να τις αποθηκεύει σε ένα αρχείο που ονομάζεται local trail. Στη συνέχεια το Data Pump στέλνει τα δεδομένα από το local trail αρχείο στον απομακρυσμένο server μέσω TCP/IP και γράφει τα δεδομένα στο αρχείο που ονομάζεται remote trail. Στο τέλος το Replicat διαβάζει το remote trail και εφαρμόζει τις αλλαγές στις target βάσεις δεδομένων.
Τα προαπαιτούμενα
Για αρχή θα πρέπει να έχουμε στήσει το Oracle Database Software στον primary και στον standby server και Oracle Database στον primary σε archivelog mode. Το πώς κάνουμε αυτές τις εγκαταστάσεις μπορούμε να το δούμε βήμα βήμα στο άρθρο εδώ.
Θα πρέπει να κατεβάσουμε την έκδοση Oracle GoldenGate ξεχωριστά για το κάθε σύστημα από εδώ. Την έκδοση Oracle on Linux x86-64 για τον Oracle Server και την έκδοση SQL Server on Windows x86-64 για τον SQL Server.
Στον Windows Server που έχει τον SQL Server θα πρέπει να κατεβάσουμε και να κάνουμε εγκατάσταση τον Oracle Database Client από εδώ.
Η εγκατάσταση / παραμετροποίηση στο source
Στον Unix Oracle Database server (source)
Για το παράδειγμα έχω φτιάξει μία Oracle Database που θα είναι η source με το όνομα oracledb:
su oracle
dbca
Αφού ολοκληρωθεί η εγκατάσταση συνδέουμε στην βάση δεδομένων με sqlplus και κάνω τις απαραίτητες αλλαγές για να λειτουργήσει το GoldenGate:
export ORACLE_SID=oracledb
sqlplus / as sysdba
shutdown immediate; startup mount; alter database archivelog; alter database add supplemental log data; alter database force logging; alter database open; alter system switch logfile; alter system set enable_goldengate_replication=true scope=both;
Στην συνέχεια παραμένουμε στο sqlplus και φτιάχνουμε τον χρήστη που θα συνδέεται το GoldenGate στην βάση:
create user ggadmin identified by passw0rd default tablespace USERS temporary tablespace TEMP quota unlimited on users; -- Grant/Revoke role privileges grant connect to ggadmin; grant resource to ggadmin; -- Grant/Revoke system privileges grant select any table to ggadmin; grant select any dictionary to ggadmin; grant flashback any table to ggadmin; grant create session to ggadmin; grant alter session to ggadmin; exec dbms_goldengate_auth.grant_admin_privilege('ggadmin');
Για τις ανάγκες το παραδείγματος έχω φτιάξει στην βάση δεδομένων τον χρήστη STRATOS με τον πίνακα CUSTOMERS και είναι αυτός που θέλω να γίνεται replicate:
create user STRATOS IDENTIFIED BY PASSW0RD default tablespace USERS temporary tablespace TEMP profile DEFAULT password expire quota unlimited on users; -- Grant/Revoke role privileges grant connect to STRATOS; grant resource to STRATOS; -- Table Creation create table stratos.customers (id int, name varchar(50)); insert into stratos.customers values (1,'Stratos'); insert into stratos.customers values (2,'Nikos'); insert into stratos.customers values (3,'George'); commit;
Έπειτα προσθέτουμε στο tnsnames.ora την παρακάτω εγγραφή με τις πληροφορίες σύνδεσης στο instance βάζοντας ως host το όνομα του μηχανήματος και ως service_name το όνομα της βάσης δεδομένων:
vi $ORACLE_HOME/network/admin/tnsnames.ora
oracledb= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracledev2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracledb) ) )
Αν δεν έχουμε DNS server θα πρέπει να πάμε στο hosts file και να ορίσουμε μια εγγραφή με την IP του απομακρυσμένου SQL Server:
su root
vi /etc/hosts
Φτιάχνουμε τον φάκελο που θα βρίσκεται η εγκατάσταση του GoldenGate, πάμε στον φάκελο που κατεβάσαμε το setup του GoldenGate και το κάνουμε unzip:
su oracle
mkdir /oracle/app/oracle/goldengate
cd $HOME/Downloads
unzip *.zip
Αφού ολοκληρωθεί το unzip πάμε μέσα στα αρχεία του φακέλου και τρέχουμε τον installer:
cd fbo_ggs_Linux_x64_Oracle_shiphome/Disk1
./runInstaller
Στο Software Location βάζουμε τον φάκελο που δημιουργήσαμε πριν για να περιέχει την εγκατάσταση και ορίζουμε την πόρτα, ή default είναι η 7809:
Όταν ολοκληρωθεί η εγκατάσταση για να είναι δηλωμένο πάντα το path του GoldenGate και του tnsnames.ora πάμε στο bash_profile και προσθέτουμε τα παρακάτω:
vi $HOME/.bash_profile
export GGHOME=/oracle/app/oracle/goldengate export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=$PATH:$ORACLE_HOME/bin:$GGHOME
Για να φορτώσει τις αλλαγές κάνουμε είτε logout login είτε τρέχουμε το παρακάτω:
source ~/.bash_profile
Τώρα μπορούμε να συνδεθούμε στο GoldenGate interface τρέχοντας το παρακάτω:
ggsci
Γράφουμε να δημιουργήσει τους φακέλους σε περίπτωση που δεν το έχει κάνει ήδη ο installer:
create subdirs
Τροποποιούμε το parameter file του GoldenGate Manager και προσθέτουμε τα παρακάτω:
edit params mgr
PORT 7809
PURGEOLDEXTRACTS ./dirdat/*, MINKEEPHOURS 2
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 10, WAITMINUTES 5, RESETMINUTES 60
- PORT: Είναι η minimum μεταβλητή που πρέπει να έχει το αρχείο και ορίζει την πόρτα του Manager.
- PURGEOLDEXTRACT: Είναι η τοποθεσία που αποθηκεύοται το trail αρχείο με τα δεδομένα και ορίζουμε να τα κρατάει τουλάχιστον 2 ώρες.
- AUTOSTART : Ορίζουμε ποια processes να ξεκινήσουν αυτόματα όταν ξεκινάει ο Manager.
- AUTORESTART: Ορίζουμε ποια processes να γίνουν επανεκκίνηση μετά από σφάλμα.
Στη συνέχεια ξεκινάμε τον GoldenGate Manager:
start manager
Με την παρακάτω εντολή μπορούμε να δούμε το status των processes:
info all
Στο επόμενο βήμα φτιάχνουμε το Credentialstore. Εκεί μπορούμε να ορίζουμε χρήστες της βάσης δεδομένων κρατώντας τον κωδικό τοπικά κρυπτογραφημένο. Στην εντολή θα πρέπει να ορίσουμε το όνομα του χρήστη που φτιάξαμε πριν (ggadmin), το όνομα της εγγραφής που περάσαμε στο tnsnames.ora (oracledb) με το connection της βάσης και ως alias το όνομα με το οποίο θα το καλούμε:
add credentialstore alter credentialstore add user ggadmin@oracledb alias ggadmin
Για να συνδεθούμε τρέχουμε το παρακάτω:
dblogin useridalias ggadmin
Αφού συνδεθούμε με τον χρήστη ορίζουμε για τον κάθε πίνακα που θέλουμε να κάνουμε replicate να είναι ενεργοποιημένο το supplemental logging:
add trandata stratos.customers
Στην περίπτωση που θέλουμε να ενεργοποιήοσμυε το supplemental logging σε όλους τους πίνακες ενός schema τότε μπορούμε αντί για trandata να κάνουμε schematrandata:
add schematrandata stratos
Δημιουργία του Extract process στο source
Τώρα φτιάχνουμε το Extract process που θα εξάγει τα δεδομένα προς το local trail file:
register extract ora_ext database
Έπειτα το τροποποιούμε και προσθέτουμε τα παρακάτω:
edit param ora_ext
EXTRACT ora_ext
USERIDALIAS ggadmin
RMTHOST sqlserverhost.mshome.net, MGRPORT 7809
RMTTRAIL ./dirdat/aa
GETTRUNCATES
TABLE STRATOS.*;
- EXTRACT: Ορίζουμε το όνομα του process.
- USERIDALIAS: Ορίζουμε το όνομα του alias που φτιάξαμε για τον χρήστη της βάσης στο Credentialstore.
- RMTHOST: Ορίζουμε το hostname του απομακρυσμένου SQL Server. Αν δεν κάνουμε χρήση DNS server, βάζουμε την εγγραφή που περάσαμε στο /etc/hosts.
- MGRPORT: Ορίζουμε την πόρτα που έχει ο GoldenGate Manager στον απομακρυσμένο SQL Server.
- RMTTRAIL: Ορίζουμε το path και το όνομα που θα έχουν τα trail files.
- GETTRUNCATES: Ενεργοποιούμε την δυνατότητα να καταγράφει τα truncates των πινάκων ώστε αν σβηστούν όλες οι εγγραφές να γίνει αυτό και στο target.
- TABLE: Ορίζουμε τους πίνακες που θέλουμε να μεταφέρει, στην προκειμένη περίπτωση βάζουμε το σχήμα του χρήστη και * αφού το σχήμα περιέχει μόνο τον πίνακα που θέλουμε.
- TRANLOGOPTIONS: Ορίζουμε προαιρετικά ρυθμίσεις για την εξαγωγή όπως την παράμετρο MINEFROMACTIVEDG που μας επιτρέπεται σε περιβάλλον Active Data Guard να κάνουμε χρήση του Standby αντί του Primary (η συγκεκριμένη λειτουργία δεν είναι συμβατή με το integrated process και λειτουργεί μόνο στο classic configuration).
Για να προστεθεί το process ως integrated, θα πρέπει να τρέξουμε τα παρακάτω με το όνομα του extract process:
add extract ora_ext, integrated tranlog, begin now add rmttrail ./dirdat/aa, ext ora_ext
Εγκατάσταση / παραμετροποίηση στο target
Στον Windows SQL Server (target)
Για αρχή πάμε στο Windows Firewall και θα το κάνουμε disable στις κάρτες δικτύου που έχουν internal επικοινωνία μεταξύ τους. Για να το κάνουμε αυτό πάμε Windows Defender Firewall with Advanced Security, Action, Properties, Domain Profile, Customize… και βγάζουμε αυτές τις συνδέσεις. Ακολουθούμε τα ίδια βήματα για τις καρτέλες Private Profile και Public Profile:
Στην περίπτωση που δεν κάνουμε χρήση DNS Server πρέπει να προσθέσουμε εγγραφή στο C:\Windows\System32\drivers\etc\hosts με την IP και το όνομα του απομακρυσμένου Oracle Database server.
Έπειτα δοκιμάζουμε ότι γίνεται ping:
Στη συνέχεια και αφού έχουμε κάνει εγκατάσταση τον Oracle Database Client όπως αναφέραμε στα προαπαιτούμενα, πάμε και προσθέτουμε στο tnsnames.ora την εγραφή για την σύνδεση προς την απομακρυσμένη Oracle Database:
*Στο παράδειγμα βρίσκεται στο path C:\app\client\user\product\19.0.0\client_1\network\admin
oracledb= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracledev2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracledb) ) )
Κάνουμε tnsping ώστε να δούμε ότι η εγραφή που προσθέσαμε στο tnsnames.ora λειτουργεί:
tnsping oracledb
Τώρα για να φτιάξουμε τον χρήστη της βάσης δεδομένων που θα διαχειρίζεται το GoldenGate, ανοίγουμε το Microsoft SQL Server Management Studio, συνδεόμαστε στο instance και κάτω από το security επιλέγουμε δεξί κλικ New Login…:
Επιλέγουμε SQL Server authentication, την επιλογή enforce password policy και ως default database ορίζουμε αυτήν που θέλουμε να πηγαίνουν οι εγγραφές του πίνακα:
Στην καρτέλα User Mapping κάνουμε επιλέγουμε αυτή τη βάση δεδομένων, ως ρόλο db_owner και OK:
Τώρα για να μπορούμε να συνδεθούμε στη βάση από το GoldenGate πρέπει να φτιάξουμε ODBC. Οπότε ανοίγουμε το πρόγραμμα ODBC Data Source Administrator (64-bit), πάμε System DSN, Add… και επιλέγουμε ODBC Driver 17 for SQL Server:
Ορίζουμε το όνομα με το οποίο θα καλούμε την σύνδεση στη βάση και ως server βάζουμε το όνομα του server που είμαστε αυτή τη στιγμή:
Έπειτα επιλέγουμε With SQL Server authentication using a login ID and password entered by the user και προσθέτουμε το όνομα του χρήστη και τον κωδικό που φτιάξαμε πριν:
Στην επόμενη οθόνη επιλέγουμε Change the default database to και ορίζουμε την βάση δεδομένων που θέλουμε να πηγαίνουν οι εγγραφές του πίνακα:
Για την εγκατάσταση του GoldenGate στα Windows πρώτα κάνουμε unzip τα αρχεία του setup στον φάκελο C:\goldengate .
Ανοίγουμε Command Prompt ως Administrator και πάμε στον φάκελο:
cd C:\goldengate
Για συνδεθούμε στο GoldenGate interface τρέχουμε το παρακάτω:
ggsci.exe
Για να δημιουργήσει τον φακέλους που απαιτείται τρέχουμε την παρακάτω εντολή:
create subdirs
Τροποποιούμε το parameter file του GoldenGate Manager και προσθέτουμε τα παρακάτω:
edit param mgr
PORT 7809
PURGEOLDEXTRACTS ./dirdat/*, MINKEEPHOURS 2
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 10, WAITMINUTES 5, RESETMINUTES 60
- PORT: Είναι η minimum μεταβλητή που πρέπει να έχει το αρχείο και ορίζει την πόρτα του Manager.
- PURGEOLDEXTRACT: Είναι η τοποθεσία που αποθηκεύοται το trail αρχείο με τα δεδομένα και ορίζουμε να τα κρατάει τουλάχιστον 2 ώρες.
- AUTOSTART : Ορίζουμε ποια processes να ξεκινήσουν αυτόματα όταν ξεκινάει ο Manager.
- AUTORESTART: Ορίζουμε ποια processes να γίνουν επανεκκίνηση μετά από σφάλμα.
Τροποποιούμε το GLOBALS parameter file που ισχύει για όλα τα processes του GoldenGate, ώστε να ορίσουμε ένα όνομα στο στο local Windows Service account, και τον πίνακα checkpoint που θα περιέχει τις πληροφορίες με το apply του replication στον SQL Server:
edit param ./GLOBALS
MGRSERVNAME GOLDENGATEsrv
CHECKPOINTTABLE dbo.CHECKPOINTTABLE
Για να προστεθεί το service στα Windows εκτελούμε το παρακάτω:
shell install addservice addevents
Για να ξεκινήσουμε το local service του GoldenGate από Command Prompt τρέχουμε το παρακάτω:
net start GOLDENGATEsrv
Στο επόμενο βήμα ανοίγουμε πάλι το GoldenGate interface και φτιάχνουμε το Credentialstore. Όπως είπαμε πριν εκεί μπορούμε να ορίζουμε χρήστες της βάσης δεδομένων κρατώντας τον κωδικό τοπικά κρυπτογραφημένο. Στην εντολή θα πρέπει να ορίσουμε το όνομα του χρήστη που φτιάξαμε πριν (ggadmin), το ODBC που φτιάξαμε (sqlserverdb) με το connection της βάσης και ως alias το όνομα με το οποίο θα το καλούμε:
ggsci.exe
add credentialstore alter credentialstore add user ggadmin alias ggadmin
Συνδεόμαστε τώρα τρέχοντας την παρακάτω εντολή:
dblogin sourceDB sqlserverdb useridalias ggadmin
Προσθέτουμε τον checkpoint πίνακα για το replication:
add checkpointtable
Δημιουργία του Replicat process στο destination
Τώρα φτιάχνουμε το Replicat process που θα εισάγει τα δεδομένα από το trail file προσθέτοντας τις παρακάτω παραμέτρους:
edit param sql_rep
REPLICAT sql_rep
TARGETDB sqlserverdb, USERIDALIAS ggadmin
DISCARDFILE ./dirrpt/ora_discard.txt, APPEND, MEGABYTES 50
BATCHSQL
REPERROR(60,TRANSABORT, MAXRETRIES 10, DELAYSECS 10)
FUNCTIONSTACKSIZE 500
SOURCECHARSET PASSTHRU
DISCARDROLLOVER AT 03:00 ON TUESDAY
REPORTROLLOVER AT 03:00 ON TUESDAY
HANDLECOLLISIONS
GETTRUNCATES
MAP STRATOS.CUSTOMERS, TARGET DBO.CUSTOMERS;
- REPLICAT: Ορίζουμε το όνομα του process.
- TARGETDB: Ορίζουμε το ODBC που φτιάξαμε με την target βάση δεδομένων.
- USERIDALIAS: Ορίζουμε το όνομα του alias που φτιάξαμε για τον χρήστη της βάσης στο Credentialstore.
- DISCARDFILE: Ορίζουμε το αρχείο που περιέχει τις εγγραφές του πίνακα που δεν κατάφεραν να περάσουν
- DISCARDROLLOVER: Ορίζουμε κάθε πότε θα καθαρίζονται τα discard files.
- REPORTROLLOVER: Ορίζουμε κάθε πότε θα καθαρίζονται τα report files.
- BATCHSQL: Ορίζουμε να ομαδοποιεί τα statements σε groups (select,insert,update,delete) ώστε να τα τρέχει παράλληλα με μεγαλύτερη απόδοση.
- TRANSABORT: Μας βοηθάει στον έλεγχο των deadlocks. Στην περίπτωση που δεν πετύχει μια συναλλαγή, γίνεται abort και την εκτελεί ξανά από την αρχή.
- FUNCTIONSTACKSIZE: Ορίζουμε το όριο στο πόσα παράλληλα arguments μπορεί να δεχτεί το process στη μνήμη.
- SOURCECHARSET PASSTHRU: Ορίζουμε να μην κάνει convert το character set ώστε να μην υπάρχει κίνδυνος να αλλοιωθούν δεδομένα.
- HANDLECOLLISIONS – NOHANDLECOLLISIONS: Παράμετρος που αναλαμβάνει την διαχείριση σε διπλότυπες και λάθος εγγραφές. Την γυρνάμε σε HANDLECOLLISIONS σε περίπτωση που αποτυγχάνει να ξεκινήσει το Replicat Process λόγο των παραπάνω περίπτωσεων, αν δεν θέλουμε ή δεν μπορούμε να λύσουμε τα προβλήματα manual (οι εγγραφές αυτές θα εμφανίζονται στο DISCARDFILE).
- GETTRUNCATES: Ενεργοποιούμε να επιτρέπονται να γίνονται apply τα truncates των πινάκων που αδειάζουν στο source.
- MAP: Ορίζουμε την σχέση μεταξύ των source και target πινάκων. Στην προκειμένη περίπτωση θέλουμε οι πίνακες να πηγαίνουν στο σχήμα DBO.
Για να φτιαχτεί το Replicat process τρέχουμε το παρακάτω:
add replicat sql_rep, exttrail ./dirdat/aa
Εκκίνηση του Extract process στο source
Στον Oracle Database server (source)
Συνδεόμαστε πάλι στο GoldenGate interface από τον Unix server:
su oracle
ggsci
Βλέπουμε το status των processes και ξεκινάμε το Extract process που έχουμε φτιάξει:
info all start ora_ext
Σε αυτό το σημείο θα δούμε ότι στον Windows SQL Server που είναι το target θα έχει φτιάξει το remote trail file στο παρακάτω path C:\goldengate\dirdat:
Μεταφορά των πινάκων από την Oracle Database (source) στον SQL Server (target)
Στον Windows SQL Server (target)
Πριν ξεκινήσουμε το Replicat process θα πρέπει να μεταφέρουμε τους πίνακες που θέλουμε από την Oracle Database στον SQL Server.
Για να μεταφέρουμε τον αρχικό πίνακα από την Oracle Database ανοίγουμε το πρόγραμμα SQL Server 2019 Import and Export Data (64-bit) και επιλέγουμε ως Data source: Oracle Provider for OLE DB:
Πριν πατήσουμε Next στα Properties ως Data Source ορίζουμε την εγγραφή που προσθέσαμε στο tnsnames.ora (oracledb) και τα credentials που φτιάξαμε στην Oracle Database ως διαχειριστή του GoldenGate:
Στην επόμενη οθόνη ως Destination ορίζουμε SQL Server Native Client 11.0 , local, Use Windows Authentication και ως Database την βάση δεδομένων που θέλουμε να πηγαίνουν οι εγγραφές του πίνακα:
Ψάχνουμε τον πίνακα που θέλουμε να κάνουμε replicate, τον επιλέγουμε και στο Destination αλλάζουμε το σχήμα σε DBO:
Στο τέλος επιλέγουμε Run immediately:
Εναλλακτικά για πολύ μεγάλους πίνακες μπορούμε να σώσουμε την διαδικασία ως SSIS πακέτο και να το εκτελέσουμε από το Command Prompt με την παρακάτω εντολή:
dtexec /file transferpackage.dtsx
Καθώς όμως όταν τελειώσει δεν θα δημιουργήσει μόνο του το Primary Key με μοναδικές τιμές στον πίνακα, θα πρέπει να τρέξουμε το παρακάτω query:
alter table dbo.customers add primary key (id);
Εκκίνηση του Replicat process στο target
Είναι ώρα να ξεκινήσουμε το Replicat process στον target Windows SQL Server.
Συνδεόμαστε στο GoldenGate και τρέχουμε τα παρακάτω:
cd c:\goldengate
ggsci.exe
start sql_rep
Η δοκιμή
Για να δοκιμάσουμε αν λειτουργεί, το μόνο που έχουμε να κάνουμε είναι να αλλάξουμε μία εγγραφή στον πίνακα στην Oracle Database:
insert into stratos.customers values (11,'Maria'); commit;
Τώρα αν κάνουμε SELECT τον πίνακα στον SQL Server θα δούμε ότι έχει περάσει η εγραφή:
select * from dbo.customers;
Monitoring
Μπορούμε να δούμε την εξέλιξη του Replicat process στον target SQL Server κάνοντας SELECT τον checkpoint πίνακα:
select * from dbo.checkpointtable;
Μπορούμε να βρούμε πληροφορίες για το Extract process για το status του, πότε έτρεξε και την καθυστέρηση που έχει τρέχοντας μέσα από το GoldenGate interface του source server το παρακάτω:
info extract ora_ext, detail
Επίσης μπορούμε να βγάλουμε αναλυτικό report για process που περιέχει το log τρέχοντας μέσα από το GoldenGate interface του source server το παρακάτω:
view report ora_ext
Σε περίπτωση που δεν γνωρίζουμε αν έχει κολλήσει το process και την κατάσταση στην οποία βρίσκεται τρέχουμε το παρακάτω για να δούμε το status του:
send extract ora_ext, status
Sending STATUS request to EXTRACT ORA_EXT ...
EXTRACT ORA_EXT (PID 18940028)
Current status: In recovery[1]: Processing data
Current read position:
Redo thread #: 1
Sequence #: 740643
RBA: 5722361548
Timestamp: 2022-01-25 03:49:51.000000
SCN: 10.49577561 (42999250521)
Current write position:
Sequence #: 3870
RBA: 1300
Timestamp: 2022-01-25 15:34:32.843931
Extract Trail: ./dirdat/aa
Μπορούμε επίσης να δούμε το performance ενος extract ή replicat με την παρακάτω εντολή:
stats ora_rep
Replicating from STRATOS.CUSTOMERS to DBO.CUSTOMERS:
*** Total statistics since 2022-05-03 23:42:59 ***
Total inserts 17.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 17.00
*** Daily statistics since 2022-05-03 23:42:59 ***
Total inserts 17.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 17.00
*** Hourly statistics since 2022-05-03 23:42:59 ***
Total inserts 17.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 17.00
*** Latest statistics since 2022-05-03 23:42:59 ***
Total inserts 17.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 17.00
Τέλος μπορούμε να δούμε μέχρι ποιο trailfile μπορεί να γίνει auto purge και με τι ρυθμίσεις έχουμε για το auto purging :
SEND MGR GETPURGEOLDEXTRACTS
Sending GETPURGEOLDEXTRACTS request to MANAGER ...
PurgeOldExtracts Rules
Fileset MinHours MinFiles UseCP
/goldengate/dirdat/* 1 1 Y
OK
Extract Trails
Filename Oldest_Chkpt_Seqno
/goldengate/dirdat/aa 45
Πηγές:
- Oracle GoldenGate for Windows and UNIX (Choosing Capture and Apply Modes)
- Configuring Capture in Integrated Mode
- Oracle GoldenGate Parameters
- Oracle 12c (PDB) Replication to SQL Server 2016
- Preparing the Database for Oracle GoldenGate
- Configuring Classic Capture in Oracle Active Data Guard Only Mode
- INFO EXTRACT
- VIEW REPORT