Configuración de la Base de Datos
Software de base de datos para captura
Para capturar desde una base de datos PostgreSQL, Oracle GoldenGate necesita que se instale el plugin de base de datos test_decoding para la base de datos. Es posible que este plugin no se haya instalado por defecto cuando se instaló la base de datos.
Asegúrese de que el paquete postgresqlversion#-contrib esté instalado en el servidor de base de datos, como se muestra en el ejemplo:
sudo yum install postgresql14-contrib
Parámetros en el archivo de configuración de la base de datos PostgreSQL
Para Oracle GoldenGate, configure los siguientes parámetros en el archivo de configuración de la base de datos PostgreSQL, $PGDATA/postgresql.conf:
Nota: Estos cambios son necesarios para la base de datos PostgreSQL principal que Oracle GoldenGate capturará, así como para cualquier base de datos en espera desde la que Oracle GoldenGate pueda capturar en caso de fallo de la base de datos principal.
-
Para la conectividad remota de un Extract o Replicat, defina PostgreSQL
listen_addressespara permitir la conectividad remota de la base de datos. Por ejemplo:listen_addresses=remotehost_ip_addressNota: Asegúrese de que la autenticación de cliente está definida para permitir conexiones desde un host de Oracle GoldenGate mediante la configuración del archivo
pg_hba.conf. Para obtener más información, consulte este documento: The pg_hba.conf File -
Para soportar Oracle GoldenGate Extract, el registro de escritura anticipada se debe definir en
logical, que agrega la información necesaria para soportar la descodificación de registros transaccionales.El número máximo de ranuras de replicación se debe definir para alojar un espacio abierto por Extract y, en general, no se necesita más de un Extract por base de datos. Si, por ejemplo, la replicación nativa PostgreSQL ya está en uso y está utilizando todos los espacios de replicación configurados actualmente, aumente el valor para permitir el registro de un Extract.
Se deben definir los remitentes de escritura anticipada máximos para que coincidan con el valor máximo de ranuras de replicación.
Opcionalmente, los registros de hora de confirmación se pueden activar en el log de escritura anticipada, que cuando se define al mismo tiempo que se activa el registro lógico de escritura anticipada, realizará un seguimiento del primer registro de confirmación de DML desde ese momento, con el valor de registro de hora correcto. De lo contrario, el primer registro encontrado por la captura de Oracle GoldenGate tendrá un registro de hora de confirmación incorrecto.
wal_level = logical # set to logical for Capture max_replication_slots = 1 # max number of replication slots, # one slot per Extract/client max_wal_senders = 1 # one sender per max repl slot track_commit_timestamp = on # optional, correlates tx commit time # with begin tx log record (useful for # timestamp-based positioning) -
Después de realizar cualquiera de los cambios anteriores, reinicie la base de datos.
Utilice estas instrucciones para gestionar la configuración de la base de datos para Azure para PostgreSQL, Amazon Aurora PostgreSQL, Amazon RDS para PostgreSQL, Google AlloyDB para PostgreSQL y Google Cloud SQL para PostgreSQL.
Azure Database para PostgreSQL
Al configurar Oracle GoldenGate para PostgreSQL Extract en una base de datos de Azure para PostgreSQL, la descodificación lógica se debe activar y definir en LOGICAL.
Lea la documentación de Microsoft para obtener las instrucciones:
https://learn.microsoft.com/en-us/azure/postgresql/
Otros valores de base de datos para Azure Database for PostgreSQL se pueden gestionar mediante la sección Parámetros de servidor de la instancia de base de datos.
Para las conexiones a una instancia de Azure Database for PostgreSQL, la configuración de seguridad de conexión de Azure por defecto requiere conexiones SSL. Para cumplir este requisito, se necesitan más pasos para soportar conexiones SSL con Oracle GoldenGate.
Para obtener más información, siga el contenido que se muestra en Configuring SSL Support for PostgreSQL.
Amazon Aurora PostgreSQL y Amazon RDS para PostgreSQL
Para Amazon Aurora PostgreSQL y Amazon RDS para PostgreSQL, la configuración de la base de datos se modifica dentro de los grupos de parámetros.
Revise la documentación de Amazon AWS para obtener información sobre cómo editar la configuración de la base de datos dentro de un nuevo grupo de parámetros y asignarla a una instancia de base de datos:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
-
Asegúrese de que los valores de configuración de la base de datos mostrados anteriormente son correctos, verificándolos en el grupo de parámetros asignado a la instancia.
-
El valor
wal_levelpara los servicios de base de datos de Amazon se configura con un parámetro denominadords.logical_replication, cuyo valor por defecto es0y se debe definir en1si la base de datos se va a utilizar como base de datos origen para Oracle GoldenGate Extract. -
Amazon RDS no admite anteponer o iniciar el nombre de la ranura de replicación con la cadena
rds. El comando que utiliza Oracle GoldenGate Extract para crear el espacio de replicación devuelve un error si el nombre del espacio de replicación empieza por la cadenards. Por ejemplo, puede asignar a la ranura de replicación el nombreordscdcen lugar derdscdcpara evitar este error, como se muestra en el siguiente ejemplo:select slot_name from pg_create_logical_replication_slot('ordscdc', 'test_decoding');Este comando agrega la ranura de replicación
ordscdc. Sin embargo, si utiliza el nombre de la ranura de replicación comordscdc, se producirá el siguiente error:ERROR: must be superuser or replication role to use logical replication slots in the 'rds' namespace
Limitación:
En Amazon Aurora PostgreSQL versión 12.17, si se ejecuta el comando SHOW en mayúscula, informa el siguiente error:
"ERROR: must be superuser or replication role to run this operation."
Debe utilizar el comando SHOW en minúscula para evitar este error.
Google AlloyDB para PostgreSQL
A partir de la versión 21.14 de Oracle GoldenGate, Oracle GoldenGate admite Google AlloyDB para PostgreSQL. Al configurar Oracle GoldenGate para PostgreSQL Extract para AlloyDB de Google para PostgreSQL, el parámetro (indicador) alloydb.logical_decoding configuration se debe definir en ON.
Google Cloud SQL para PostgreSQL
Al configurar Oracle GoldenGate para PostgreSQL Extract para una base de datos de Google Cloud SQL para PostgreSQL, se debe definir la descodificación lógica y se realiza definiendo la variable cloudsql.logical_decoding en ON. Siga las instrucciones proporcionadas por Google sobre cómo activar este indicador de base de datos. Para obtener más información, consulte https://cloud.google.com/sql/docs/postgres/flags#postgres-l.