Tâche 1 : configurer les bases de données source et cible pour Oracle GoldenGate
Les bases de données Oracle GoldenGate source et cible doivent être configurées avec les recommandations suivantes.
Pour effectuer cette tâche, procédez comme suit :
-
Etape 1.1 - Configuration de la base de données
-
Etape 1.2 - Création de l'administrateur de réplication de base de données
-
Etape 1.3 - Création des services de base de données
Etape 1.1 - Configuration de la base de données
Les bases de données Oracle GoldenGate source et cible doivent être configurées à l'aide des recommandations suivantes :
| Configuration | Portée | Exemple |
|---|---|---|
| Activer le mode de consignation des archives | Source et Cible | 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 |
Activer FORCE LOGGING |
Source et Cible | ALTER DATABASE FORCE LOGGING; |
ENABLE_GOLDENGATE_REPLICATION |
Source, cible et bases de données de secours | ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH SID='*'; |
| Journalisation supplémentaire | Source Obligatoire sur la cible pour les cas d'inversion de réplication |
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; |
| Ajouter une journalisation au niveau schéma ou table pour les objets répliqués | Source Obligatoire sur la cible pour les cas d'inversion de réplication |
ADD SCHEMATRANDATA ou ADD TRANDATA |
STREAMS_POOL_SIZE |
Source Obligatoire sur la cible pour les cas d'inversion de réplication |
La valeur de
Par exemple, dans une base de données avec 2 extractions et 2 répliques intégrées :
ALTER SYSTEM SET STREAMS_POOL_SIZE=5G SCOPE=BOTH SID='*'; |
Pour connaître les étapes de préparation de la base de données pour Oracle GoldenGate, reportez-vous à Préparation de la base de données pour Oracle GoldenGate.
Etape 1.2 - Création de l'administrateur de réplication de base de données
Les bases de données source et cible nécessitent la création d'un administrateur GoldenGate, avec les privilèges appropriés affectés comme suit :
-
Pour la base de données Conteneur colocatrice :
-
Base de données source, l'extraction GoldenGate doit être configurée pour se connecter à un utilisateur dans la base de données Conteneur racine, à l'aide d'un c##
-
La base de données cible, un utilisateur administrateur GoldenGate distinct, est nécessaire pour chaque base de données pluggable.
-
Pour plus d'informations sur la création d'un administrateur GoldenGate dans une base de données Oracle Multitenant, reportez-vous à Configuration d'Oracle GoldenGate dans une base de données Conteneur colocative.
-
-
Pour les bases de données non Conteneur, reportez-vous à Préparation des utilisateurs et des privilèges de base de données pour Oracle.
En tant qu'utilisateur du système d'exploitation oracle sur le système de base de données source, exécutez les instructions SQL suivantes pour créer l'utilisateur de base de données pour Oracle GoldenGate et affecter les privilèges requis :
[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');
En tant qu'utilisateur du système d'exploitation oracle sur le système cible, exécutez les instructions SQL suivantes pour créer l'utilisateur de base de données pour Oracle GoldenGate et affecter les privilèges requis :
[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');
Etape 1.3 - Création des services de base de données
Si les bases de données source et cible exécutent la configuration recommandée sur un cluster Oracle RAC avec Oracle Data Guard, un service basé sur les rôles doit être créé pour permettre aux processus Extract ou Replicat de se connecter à l'instance de base de données principale Data Guard appropriée.
Lorsque vous utilisez une base de données colocative source, un service distinct est requis pour la base de données Conteneur racine et la base de données pluggable qui contient le schéma en cours de réplication. Pour une base de données colocative cible, un seul service est requis pour la base de données pluggable.
En tant qu'utilisateur du système d'exploitation oracle sur le système de base de données principale, utilisez dbaascli pour rechercher le nom de la base de données Conteneur et de la base de données pluggable, comme indiqué ici :
[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",
En tant qu'utilisateur du système d'exploitation oracle sur les systèmes de base de données principale et de secours, créez et démarrez le service de base de données Conteneur à l'aide de la commande suivante :
[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
En tant qu'utilisateur du système d'exploitation oracle sur les systèmes de base de données principale et de secours, créez et démarrez le service de base de données pluggable à l'aide de la commande suivante :
[oracle@exadb1_node1 ~]$ srvctl add service -db $ORACLE_UNQNAME
-service dbName.pdbName.ggoraclevcn.com -preferred ORACLE_SID1
-available ORACLE_SID2 -pdb pdbName -role PRIMARY
En tant qu'utilisateur du système d'exploitation oracle sur les systèmes de base de données principale et de secours, démarrez et vérifiez que les services sont en cours d'exécution, comme indiqué ici :
[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
Remarque : répétez l'étape 1.3 dans le système de base de données source et cible.