Configuración de la replicación de registros binarios para Aurora MySQL - Amazon Aurora

Configuración de la replicación de registros binarios para Aurora MySQL

La configuración de la replicación de MySQL con Aurora MySQL incluye los siguientes pasos, que se describen en detalle:

1. Activar el registro binario en el origen de replicación

Puede encontrar instrucciones acerca del procedimiento para activar el registro binario en el origen de replicación de su motor de base de datos a continuación.

2. Retenga los registros binarios en el origen de replicación hasta que dejen de ser necesarios

Cuando se utiliza la replicación de registro binario de MySQL, Amazon RDS no administra el proceso de replicación. Como resultado, debe asegurarse de que los archivos binlog del origen de replicación se retienen hasta que los cambios se hayan aplicado a la réplica. Este mantenimiento le ayuda a restaurar la base de datos de origen si se produce un error.

Consulte las siguientes instrucciones para conservar registros binarios para el motor de base de datos.

3. Creación de una copia o un volcado del origen de replicación

Debe usar una instantánea, un clon o un volcado del origen de replicación para cargar una copia de línea de base de los datos en la réplica. A continuación, debe empezar a replicar desde ese punto.

Use las siguientes instrucciones para crear una copia o un volcado del origen de la replicación de su motor de base de datos.

4. Carga del volcado en el destino de la réplica (si fuera necesario)

Si va a cargar datos desde un volcado de una base de datos de MySQL que sea externa a Amazon RDS, puede crear una instancia de EC2 para copiar en ella los archivos del volcado. A continuación, puede cargar los datos en el clúster de base de datos o la instancia de base de datos desde esa instancia de EC2. Con este método, puede comprimir los archivos de volcado antes de copiarlos en la instancia de EC2 con el fin de reducir los costos de la red asociados con la copia de datos en Amazon RDS. También puede cifrar el archivo o los archivos de volcado para proteger los datos mientras se transfieren por la red.

nota

Si crea un nuevo clúster de base de datos de Aurora MySQL como destino de la réplica, no necesita cargar un archivo de volcado:

Use las siguientes instrucciones para cargar el volcado del origen de replicación en el destino de la réplica para su motor de base de datos.

5. Cree un usuario de replicación en su origen de replicación

Además, cree un ID de usuario en el origen que solo se utilice para la replicación. El siguiente ejemplo es para bases de datos de origen de RDS para MySQL o MySQL externas.

mysql> CREATE USER 'repl_user'@'domain_name' IDENTIFIED BY 'password';

Para las bases de datos de origen de Aurora MySQL, el parámetro del clúster de base de datos skip_name_resolve está establecido en 1 (ON) y no se puede modificar, por lo que debe usar una dirección IP para el host en lugar de un nombre de dominio. Para obtener más información, consulte skip_name_resolve en la documentación de MySQL.

mysql> CREATE USER 'repl_user'@'IP_address' IDENTIFIED BY 'password';

El usuario requiere los privilegios REPLICATION CLIENT y REPLICATION SLAVE. Conceda estos privilegios al usuario.

Si necesita usar la replicación cifrada, exija conexiones SSL al usuario de la replicación. Por ejemplo, puede utilizar una de estas instrucciones para exigir el uso de conexiones SSL en la cuenta de usuario repl_user.

GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'IP_address';
GRANT USAGE ON *.* TO 'repl_user'@'IP_address' REQUIRE SSL;
nota

Si REQUIRE SSL no se incluye, la conexión de replicación podría cambiarse inadvertidamente por una conexión sin cifrar.

6. Active la replicación en el destino de la réplica

Antes de activar la replicación, se recomienda que realice una instantánea manual del clúster de base de datos de Aurora MySQL o del destino de la réplica de la instancia de base de datos de RDS for MySQL. Si surge un problema y tiene que restablecer la replicación con el clúster de base de datos o el destino de la réplica de instancia de base de datos, puede restaurar el clúster de base de datos o la instancia de base de datos desde esta instantánea en lugar de tener que volver a importar los datos en el destino de la réplica.

Utilice las siguientes instrucciones para activar la replicación para su motor de base de datos.

Si la replicación falla, puede provocar un gran aumento de la E/S no intencionada en la réplica, lo que puede degradar el rendimiento. Si la replicación falla o ya no se necesita, puede ejecutar el procedimiento almacenado mysql.rds_reset_external_master (Aurora MySQL versión 2) o mysql.rds_reset_external_source (Aurora MySQL versión 3) para eliminar la configuración de la replicación.

Establecimiento de una ubicación para detener la replicación en una réplica de lectura

En la versión 3.04 y versiones posteriores de Aurora MySQL, puede utilizar el procedimiento almacenado mysql.rds_start_replication_until (versión 3 de Aurora MySQL) para iniciar la replicación y volver a detenerla en una ubicación concreta del registro binario.

Para iniciar la replicación en una réplica de lectura y detenerla en una ubicación concreta
  1. Use un cliente de MySQL para conectarse como usuario maestro a la réplica del clúster de base de datos MySQL.

  2. Ejecute el procedimiento almacenado mysql.rds_start_replication_until (versión 3 de Aurora MySQL).

    En el ejemplo siguiente se inicia la replicación y se replican los cambios hasta que alcanza la ubicación 120 del archivo registro binario mysql-bin-changelog.000777. En una situación de recuperación de desastres, supongamos que la ubicación 120 es justo anterior al desastre.

    call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);

La replicación se detiene automáticamente cuando se alcanza el punto de detención. Se genera el siguiente evento de RDS: Replication has been stopped since the replica reached the stop point specified by the rds_start_replication_until stored procedure.

Si usa una replicación basada en GTID, use el procedimiento almacenado mysql.rds_start_replication_until_gtid (versión 3 de Aurora MySQL) en lugar del procedimiento almacenado mysql.rds_start_replication_until (versión 3 de Aurora MySQL). Para obtener más información sobre la replicación basada en GTID, consulte Uso de la replicación basada en GTID.

7. Monitoree su réplica

Al configurar una replicación de MySQL con un clúster de base de datos Aurora MySQL, debe monitorizar los eventos de conmutación por error para el clúster de base de datos Aurora MySQL cuando se trate del destino de la réplica. Si se produce una conmutación por error, el clúster de base de datos que es el destino de la réplica se podrá volver a crear en un nuevo host con una dirección de red diferente. Para obtener información acerca de la monitorización de los eventos de conmutación por error, consulte Uso de notificaciones de eventos de Amazon RDS.

También puede supervisar el retardo entre el origen de replicación y el destino de la réplica conectándose al destino de la réplica y ejecutando el comando SHOW SLAVE STATUS (versión 2 de Aurora MySQL) o SHOW REPLICA STATUS (versión 3 de Aurora MySQL). En la salida del comando, el campo Seconds Behind Master indica cuánto retardo tiene el destino de la réplica con respecto al origen.

Sincronización de contraseñas entre el origen de replicación y el destino

Cuando cambia cuentas de usuario y contraseñas en el origen de replicación mediante instrucciones SQL, dichos cambios se replican automáticamente en el destino de replicación.

Si utiliza la AWS Management Console, la AWS CLI o la API de RDS para cambiar la contraseña maestra en el origen de replicación, esos cambios no se replican automáticamente en el destino de replicación. Si desea sincronizar el usuario maestro y la contraseña maestra entre los sistemas de origen y destino, debe realizar el mismo cambio en el destino de replicación usted mismo.