Ejemplo: uso de la replicación lógica con clústeres de base de datos de Aurora PostgreSQL
En el siguiente procedimiento se muestra cómo iniciar la replicación lógica entre dos clústeres de base de datos de Aurora PostgreSQL. Tanto el publicador como el suscriptor deben estar configurados para la replicación lógica, tal como se detalla en Configuración de la replicación lógica para el clúster de base de datos de Aurora PostgreSQL.
El clúster de base de datos de Aurora PostgreSQL que es el publicador designado también debe permitir el acceso a la ranura de replicación. Para ello, modifique el grupo de seguridad asociado a la nube pública virtual (VPC) del clúster de base de datos de Aurora PostgreSQL en función del servicio Amazon VPC. Para permitir el acceso entrante, agregue el grupo de seguridad asociado a la VPC del suscriptor al grupo de seguridad del publicador. Para obtener más información, consulte Controlar el tráfico hacia los recursos mediante grupos de seguridad en la Guía del usuario de Amazon Virtual Private Cloud.
Una vez completados estos pasos preliminares, puede usar los comandos CREATE PUBLICATION
de PostgreSQL en el publicador y CREATE SUBSCRIPTION
en el suscriptor, tal como se detalla en el siguiente procedimiento.
Para iniciar la replicación lógica entre dos clústeres de base de datos de Aurora PostgreSQL.
En estos pasos se supone que los clústeres de base de datos de Aurora PostgreSQL tienen una instancia de escritor con una base de datos en la que crear las tablas de ejemplo.
En el clúster de base de datos de Aurora PostgreSQL de publicadores
Cree una tabla con la siguiente instrucción SQL.
CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
Inserte datos en la base de datos de publicador mediante la siguiente instrucción SQL.
INSERT INTO LogicalReplicationTest VALUES (generate_series(1,10000));
Compruebe que los datos existen en la tabla mediante la siguiente instrucción SQL.
SELECT count(*) FROM LogicalReplicationTest;
Cree una publicación para esta tabla mediante la instrucción
CREATE PUBLICATION
que se indica a continuación.CREATE PUBLICATION testpub FOR TABLE LogicalReplicationTest;
-
En el clúster de base de datos Aurora PostgreSQL de suscriptor
Cree la misma tabla
LogicalReplicationTest
en el suscriptor que creó en el publicador, de la siguiente manera.CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
Compruebe que esta tabla esté vacía.
SELECT count(*) FROM LogicalReplicationTest;
Crea una suscripción para recibir los cambios del publicador. Debe utilizar los siguientes detalles sobre el clúster de base de datos Aurora PostgreSQL de publicador.
host: la instancia de base de datos de escritor del clúster de base de datos de Aurora pPostgreSQL del publicador.
puerto: el puerto en el que la instancia de base de datos de escritor está a la escucha. El valor predeterminado de PostgreSQL es 5432.
dbname: el nombre de la base de datos.
CREATE SUBSCRIPTION testsub CONNECTION 'host=
publisher-cluster-writer-endpoint
port=5432 dbname=db-name
user=user
password=password
' PUBLICATION testpub;nota
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.
Una vez creada la suscripción, se crea una ranura de replicación lógica en el publicador.
Para comprobar en este ejemplo que se replican los datos iniciales en el suscriptor, use la siguiente instrucción SQL en la base de datos de suscriptor.
SELECT count(*) FROM LogicalReplicationTest;
Todo cambio adicional en el publicador se replicará en el suscriptor.
La replicación lógica afecta al rendimiento. Le recomendamos que desactive la replicación lógica una vez finalizadas las tareas de replicación.