Tarea 1: Configuración de las bases de datos de origen y destino para Oracle GoldenGate
Las bases de datos de Oracle GoldenGate de origen y destino se deben configurar mediante las siguientes recomendaciones.
Realice los pasos siguientes para completar esta tarea:
-
Paso 1.1: Configuración de la base de datos
-
Paso 1.2: Crear el usuario administrador de replicación de base de datos
-
Paso 1.3: Creación de los Servicios de Base de Datos
Paso 1.1: Configuración de la base de datos
Las bases de datos de Oracle GoldenGate de origen y destino se deben configurar mediante las siguientes recomendaciones:
| Configuración | Ámbito | Ejemplo |
|---|---|---|
| Activar Modo Archive Log | Origen y destino | 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 |
Activar FORCE LOGGING |
Origen y destino | ALTER DATABASE FORCE LOGGING; |
ENABLE_GOLDENGATE_REPLICATION |
Origen, Destino y Base de Datos en Espera | ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH SID='*'; |
| Registro Complementario | Origen Necesario en el destino para los casos en los que se revierte la replicación |
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; |
| Agregar registro de nivel de esquema o tabla para objetos replicados | Origen Necesario en el destino para los casos en los que se revierte la replicación |
ADD SCHEMATRANDATA o ADD TRANDATA |
STREAMS_POOL_SIZE |
Origen Necesario en el destino para los casos en los que se revierte la replicación |
El valor de
Por ejemplo, en una base de datos con 2 Extracts y 2 Replicats integrados:
ALTER SYSTEM SET STREAMS_POOL_SIZE=5G SCOPE=BOTH SID='*'; |
Para conocer los pasos para preparar la base de datos para Oracle GoldenGate, consulte Preparación de la base de datos para Oracle GoldenGate.
Paso 1.2: Crear el usuario administrador de replicación de base de datos
Las bases de datos de origen y destino necesitan que se cree un usuario administrador GoldenGate, con los privilegios adecuados asignados de la siguiente manera:
-
Para la base de datos del contenedor multiinquilino (CDB):
-
La base de datos de origen, GoldenGate Extract, se debe configurar para conectarse a un usuario de la base de datos de contenedores raíz mediante c##
-
Base de datos de destino, se necesita un usuario administrador GoldenGate independiente para cada base de datos conectable (PDB).
-
Para obtener más información sobre la creación de un administrador GoldenGate en una base de datos Oracle Multitenant, consulte Configuración de Oracle GoldenGate en una base de datos de contenedores multi-inquilino.
-
-
Para bases de datos no CDB, consulte Preparación de usuarios y privilegios de bases de datos para Oracle
Como usuario del sistema operativo oracle en el sistema de base de datos de origen, ejecute las siguientes instrucciones SQL para crear el usuario de base de datos para Oracle GoldenGate y asignar los privilegios necesarios:
[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');
Como usuario del sistema operativo oracle en el sistema de destino, ejecute las siguientes instrucciones SQL para crear el usuario de base de datos para Oracle GoldenGate y asignar los privilegios necesarios:
[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');
Paso 1.3: Creación de los Servicios de Base de Datos
Si las bases de datos de origen y destino están ejecutando la configuración recomendada en un cluster de Oracle RAC con Oracle Data Guard, se debe crear un servicio basado en roles que permita a los procesos de Extract o Replicat conectarse a la instancia de base de datos primaria de Data Guard correcta.
Al utilizar una base de datos multi-inquilino de origen, se necesita un servicio independiente para la base de datos de contenedor raíz (CDB) y la base de datos de conexión (PDB) que contiene el esquema que se está replicando. Para una base de datos multi-inquilino de destino, se necesita un único servicio para la PDB.
Como usuario del sistema operativo oracle en el sistema de base de datos principal, utilice dbaascli para buscar el nombre de la CDB y la PDB, como se muestra a continuación:
[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",
Como usuario del sistema operativo oracle en los sistemas de base de datos principal y en espera, cree e inicie el servicio de base de datos de CDB mediante el siguiente comando:
[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
Como usuario del sistema operativo oracle en los sistemas de base de datos primaria y en espera, cree e inicie el servicio de base de datos PDB con el siguiente comando:
[oracle@exadb1_node1 ~]$ srvctl add service -db $ORACLE_UNQNAME
-service dbName.pdbName.ggoraclevcn.com -preferred ORACLE_SID1
-available ORACLE_SID2 -pdb pdbName -role PRIMARY
Como usuario del sistema operativo oracle en los sistemas de base de datos primaria y en espera, inicie y verifique que los servicios se están ejecutando, como se muestra a continuación:
[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: Repita el paso 1.3 en el sistema de base de datos de origen y destino.