mysql.rds_set_external_master - Amazon Relational Database Service

mysql.rds_set_external_master

Configura una instancia de base de datos de MySQL para que sea una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

importante

Para ejecutar este procedimiento, autocommit debe estar habilitado. Para habilitarlo, establezca el parámetro autocommit en 1. Para obtener información acerca de cómo modificar los parámetros, consulte Modificación de parámetros de un grupo de parámetros de base de datos.

nota

Puede utilizar el procedimiento almacenado mysql.rds_set_external_master_with_delay para configurar una instancia de base de datos de origen externo y replicación retardada.

Sintaxis

CALL mysql.rds_set_external_master ( host_name , host_port , replication_user_name , replication_user_password , mysql_binary_log_file_name , mysql_binary_log_file_location , ssl_encryption );

Parámetros

host_name

El nombre de host o la dirección IP de la instancia de MySQL que se ejecuta fuera de Amazon RDS para convertirse en instancia de base de datos de origen.

host_port

El puerto usado por la instancia de MySQL que se ejecuta fuera de Amazon RDS que se configurará como instancia de base de datos de origen. Si la configuración de la red incluye la replicación de puertos SSH (Secure Shell) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

replication_user_name

El ID de un usuario con permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de MySQL que se ejecuta fuera de Amazon RDS. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia externa.

replication_user_password

La contraseña del ID de usuario especificado en replication_user_name.

mysql_binary_log_file_name

El nombre del registro binario de la instancia de base de datos de origen que contiene la información de replicación.

mysql_binary_log_file_location

La ubicación del registro binario mysql_binary_log_file_name en la que la replicación empieza a leer la información de la replicación.

Para determinar el nombre y la ubicación del archivo binlog, puede ejecutar SHOW MASTER STATUS en la instancia de base de datos de origen.

ssl_encryption

Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.

nota

La opción MASTER_SSL_VERIFY_SERVER_CERT no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_external_master. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a configurar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

Antes de ejecutar mysql.rds_set_external_master, debe configurar la instancia de MySQL que se ejecuta fuera de Amazon RDS como instancia de base de datos de origen. Para conectarse a la instancia de MySQL que se ejecuta fuera de Amazon RDS, debe especificar los valores de replication_user_name y replication_user_password que indican un usuario de replicación que tiene los permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia externa de MySQL.

Para configurar una instancia externa de MySQL como instancia de base de datos de origen

  1. Con el cliente de MySQL que prefiera, conéctese a la instancia externa de MySQL y cree una cuenta de usuario que se usará para la replicación. A continuación, se muestra un ejemplo.

    MySQL 5.7

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

    MySQL 8.0

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY 'password';
  2. En la instancia externa de MySQL, conceda a REPLICATION CLIENT y a REPLICATION SLAVE privilegios para el usuario de replicación. En el siguiente ejemplo se conceden los privilegios REPLICATION CLIENT y REPLICATION SLAVE en todas las bases de datos al usuario "repl_user" de su dominio.

    MySQL 5.7

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';

    MySQL 8.0

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL. Asimismo, importe el certificado de la entidad de certificación, el certificado cliente y la clave cliente en la instancia de base de datos o clúster de base de datos mediante el procedimiento mysql.rds_import_binlog_ssl_material.

nota

Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte Trabajo con réplicas de lectura.

Después de llamar a mysql.rds_set_external_master para configurar una instancia de base de datos de Amazon RDS como réplica de lectura, puede llamar a mysql.rds_start_replication en la réplica de lectura para iniciar el proceso de replicación. Puede llamar a mysql.rds_reset_external_master para eliminar la configuración de la réplica de lectura.

Cuando se llama a mysql.rds_set_external_master, Amazon RDS registra la hora, el usuario y una acción set master en las tablas mysql.rds_history y mysql.rds_replication_status.

Ejemplos

Cuando se ejecuta en una instancia de base de datos de MySQL, el siguiente ejemplo configura la instancia de base de datos como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

call mysql.rds_set_external_master( 'Externaldb.some.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.0777', 120, 0);