Aufgabe 1: Quell- und Zieldatenbanken für Oracle GoldenGate konfigurieren
Die Oracle GoldenGate-Quell- und -Zieldatenbanken müssen mit den folgenden Empfehlungen konfiguriert werden.
Gehen Sie folgendermaßen vor, um diese Aufgabe abzuschließen:
-
Schritt 1.1 - Datenbankkonfiguration
-
Schritt 1.2 - Datenbankreplikationsadministratorbenutzer erstellen
-
Schritt 1.3 - Datenbankservices erstellen
Schritt 1.1 - Datenbankkonfiguration
Die Oracle GoldenGate-Quell- und -Zieldatenbanken müssen mit den folgenden Empfehlungen konfiguriert werden:
| Konfiguration | Geltungsbereich | Beispiel |
|---|---|---|
| Archive-Logmodus aktivieren | Quelle und Zielgruppe | SQL> ARCHIVE LOG LIST Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 110 Next log sequence to archive 113 Current log sequence 113 |
FORCE LOGGING aktivieren |
Quelle und Zielgruppe | ALTER DATABASE FORCE LOGGING; |
ENABLE_GOLDENGATE_REPLICATION |
Quelle, Ziel und Standbys | ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH SID='*'; |
| Zusätzliches Logging | Quelle Für Fälle erforderlich, in denen die Replikation rückgängig gemacht wird |
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; |
| Logging auf Schema- oder Tabellenebene für replizierte Objekte hinzufügen | Quelle Für Fälle erforderlich, in denen die Replikation rückgängig gemacht wird |
ADD SCHEMATRANDATA oder ADD TRANDATA |
STREAMS_POOL_SIZE |
Quelle Für Fälle erforderlich, in denen die Replikation rückgängig gemacht wird |
Der Wert von
Beispiel: In einer Datenbank mit 2 Extrakten und 2 integrierten Replicats:
ALTER SYSTEM SET STREAMS_POOL_SIZE=5G SCOPE=BOTH SID='*'; |
Die Schritte zum Vorbereiten der Datenbank für Oracle GoldenGate finden Sie unter Datenbank für Oracle GoldenGate vorbereiten.
Schritt 1.2 - Datenbankreplikationsadministratorbenutzer erstellen
Für die Quell- und Zieldatenbank muss ein GoldenGate-Administratorbenutzer erstellt werden. Die entsprechenden Berechtigungen werden wie folgt zugewiesen:
-
Für die mehrmandantenfähige Containerdatenbank (CDB):
-
Quelldatenbank, GoldenGate Extract, muss so konfiguriert sein, dass eine Verbindung zu einem Benutzer in der Root-Containerdatenbank mit einem c## hergestellt wird
-
Zieldatenbank, ein separater GoldenGate-Administratorbenutzer ist für jede integrierbare Datenbank (PDB) erforderlich.
-
Weitere Informationen zum Erstellen eines GoldenGate-Administrators in einer Oracle Multitenant-Datenbank finden Sie unter Oracle GoldenGate in einer mehrmandantenfähigen Containerdatenbank konfigurieren.
-
-
Informationen zu Nicht-CDB-Datenbanken finden Sie unter Datenbankbenutzer und -berechtigungen für Oracle vorbereiten
Führen Sie als BS-Benutzer oracle im Quelldatenbanksystem die folgenden SQL-Anweisungen aus, um den Datenbankbenutzer für Oracle GoldenGate zu erstellen und die erforderlichen Berechtigungen zuzuweisen:
[opc@exadb1_node1 ~]$ sudo su - oracle
[oracle@exadb1_node1 ~]$ source dbName.env
[oracle@exadb1_node1 ~]$ sqlplus / as sysdba
# Source CDB
SQL>
alter session set container=cdb$root;
create user c##ggadmin identified by "ggadmin_password" container=all default tablespace USERS temporary tablespace temp;
alter user c##ggadmin quota unlimited on users;
grant set container to c##ggadmin container=all;
grant alter system to c##ggadmin container=all;
grant create session to c##ggadmin container=all;
grant alter any table to c##ggadmin container=all;
grant resource to c##ggadmin container=all;
exec dbms_goldengate_auth.grant_admin_privilege('c##ggadmin',container=>'all');
# Source PDB
SQL>
alter session set container=pdbName;
create user ggadmin identified by "ggadmin_password" container=current;
grant create session to ggadmin container=current;
grant alter any table to ggadmin container=current;
grant resource to ggadmin container=current;
exec dbms_goldengate_auth.grant_admin_privilege('ggadmin');
Führen Sie als BS-Benutzer oracle auf dem Zielsystem die folgenden SQL-Anweisungen aus, um den Datenbankbenutzer für Oracle GoldenGate zu erstellen und die erforderlichen Berechtigungen zuzuweisen:
[opc@exadb2_node1 ~]$ sudo su - oracle
[oracle@exadb2_node1 ~]$ source dbName.env
[oracle@exadb2_node1 ~]$ sqlplus / as sysdba
# Target PDB
SQL>
alter session set container=pdbName;
create user ggadmin identified by "ggadmin_password" container=current;
grant alter system to ggadmin container=current;
grant create session to ggadmin container=current;
grant alter any table to ggadmin container=current;
grant resource to ggadmin container=current;
grant dv_goldengate_admin, dv_goldengate_redo_access to ggadmin container=current;
exec dbms_goldengate_auth.grant_admin_privilege('ggadmin');
Schritt 1.3 - Datenbankservices erstellen
Wenn die Quell- und Zieldatenbank die empfohlene Konfiguration in einem Oracle RAC-Cluster mit Oracle Data Guard ausführen, muss ein rollenbasierter Service erstellt werden, mit dem die Extract- oder Replicat-Prozesse eine Verbindung zur richtigen Data Guard-Primärdatenbankinstanz herstellen können.
Wenn Sie eine mehrmandantenfähige Quelldatenbank verwenden, ist ein separater Service für die Root-Containerdatenbank (CDB) und die integrierbare Datenbank (PDB) erforderlich, die das zu replizierende Schema enthält. Bei einer mehrmandantenfähigen Zieldatenbank ist ein einzelner Service für die PDB erforderlich.
Verwenden Sie als BS-Benutzer oracle im Primärdatenbanksystem dbaascli, um den CDB- und PDB-Namen zu suchen, wie hier dargestellt:
[opc@exadb1_node1 ~]$ sudo su - oracle
[oracle@exadb1_node1 ~]$ source dbName.env
[oracle@exadb1_node1 ~]$ dbaascli database getDetails
--dbname dbName |egrep 'dbName|pdbName'
"dbName" : "dbName",
"pdbName" : "pdbName",
Erstellen und starten Sie als BS-Benutzer oracle in den Primär- und Standbydatenbanksystemen den CDB-Datenbankservice mit dem folgenden Befehl:
[opc@exadb1_node1 ~]$ sudo su - oracle
[oracle@exadb1_node1 ~]$ source dbName.env
[oracle@exadb1_node1 ~]$ srvctl add service -db $ORACLE_UNQNAME
-service dbName.ggoraclevcn.com -preferred ORACLE_SID1
-available ORACLE_SID2 -role PRIMARY
Erstellen und starten Sie als BS-Benutzer oracle auf den Primär- und Standbydatenbanksystemen den PDB-Datenbankservice mit dem folgenden Befehl:
[oracle@exadb1_node1 ~]$ srvctl add service -db $ORACLE_UNQNAME
-service dbName.pdbName.ggoraclevcn.com -preferred ORACLE_SID1
-available ORACLE_SID2 -pdb pdbName -role PRIMARY
Starten und prüfen Sie als BS-Benutzer oracle auf den Primär- und Standbydatenbanksystemen, ob die Services ausgeführt werden, wie hier dargestellt:
[oracle@exadb1_node1 ~]$ srvctl start service -db $ORACLE_UNQNAME -role
[oracle@exadb1_node1 ~]$ srvctl status service -d $ORACLE_UNQNAME |grep goldengate
Service dbName.ggoraclevcn.com is running on instance(s) SID1
Service dbName.pdbName.ggoraclevcn.com is running on instance(s) SID1
Hinweis: Wiederholen Sie Schritt 1.3 im Quell- und Zieldatenbanksystem.