Configuración de Oracle GoldenGate
Para configurar Oracle GoldenGate mediante Amazon RDS, tiene que configurar el hub en la instancia de Amazon EC2 y, a continuación, configurar las bases de datos de origen y de destino. Las siguientes secciones muestran un ejemplo de cómo configurar Oracle GoldenGate para usarlo con Amazon RDS para Oracle.
Temas
Configuración de un hub de Oracle GoldenGate en Amazon EC2
Para crear un hub de Oracle GoldenGate en una instancia de Amazon EC2, cree en primer lugar una instancia de Amazon EC2 con una instalación completa de cliente de Oracle DBMS. La instancia de Amazon EC2 también debe tener instalado el software GoldenGate de Oracle. Las versiones del software de Oracle GoldenGate dependen de las versiones de la base de datos de origen y destino. Para obtener más información acerca de la instalación de Oracle GoldenGate, consulte la documentación de Oracle GolgenGate
La instancia de Amazon EC2 que actúa de hub de Oracle GoldenGate almacena y procesa la información de las transacciones de la base de datos de origen a los archivos de trazado. Para admitir este proceso, asegúrese de que cumpla los siguientes requisitos:
-
Haber asignado suficiente espacio de almacenamiento para los archivos de seguimiento.
-
La instancia de Amazon EC2 tiene suficiente potencia de procesamiento para administrar la cantidad de datos.
-
La instancia EC2 tiene suficiente memoria para almacenar la información de transacción antes de que se escriba en el archivo de seguimiento.
Para configurar un hub de arquitectura clásica de Oracle GoldenGate en una instancia Amazon EC2
-
Cree los subdirectorios en el directorio de Oracle GoldenGate.
En el shell de la línea de comandos de Amazon EC2, lance
ggsci
, el intérprete del comando de Oracle GoldenGate. El comandoCREATE SUBDIRS
crea subdirectorios bajo el directorio/gg
para los archivos de parámetros, informes y puntos de comprobación.prompt$ cd /gg prompt$ ./ggsci GGSCI> CREATE SUBDIRS
-
Configure el archivo
mgr.prm
.El siguiente ejemplo añade líneas al archivo
$GGHOME/dirprm/mgr.prm
.PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
-
Inicie el administrador.
En el siguiente ejemplo se lanza
ggsci
y se ejecuta el comandostart mgr
.GGSCI> start mgr
El hub de Oracle GoldenGate ya se puede utilizar.
Configuración de una base de datos de origen para usarla con Oracle GoldenGate en Amazon RDS
Complete las siguientes tareas para configurar una base de datos de origen con el fin de utilizarla con Oracle GoldenGate.
Pasos de configuración
Paso 1: activar el registro suplementario en la base de datos de origen
Paso 2: establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en verdadero
Paso 3: establecer el período de retención del registro en la base de datos de origen
Paso 4: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de origen
Paso 5: conceder privilegios al usuario en la base de datos de origen
Paso 6: agregar un alias de TNS para la base de datos de origen
Paso 1: activar el registro suplementario en la base de datos de origen
Para activar el registro suplementario mínimo en el nivel de la base de datos, ejecute el siguiente procedimiento PL/SQL:
EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')
Paso 2: establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en verdadero
Al establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION
en true
, permite que los servicios de bases de datos admitan la replicación lógica. Si la base de datos de origen está en una instancia de base de datos de Amazon RDS, asegúrese de asignar un grupo de parámetros a dicha instancia de base de datos con el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION
establecido en true
. Para obtener más información acerca del parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION
, consulte la documentación de la base de datos de Oracle
Paso 3: establecer el período de retención del registro en la base de datos de origen
Asegúrese de configurar la base de datos de origen para retener los registros redo archivados. Tenga en cuenta estas directrices:
-
Especifique la duración de la retención de registros en horas. El valor mínimo es una hora.
-
Establezca la duración de manera que supere cualquier posible periodo de inactividad de la instancia de base de datos de origen, cualquier posible periodo de comunicación y cualquier posible periodo de problemas de red para dicha instancia de origen. Dicha duración permite a Oracle GoldenGate recuperar registros de la instancia de origen según sea necesario.
-
Asegúrese de que dispone de suficiente almacenamiento en la instancia para los archivos.
Por ejemplo, establezca el período de retención para los registros REDO archivados en 24 horas.
EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)
Si no tiene la retención de registros habilitada, o bien si el valor de retención es demasiado pequeño, recibirá un mensaje de error similar al siguiente.
2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.
Dado que la instancia de base de datos conserva los registros redo archivados, asegúrese de tener suficiente espacio para los archivos. Para ver cuánto espacio ha utilizado en las últimas num_hours
horas, utilice la siguiente consulta, sustituyendo num_hours
por el número de horas.
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG WHERE NEXT_TIME>=SYSDATE-
num_hours
/24 AND DEST_ID=1;
Paso 4: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de origen
Oracle GoldenGate se ejecuta como usuario de base de datos y requiere los privilegios de base de datos apropiados para obtener acceso a los registros redo y redo archivados para la base de datos de origen. Para proporcionarlos, cree una cuenta de usuario en la base de datos de origen. Para obtener más información sobre los permisos para una cuenta de usuario de Oracle GoldenGate, consulte la documentación de Oracle
Las siguientes instrucciones crean una cuenta de usuario llamada oggadm1
.
CREATE TABLESPACE administrator; CREATE USER oggadm1 IDENTIFIED BY "
password
" DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
nota
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.
Paso 5: conceder privilegios al usuario en la base de datos de origen
En esta tarea, concederá los privilegios de cuenta necesarios a los usuarios de la base de datos de la base de datos de origen.
Para conceder privilegios a la cuenta en la base de datos de origen
-
Conceda los privilegios necesarios a la cuenta de usuario de Oracle GoldenGate mediante el comando SQL
grant
y el procedimientogrant_sys_object
derdsadmin.rdsadmin_util
. Las siguientes instrucciones conceden privilegios a un usuario llamadooggadm1
.GRANT CREATE SESSION, ALTER SESSION TO oggadm1; GRANT RESOURCE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT FLASHBACK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT SELECT_CATALOG_ROLE TO
rds_master_user_name
WITH ADMIN OPTION; EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1'); GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1; GRANT SELECT ON SYS.V_$DATABASE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1; -
Otorgue los privilegios necesarios para que una cuenta de usuario sea administrador de Oracle GoldenGate. Ejecute el siguiente programa PL/SQL.
EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'capture', grant_select_privileges => true, do_grants => TRUE);
Para revocar privilegios, utilice el procedimiento
revoke_admin_privilege
en el mismo paquete.
Paso 6: agregar un alias de TNS para la base de datos de origen
Agregue la siguiente entrada a $ORACLE_HOME/network/admin/tnsnames.ora
en el directorio raíz de Oracle que utilizará el proceso EXTRACT
. Para obtener más información sobre el archivo tnsnames.ora
, consulte la documentación de Oracle
OGGSOURCE= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )
Configuración de una base de datos de destino para Oracle GoldenGate en Amazon RDS
En esta tarea, debe configurar una instancia de base de datos de destino para usarla con Oracle GoldenGate.
Pasos de configuración
Paso 2: establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en verdadero
Paso 2: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de destino
Paso 3: otorgar privilegios de cuenta en la base de datos de destino
Paso 4: agregar un alias de TNS para la base de datos de destino
Paso 2: establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en verdadero
Al establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION
en true
, permite que los servicios de bases de datos admitan la replicación lógica. Si la base de datos de origen está en una instancia de base de datos de Amazon RDS, asegúrese de asignar un grupo de parámetros a dicha instancia de base de datos con el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION
establecido en true
. Para obtener más información acerca del parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION
, consulte la documentación de la base de datos de Oracle
Paso 2: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de destino
Oracle GoldenGate se ejecuta como usuario de base de datos y requiere los privilegios de base de datos apropiados. Para asegurarse de que los tiene, cree una cuenta de usuario en la base de datos de destino.
La siguiente instrucción crea una cuenta de usuario llamada oggadm1
.
CREATE TABLESPSACE administrator; CREATE USER oggadm1 IDENTIFIED BY "
password
" DEFAULT TABLESPACE administrator TEMPORARY TABLESPACE temp; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
nota
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.
Paso 3: otorgar privilegios de cuenta en la base de datos de destino
En esta tarea, concederá los privilegios de cuenta necesarios a los usuarios de la base de datos en la base de datos de destino.
Para otorgar privilegios de cuenta en la base de datos de destino
-
Otorgue los privilegios necesarios a la cuenta de usuario de Oracle GoldenGate en la base de datos de destino. En el siguiente ejemplo, otorgará privilegios a
oggadm1
.GRANT CREATE SESSION TO oggadm1; GRANT ALTER SESSION TO oggadm1; GRANT CREATE CLUSTER TO oggadm1; GRANT CREATE INDEXTYPE TO oggadm1; GRANT CREATE OPERATOR TO oggadm1; GRANT CREATE PROCEDURE TO oggadm1; GRANT CREATE SEQUENCE TO oggadm1; GRANT CREATE TABLE TO oggadm1; GRANT CREATE TRIGGER TO oggadm1; GRANT CREATE TYPE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT CREATE ANY TABLE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1; GRANT LOCK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT INSERT ANY TABLE TO oggadm1; GRANT UPDATE ANY TABLE TO oggadm1; GRANT DELETE ANY TABLE TO oggadm1;
-
Otorgue los privilegios necesarios para que una cuenta de usuario sea administrador de Oracle GoldenGate. Ejecute el siguiente programa PL/SQL.
EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'apply', grant_select_privileges => true, do_grants => TRUE);
Para revocar privilegios, utilice el procedimiento
revoke_admin_privilege
en el mismo paquete.
Paso 4: agregar un alias de TNS para la base de datos de destino
Agregue la siguiente entrada a $ORACLE_HOME/network/admin/tnsnames.ora
en el directorio raíz de Oracle que utilizará el proceso REPLICAT
. Para las bases de datos Oracle Multitenant, asegúrese de que el alias TNS apunte hacia el nombre del servicio de la PDB. Para obtener más información sobre el archivo tnsnames.ora
, consulte la documentación de Oracle
OGGTARGET= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )