Task 1: configurare i database di origine e di destinazione per Oracle GoldenGate
I database Oracle GoldenGate di origine e destinazione devono essere configurati utilizzando i suggerimenti riportati di seguito.
Per completare questo task, effettuare le operazioni riportate di seguito.
-
Passo 1.1 - Configurazione del database
-
Passo 1.2 - Creare l'utente amministratore della replica del database
-
Passo 1.3 - Creare i servizi di database
Passo 1.1 - Configurazione del database
I database Oracle GoldenGate di origine e destinazione devono essere configurati utilizzando i suggerimenti riportati di seguito.
| Configurazione | Ambito | Esempio |
|---|---|---|
| Abilita modalità ARCHIVELOG | Origine e target | 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 |
Abilita FORCE LOGGING |
Origine e target | ALTER DATABASE FORCE LOGGING; |
ENABLE_GOLDENGATE_REPLICATION |
Origine, destinazione e standby | ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH SID='*'; |
| Log supplementare | Origine Obbligatorio sulla destinazione per i casi in cui la replica viene annullata |
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; |
| Aggiungi log a livello di schema o tabella per gli oggetti replicati | Origine Obbligatorio sulla destinazione per i casi in cui la replica viene annullata |
ADD SCHEMATRANDATA o ADD TRANDATA |
STREAMS_POOL_SIZE |
Origine Obbligatorio sulla destinazione per i casi in cui la replica viene annullata |
Il valore di
Ad esempio, in un database con 2 estrazioni e 2 repliche integrate:
ALTER SYSTEM SET STREAMS_POOL_SIZE=5G SCOPE=BOTH SID='*'; |
Per i passi per la preparazione del database per Oracle GoldenGate, vedere Preparazione del database per Oracle GoldenGate.
Passo 1.2 - Creare l'utente amministratore della replica del database
Per i database di origine e di destinazione è necessario creare un utente amministratore GoldenGate con privilegi appropriati assegnati come indicato di seguito.
-
Per il container database (CDB) multi-tenant:
-
Il database di origine, GoldenGate Extract, deve essere configurato per connettersi a un utente nel container database radice, utilizzando un c##
-
Il database di destinazione è un utente amministratore GoldenGate separato per ogni pluggable database (PDB).
-
Per ulteriori dettagli sulla creazione di un amministratore GoldenGate in un database Oracle Multitenant, vedere Configurazione di Oracle GoldenGate in un container database multi-tenant.
-
-
Per i database non CDB, vedere Preparare gli utenti e i privilegi del database per Oracle
Come utente del sistema operativo oracle nel sistema di database di origine, eseguire le istruzioni SQL riportate di seguito per creare l'utente del database per Oracle GoldenGate e assegnare i privilegi necessari.
[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');
Come utente del sistema operativo oracle nel sistema di destinazione, eseguire le istruzioni SQL riportate di seguito per creare l'utente del database per Oracle GoldenGate e assegnare i privilegi necessari.
[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');
Passo 1.3 - Creare i servizi di database
Se i database di origine e di destinazione eseguono la configurazione consigliata in un cluster Oracle RAC con Oracle Data Guard, è necessario creare un servizio basato su ruoli che consenta ai processi Extract o Replicat di connettersi all'istanza di database primario Data Guard corretta.
Quando si utilizza un database multi-tenant di origine, è necessario un servizio separato per il container database (CDB) root e il pluggable database (PDB) che contiene lo schema da replicare. Per un database multi-tenant di destinazione, è necessario un singolo servizio per il PDB.
Come utente del sistema operativo oracle nel sistema di database primario, utilizzare dbaascli per trovare il nome CDB e PDB, come mostrato qui:
[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",
Come utente del sistema operativo oracle nei sistemi di database primario e in standby, creare e avviare il servizio di database CDB utilizzando il comando seguente:
[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
Come utente del sistema operativo oracle nei sistemi di database primario e in standby, creare e avviare il servizio di database PDB utilizzando il comando seguente:
[oracle@exadb1_node1 ~]$ srvctl add service -db $ORACLE_UNQNAME
-service dbName.pdbName.ggoraclevcn.com -preferred ORACLE_SID1
-available ORACLE_SID2 -pdb pdbName -role PRIMARY
Come utente del sistema operativo oracle nei sistemi di database primario e in standby, avviare e verificare che i servizi siano in esecuzione, come mostrato qui:
[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
Nota: ripetere il passo 1.3 nel sistema di database di origine e di destinazione.