Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Replicación lógica para Amazon RDS para PostgreSQL

Modo de enfoque
Replicación lógica para Amazon RDS para PostgreSQL - Amazon Relational Database Service

A partir de la versión 10.4, RDS para PostgreSQL admite la sintaxis SQL de publicación y suscripción introducida en PostgreSQL 10. Para obtener más información, consulte Replicación lógica en la documentación de PostgreSQL.

nota

Además de la función de replicación lógica nativa de PostgreSQL introducida en PostgreSQL 10, RDS para PostgreSQL también admite la extensión pglogical. Para obtener más información, consulte Uso de pglogical para sincronizar datos entre instancias.

A continuación encontrará información sobre la configuración de la replicación lógica para una instancia de base de datos de RDS for PostgreSQL.

Comprensión de la replicación lógica y la descodificación lógica

RDS for PostgreSQL admite el streaming de los cambios del registro de escritura anticipada (WAL) mediante las ranuras de replicación lógica de PostgreSQL. También admite el uso de decodificación lógica. Puede configurar ranuras de replicación lógica en su instancia y transmitir los cambios de la base de datos a través de estas ranuras a un cliente como pg_recvlogical. Las ranuras de replicación lógica se crean a nivel de la base de datos y admiten conexiones de replicación a una única base de datos.

Los clientes más comunes para la replicación lógica de PostgreSQL son AWS Database Migration Service o un host administrado personalizado en una instancia de Amazon EC2. La ranura de replicación lógica no tiene información sobre el receptor de la transmisión. Además, no existe el requisito de que el destino sea una base de datos de réplica. Si configura una ranura de replicación lógica y no lee desde la ranura, los datos podrían escribirse y rellenarse rápidamente en el almacenamiento de la instancia de base de datos.

La replicación y descodificación lógicas de PostgreSQL en Amazon RDS se activan con un parámetro, un tipo de conexión de replicación y un rol de seguridad. El cliente para la descodificación lógica puede ser cualquier cliente que sea capaz de establecer una conexión de replicación con una base de datos en una instancia de base de datos PostgreSQL.

Para activar la descodificación lógica para una instancia de base de datos de RDS for PostgreSQL
  1. Asegúrese de que la cuenta de usuario que está utilizando tenga los siguientes roles:

    • El rol rds_superuser para poder activar la replicación lógica

    • El rol rds_replication para conceder permisos para administrar ranuras lógicas y para transmitir datos mediante ranuras lógicas

  2. Establezca el parámetro estático rds.logical_replication en 1. Como parte de la aplicación de este parámetro, también defina los parámetros wal_level, max_wal_senders, max_replication_slots y max_connections. Estos cambios de parámetro pueden incrementar la generación de WAL, por lo que el parámetro rds.logical_replication se debe configurar solo cuando se utilicen ranuras lógicas.

  3. Reinicie la instancia de base de datos para que el parámetro rds.logical_replication estático tenga efecto.

  4. Cree una ranura de replicación lógica como se indica en la siguiente sección. Este proceso necesita que especifique un complemento de descodificación. Actualmente, RDS for PostgreSQL admite los complementos de salida test_decoding y wal2json que se incluyen con PostgreSQL.

Para obtener más información acerca de la descodificación lógica de PostgreSQL, consulte la documentación de PostgreSQL.

Trabajo con ranuras de replicación lógica

Puede usar comandos de SQL para trabajar con las ranuras lógicas. Por ejemplo, el siguiente comando crea una ranura lógica denominada test_slot usando el complemento de salida predeterminado de PostgreSQL test_decoding.

SELECT * FROM pg_create_logical_replication_slot('test_slot', 'test_decoding'); slot_name | xlog_position -----------------+--------------- regression_slot | 0/16B1970 (1 row)

Para ver las ranuras lógicas, use el siguiente comando.

SELECT * FROM pg_replication_slots;

Para eliminar una ranura lógica, use el siguiente comando.

SELECT pg_drop_replication_slot('test_slot'); pg_drop_replication_slot ----------------------- (1 row)

Para ver más ejemplos del trabajo con ranuras de replicación lógica, consulte Logical Decoding Examples en la documentación de PostgreSQL.

Luego de crear la ranura de replicación lógica, se puede iniciar el streaming. El siguiente ejemplo muestra cómo se controla la decodificación lógica a través del protocolo de replicación del streaming. Este ejemplo utiliza el programa pg_recvlogical, que se incluye en la distribución de PostgreSQL. Esto requiere que la autenticación del cliente se configure para permitir las conexiones de replicación.

pg_recvlogical -d postgres --slot test_slot -U postgres --host -instance-name.111122223333.aws-region.rds.amazonaws.com -f - --start

Para ver el contenido de la vista pg_replication_origin_status, consulte la función pg_show_replication_origin_status.

SELECT * FROM pg_show_replication_origin_status(); local_id | external_id | remote_lsn | local_lsn ----------+-------------+------------+----------- (0 rows)
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.