¿Cómo puedo usar los registros binarios de una instancia de base de datos activa de Amazon RDS para MySQL para que se replique en una instancia de reserva local?

4 minutos de lectura
0

Quiero copiar una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) para MySQL a un servidor local.

Descripción corta

Para migrar datos de Amazon RDS para MySQL a un servidor de base de datos local, primero cree una réplica de lectura en AWS. A continuación, cambie el destino de replicación de la réplica de lectura de Amazon RDS para MySQL en el servidor local.

Si utiliza la replicación basada en GTID, consulte Configuración de la replicación de posición de archivo de registro binario con una instancia de origen externa.

Resolución

1.    Confirme que las copias de seguridad automatizadas estén activadas para la instancia de base de datos que quiera replicar. En este ejemplo, la instancia de base de datos es RDS-active.
Nota: El periodo mínimo de conservación de las copias de seguridad es de un día.

2.    Cree una réplica de lectura de la instancia de base de datos usando la misma configuración. En este ejemplo, la réplica es RDS-standby.

3.    Inicie sesión en la instancia de base de datos RDS-standby y confirme que la réplica esté capturada con RDS-active:

mysql> show slave status \G

Nota: El parámetro seconds_behind_master debe ser 0, lo que significa que la réplica no sufre ningún retraso.

4.    Detenga la replicación en RDS-standby:

mysql> call mysql.rds_stop_replication;

5.    Registre los datos de la réplica y, a continuación, anote los parámetros -log_file y -log_position:

mysql> show slave status \G

Nota: El parámetro -log_file es el valor de Relay_Master_Log_File y -log_position es el valor de Exec_Master_Log_Pos.

6.    Salga del terminal y utilice mysqldump (o una utilidad similar) para crear una copia de seguridad de RDS-standby que se replicará en el servidor de destino. En este ejemplo, el servidor local de destino es MySQL-target.

$ mysqldump -h hostname -u username -p dbname > backup_file_name.sql

7.    Después de crear la copia de seguridad, inicie sesión en MySQL-target para transferir el archivo correspondiente al servidor local de destino.

8.    Cree una nueva base de datos y, a continuación, restaure la base de datos mediante dumpfile en la nueva instancia de base de datos externa:

$ mysql -h hostname -u username -p dbname < backup_file_name.sql

9.    Inicie sesión en la instancia de base de datos RDS-active, configure un usuario de replicación y, a continuación, otorgue los privilegios necesarios al usuario. Asegúrese de reemplazar repl_user por su propio nombre de usuario de replicación.

mysql> create user repl_user@'%' identified by 'repl_user';
   mysql>grant replication slave, replication client on *.* to repl_user@'%';
   mysql>show grants for repl_user@'%';

Nota: Para obtener más información, consulte Replicación entre Aurora y MySQL o entre Aurora y otro clúster de base de datos de Aurora (replicación de registro binario).

10.    Inicie sesión en la instancia de base de datos de destino y, a continuación, detenga el servidor de MySQL.

11.    Modifique los parámetros del archivo my.cnf para que dirijan a su ID de servidor único y al nombre de la base de datos que quiera replicar desde la instancia de base de datos. Por ejemplo, server_id=2 y replicate-do-db=test.

12.    Guarde el archivo.

13.    Reinicie el servidor de MySQL en MySQL-target.

14.    Establezca una conexión a la instancia de base de datos RDS-active. Para ello, ejecute el siguiente comando en MySQL-target:

mysql> change master to master_host='rds-endpoint',master_user='repl_user', master_password='password', master_log_file='mysql-bin.000001', master_log_pos= 107;

15.    Confirme que MySQL-target puede conectarse a RDS-active.

Nota: Si usa Amazon Elastic Compute Cloud (Amazon EC2) como instancia de MySQL externa, permita las conexiones desde el grupo de seguridad o la dirección IP del grupo de seguridad de la instancia de base de datos RDS-active. Si usa un servidor externo de MySQL, ejecute telnet para comprobar la conectividad. Para obtener más información, consulte ¿Cómo soluciono los problemas de conexión con la instancia de base de datos de Amazon RDS?

RDS-Endpoint es el punto de conexión de la instancia de base de datos RDS-active. El nombre de usuario y la contraseña son los mismos que creó en el paso 9. MASTER_LOG_FILE y MASTER_LOG_POS son los valores indicados en el paso 5.

16.    Inicie sesión en MySQL-target e inicie la replicación:

mysql> start slave;

Compruebe que la replicación se esté sincronizando entre RDS-active y MySQL-target:

mysql> Show slave status\G

17.    Cuando los segundos después del elemento principal sean cero, podrá eliminar la instancia de base de datos RDS-standby.

Información relacionada

¿Cómo puedo migrar a una instancia de base de datos de edición compatible con Amazon RDS o Aurora MySQL mediante AWS DMS?

Exportación de datos desde una instancia de base de datos MySQL mediante replicación