Configuración de la replicación basada en GTID con una instancia de origen externa - Amazon Relational Database Service

Configuración de la replicación basada en GTID con una instancia de origen externa

Se puede configurar la reproducción basada en identificadores de transacciones globales (GTID) desde una instancia de MariaDB externa de una versión 10.0.24 o posterior en una instancia de base de datos MariaDB. Siga estas directrices al configurar una instancia de origen externa y una réplica en Amazon RDS:

  • Monitorice los eventos de conmutación por error para la instancia de base de datos de for MariaDB que sea su réplica. Si se produce una conmutación por error, la instancia de base de datos que es la réplica se puede 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.

  • Mantenga los registros binarios (binlogs) en la instancia de origen hasta que haya verificado que se han aplicado en la réplica. Este mantenimiento garantiza que puede restaurar la instancia de origen en caso de error.

  • Active las copias de seguridad automatizadas en su instancia de base de datos de MariaDB en Amazon RDS. La activación de las copias de seguridad automatizadas garantiza que puede restaurar su réplica a un momento dado si necesita volver a sincronizar la instancia de origen y la réplica. Para obtener información acerca de las copias de seguridad y la restauración a un momento dado, consulte Copia de seguridad, restauración y exportación de datos.

nota

Los permisos requeridos para comenzar la replicación en una instancia de base de datos MariaDB están restringidos y no están disponibles para el usuario maestro Amazon RDS. Por este motivo, debe usar los comandos Amazon RDS, mysql.rds_set_external_master_gtid y mysql.rds_start_replication para configurar la replicación entre su base de datos en funcionamiento y su base de datos de Amazon RDS for MariaDB.

Para iniciar la replicación entre una instancia de origen externa y una instancia de base de datos de MariaDB en Amazon RDS, utilice el siguiente procedimiento.

Para iniciar la replicación
  1. Configure la instancia de MariaDB de origen como de solo lectura:

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Obtenga el GTID actual de la instancia de MariaDB externa. Puede hacerlo usando mysql o el editor de consultas que prefiera para ejecutar SELECT @@gtid_current_pos;.

    El GTID tiene el formato <domain-id>-<server-id>-<sequence-id>. Un GTID típico tiene un aspecto similar a 0-1234510749-1728. Para obtener más información acerca de los GTID y sus componentes, consulte Global Transaction ID en la documentación de MariaDB.

  3. Copie la base de datos de la instancia de MariaDB externa en la instancia de base de datos de MariaDB co mysqldump. Para las bases de datos muy grandes, puede usar el procedimiento que se describe en Importación de datos a una base de datos de Amazon RDS MariaDB o MySQL con un tiempo de inactividad reducido.

    Para Linux, macOS, o Unix:

    mysqldump \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u local_user \ -plocal_password | mysql \ --host=hostname \ --port=3306 \ -u RDS_user_name \ -pRDS_password

    En Windows:

    mysqldump ^ --databases database_name ^ --single-transaction ^ --compress ^ --order-by-primary \ -u local_user \ -plocal_password | mysql ^ --host=hostname ^ --port=3306 ^ -u RDS_user_name ^ -pRDS_password
    nota

    Asegúrese de que no haya ningún espacio entre la opción -p y la contraseña que haya escrito.

    Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

    Use las opciones --host, --user (-u), --port y -p del comando mysql para especificar el nombre de host, el nombre de usuario, el puerto y la contraseña para conectarse a la instancia de base de datos MariaDB. El nombre de host es el nombre de DNS tomado del punto de enlace de la instancia de base de datos MariaDB, por ejemplo myinstance.123456789012.us-east-1.rds.amazonaws.com. Puede encontrar el valor del punto de enlace en los detalles de la instancia en la consola de administración de Amazon RDS.

  4. Haga que la instancia de MariaDB de origen vuelva a admitir la escritura.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
  5. En la consola de administración Amazon RDS, agregue la dirección IP del servidor que aloja la base de datos MariaDB externa en el grupo de seguridad de VPC de la instancia de base de datos MariaDB. Para obtener más información acerca de la modificación de un grupo de seguridad de VPC, vaya a Grupos de seguridad de su VPC en la Guía del usuario de Amazon Virtual Private Cloud.

    La dirección IP puede cambiar cuando se cumplen las siguientes condiciones:

    • Está usando una dirección IP pública para la comunicación entre la instancia de origen externa y la instancia de base de datos.

    • La instancia de origen externa se detuvo y se reinició.

    Si se cumplen esas condiciones, compruebe la dirección IP antes de añadirla.

    Es posible que también necesite configurar la red local para permitir las conexiones desde la dirección IP de la instancia de base de datos MariaDB, para que pueda comunicarse con la instancia de MariaDB externa. Para encontrar la dirección IP de la instancia de base de datos MariaDB, use el comando host.

    host db_instance_endpoint

    El nombre de host es el nombre de DNS tomado del punto de enlace de la instancia de base de datos MariaDB.

  6. Con el cliente que prefiera, conéctese a la instancia de MariaDB externa y cree un usuario de MariaDB que se usará para la replicación. Esta cuenta se usa únicamente para la replicación y debe estar limitada a su dominio para mejorar la seguridad. A continuación, se muestra un ejemplo.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
    nota

    Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

  7. Para la instancia de MariaDB externa, conceda a REPLICATION CLIENT y a REPLICATION SLAVE privilegios para el usuario de replicación. Por ejemplo, para conceder los privilegios REPLICATION CLIENT y REPLICATION SLAVE en todas las bases de datos al usuario "repl_user" del dominio, ejecute el siguiente comando.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  8. Defina la instancia de base de datos MariaDB como réplica. Conéctese a la instancia de base de datos MariaDB como usuario maestro e identifique la base de datos MariaDB externa como instancia de origen de replicación mediante el comando mysql.rds_set_external_master_gtid. Use el GTID que determinó en el paso 2. A continuación, se muestra un ejemplo.

    CALL mysql.rds_set_external_master_gtid ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'GTID', 0);
    nota

    Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

  9. En la instancia de base de datos MariaDB, ejecute el comando mysql.rds_start_replication para comenzar la replicación:

    CALL mysql.rds_start_replication;