Replicación - Amazon Aurora

Replicación

Puede invocar los siguientes procedimientos almacenados cuando esté conectado a la instancia principal en un clúster de Aurora MySQL. Estos procedimientos controlan la forma en la que se replican las transacciones desde una base de datos externa en Aurora MySQL o desde Aurora MySQL a una base de datos externa. Para conocer cómo utilizar la replicación basada en identificadores de transacción global (GTID) con Aurora MySQL, consulte Uso de la replicación basada en GTID.

mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL versión 3)

Configura la opción ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS de la instrucción CHANGE REPLICATION SOURCE TO. Hace que el canal de replicación asigne un GTID a las transacciones replicadas que no tienen uno. De esta forma, puede realizar la replicación de registros binarios desde un origen que no utiliza la replicación basada en GTID en una réplica que sí. Para obtener más información, consulte la instrucción CHANGE REPLICATION SOURCE TO y Replicación desde un origen sin GTID a una réplica con GTID en el Manual de referencia de MySQL.

Sintaxis

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

Parámetros

gtid_option

Valor de cadena. Los valores permitidos son OFF, LOCAL o un UUID especificado.

Notas de uso

Este procedimiento tiene el mismo efecto que la emisión de la instrucción CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option en la comunidad MySQL.

El GTID debe dirigirse a ON para gtid_option que se configurará en LOCAL o un UUID específico.

El valor predeterminado es OFF, lo que significa que la característica no se utiliza.

LOCAL asigna un GTID que incluye el UUID de la réplica (la configuración server_uuid).

Al pasar un parámetro que es UUID se asigna un GTID que incluye el UUID especificado, como la configuración server_uuid para el servidor de origen de replicación.

Ejemplos

Para desactivar esta característica:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('OFF'); +-------------------------------------------------------------+ | Message | +-------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: OFF | +-------------------------------------------------------------+ 1 row in set (0.07 sec)

Para utilizar el UUID de la réplica:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('LOCAL'); +---------------------------------------------------------------+ | Message | +---------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: LOCAL | +---------------------------------------------------------------+ 1 row in set (0.07 sec)

Para utilizar un UUID especificado:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('317a4760-f3dd-3b74-8e45-0615ed29de0e'); +----------------------------------------------------------------------------------------------+ | Message | +----------------------------------------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: 317a4760-f3dd-3b74-8e45-0615ed29de0e | +----------------------------------------------------------------------------------------------+ 1 row in set (0.07 sec)

mysql.rds_disable_session_binlog (versión 2 de Aurora MySQL)

Desactiva el registro binario de la sesión actual mediante la configuración de la variable sql_log_bin a OFF.

Sintaxis

CALL mysql.rds_disable_session_binlog;

Parámetros

Ninguna

Notas de uso

Para un clúster de bases de datos de Aurora MySQL, puede invocar este procedimiento almacenado cuando esté conectado a la instancia principal.

Para Aurora, este procedimiento se admite en la versión 2.12 y versiones posteriores compatibles con MySQL 5.7 de Aurora MySQL.

nota

En la versión 3 de Aurora MySQL, puede usar el siguiente comando para deshabilitar el registro binario de la sesión actual si tiene el privilegio SESSION_VARIABLES_ADMIN:

SET SESSION sql_log_bin = OFF;

mysql.rds_enable_session_binlog (versión 2 de Aurora MySQL)

Activa el registro binario de la sesión actual mediante la configuración de la variable sql_log_bin a ON.

Sintaxis

CALL mysql.rds_enable_session_binlog;

Parámetros

Ninguna

Notas de uso

Para un clúster de bases de datos de Aurora MySQL, puede invocar este procedimiento almacenado cuando esté conectado a la instancia principal.

Para Aurora, este procedimiento se admite en la versión 2.12 y versiones posteriores compatibles con MySQL 5.7 de Aurora MySQL.

nota

En la versión 3 de Aurora MySQL, puede usar el siguiente comando para habilitar el registro binario de la sesión actual si tiene el privilegio SESSION_VARIABLES_ADMIN:

SET SESSION sql_log_bin = ON;

mysql.rds_gtid_purged (versión 3 de Aurora MySQL)

Establece el valor global de la variable de sistema gtid_purged a un conjunto de identificadores de transacciones globales (GTID) determinado. La variable de sistema gtid_purged es un conjunto de GTID que consta de los GTID de todas las transacciones que se han confirmado en el servidor, pero que no existen en ningún archivo de registro binario del servidor.

Hay dos maneras de establecer el valor de gtid_purged para que sea compatible con MySQL 8.0:

  • Reemplace el valor de gtid_purged con el conjunto de GTID especificado.

  • Anexe el conjunto de GTID especificado al conjunto de GTID que ya contiene gtid_purged.

Sintaxis

Para reemplazar el valor de gtid_purged con el conjunto de GTID especificado:

CALL mysql.rds_gtid_purged (gtid_set);

Para anexar el valor de gtid_purged al conjunto de GTID especificado:

CALL mysql.rds_gtid_purged (+gtid_set);

Parámetros

gtid_set

El valor de gtid_set debe ser un superconjunto del valor actual de gtid_purged, y no puede cruzarse con gtid_subtract(gtid_executed,gtid_purged). Es decir, el nuevo conjunto de GTID debe incluir todos los GTID que ya estuvieron en gtid_purged, y no puede incluir ningún GTID en gtid_executed que aún no se haya purgado. El parámetro gtid_set tampoco puede incluir ningún GTID que esté en el conjunto gtid_owned global, los GTID de las transacciones que se están procesando actualmente en el servidor.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_gtid_purged.

Este procedimiento es compatible con la versión 3.04 y versiones posteriores de Aurora MySQL.

Ejemplos

En el siguiente ejemplo, se asigna el GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 a la variable global gtid_purged.

CALL mysql.rds_gtid_purged('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_import_binlog_ssl_material

Importa el certificado de la entidad de certificación, el certificado de cliente y la clave de cliente a un clúster de base de datos de Aurora MySQL. La información es necesaria para la comunicación SSL y la replicación cifrada.

nota

Actualmente, este procedimiento es compatible con la versión 2: 2.09.2, 2.10.0, 2.10.1 y 2.11.0; y la versión 3: 3.01.1 y posteriores de Aurora MySQL.

Sintaxis

CALL mysql.rds_import_binlog_ssl_material ( ssl_material );

Parámetros

ssl_material

Carga JSON que incluye el contenido de los siguientes archivos con formato .pem para un cliente MySQL:

  • "ssl_ca":"certificado de la entidad de certificación"

  • "ssl_cert":"certificado cliente"

  • "ssl_key":"clave cliente"

Notas de uso

Prepare la replicación cifrada antes de ejecutar este procedimiento:

  • Si no tiene SSL habilitado en la instancia de base de datos de origen MySQL externa y no dispone de una clave cliente ni de un certificado cliente, habilite SSL en el servidor de base de datos de MySQL y genere la clave cliente y el certificado cliente necesarios.

  • Si SSL está habilitado en la instancia de base de datos de origen externa, proporcione una clave cliente y un certificado cliente para el clúster de base de datos de Aurora MySQL. Si no los tiene, genere una nueva clave y certificado para el clúster de base de datos Aurora MySQL. Para firmar el certificado cliente, debe tener la clave de la entidad de certificación que usó para configurar SSL en la instancia de base de datos de origen MySQL externa.

Para obtener más información, consulte Creating SSL Certificates and Keys Using openssl en la documentación de MySQL.

importante

Después de preparar la replicación cifrada, use una conexión SSL para ejecutar este procedimiento. La clave cliente no se debe transferir en una conexión que no sea segura.

Este procedimiento importa la información de SSL de una base de datos MySQL externa a un clúster de base de datos Aurora MySQL. La información de SSL está en archivos con formato .pem que contienen la información de SSL del clúster de base de datos Aurora MySQL. Durante la replicación cifrada, el clúster de base de datos Aurora MySQL actúa como un cliente en el servidor de base de datos MySQL. Los certificados y las claves del cliente de Aurora MySQL son archivos con formato .pem.

Puede copiar la información de estos archivos en el parámetro ssl_material en la carga JSON correcta. Para permitir la replicación cifrada, importe esta información de SSL en el clúster de base de datos Aurora MySQL.

La carga JSON debe tener el siguiente formato.

'{"ssl_ca":"-----BEGIN CERTIFICATE----- ssl_ca_pem_body_code -----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE----- ssl_cert_pem_body_code -----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY----- ssl_key_pem_body_code -----END RSA PRIVATE KEY-----\n"}'

Ejemplos

En el siguiente ejemplo, se importa la información de SSL en Aurora MySQL. En los archivos con formato .pem, el código del cuerpo suele ser más grande que el que se muestra en el ejemplo.

call mysql.rds_import_binlog_ssl_material( '{"ssl_ca":"-----BEGIN CERTIFICATE----- AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE -----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE----- AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE -----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY----- AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE -----END RSA PRIVATE KEY-----\n"}');

mysql.rds_next_master_log (Aurora MySQL versión 2)

Cambia la posición del registro de instancia de base de datos de origen al inicio del siguiente registro binario en la instancia de base de datos de origen. Use este procedimiento únicamente si aparece el error de E/S de replicación 1236 en una réplica de lectura.

Sintaxis

CALL mysql.rds_next_master_log( curr_master_log );

Parámetros

curr_master_log

El índice del archivo de registro maestro actual. Por ejemplo, si el nombre del archivo actual es mysql-bin-changelog.012345, el índice es 12345. Para determinar el nombre del archivo de log maestro actual, ejecute el comando SHOW REPLICA STATUS y vea el campo Master_Log_File.

nota

Versiones anteriores de MySQL utilizaban SHOW SLAVE STATUS en lugar de SHOW REPLICA STATUS. Si usa una versión de MySQL anterior a la 8.0.23, utilice SHOW SLAVE STATUS.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_next_master_log.

aviso

Llame a mysql.rds_next_master_log solo si la replicación deja de funcionar tras una conmutación por error de una instancia de base de datos Multi-AZ que es el origen de la replicación y el campo Last_IO_Errno de SHOW REPLICA STATUS muestra el error de E/S 1236.

La llamada a mysql.rds_next_master_log puede provocar una pérdida de datos en la réplica de lectura si las transacciones de la instancia de origen no se escribieron en el registro binario en el disco antes del evento de conmutación por error.

Ejemplos

Supongamos que la replicación falla en una réplica de lectura de Aurora MySQL. La ejecución de SHOW REPLICA STATUS\G en la réplica de lectura devuelve el siguiente resultado:

*************************** 1. row *************************** Replica_IO_State: Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: MasterUser Source_Port: 3306 Connect_Retry: 10 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: relaylog.012340 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 30223232 Relay_Log_Space: 5248928866 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Master: NULL Source_SSL_Verify_Server_Cert: No Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 67285976

El campo Last_IO_Errno muestra que la instancia ha recibido el error de E/S 1236. El campo Master_Log_File muestra que el nombre de archivo es mysql-bin-changelog.012345, lo que significa que el índice del archivo de registro es 12345. Para resolver el error, puede llamar a mysql.rds_next_master_log con el siguiente parámetro:

CALL mysql.rds_next_master_log(12345);
nota

Versiones anteriores de MySQL utilizaban SHOW SLAVE STATUS en lugar de SHOW REPLICA STATUS. Si usa una versión de MySQL anterior a la 8.0.23, utilice SHOW SLAVE STATUS.

mysql.rds_next_source_log (Aurora MySQL versión 3)

Cambia la posición del registro de instancia de base de datos de origen al inicio del siguiente registro binario en la instancia de base de datos de origen. Use este procedimiento únicamente si aparece el error de E/S de replicación 1236 en una réplica de lectura.

Sintaxis

CALL mysql.rds_next_source_log( curr_source_log );

Parámetros

curr_source_log

El índice del archivo de registro de origen actual. Por ejemplo, si el nombre del archivo actual es mysql-bin-changelog.012345, el índice es 12345. Para determinar el nombre del archivo de registro de origen actual, ejecute el comando SHOW REPLICA STATUS y vea el campo Source_Log_File.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_next_source_log.

aviso

Llame a mysql.rds_next_source_log solo si la replicación deja de funcionar tras una conmutación por error de una instancia de base de datos Multi-AZ que es el origen de la replicación y el campo Last_IO_Errno de SHOW REPLICA STATUS muestra el error de E/S 1236.

La llamada a mysql.rds_next_source_log puede provocar una pérdida de datos en la réplica de lectura si las transacciones de la instancia de origen no se escribieron en el registro binario en el disco antes del evento de conmutación por error.

Ejemplos

Supongamos que la replicación genera un error en una réplica de lectura de Aurora MySQL. La ejecución de SHOW REPLICA STATUS\G en la réplica de lectura devuelve el siguiente resultado:

*************************** 1. row *************************** Replica_IO_State: Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: MasterUser Source_Port: 3306 Connect_Retry: 10 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: relaylog.012340 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 30223232 Relay_Log_Space: 5248928866 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source: NULL Source_SSL_Verify_Server_Cert: No Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from source when reading data from binary log: 'Client requested source to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 67285976

El campo Last_IO_Errno muestra que la instancia ha recibido el error de E/S 1236. El campo Source_Log_File muestra que el nombre de archivo es mysql-bin-changelog.012345, lo que significa que el índice del archivo de registro es 12345. Para resolver el error, puede llamar a mysql.rds_next_source_log con el siguiente parámetro:

CALL mysql.rds_next_source_log(12345);

mysql.rds_remove_binlog_ssl_material

Elimina el certificado de la entidad de certificación, el certificado cliente y la clave cliente para las comunicaciones SSL y la replicación cifrada. Esta información se importa mediante mysql.rds_import_binlog_ssl_material.

Sintaxis

CALL mysql.rds_remove_binlog_ssl_material;

mysql.rds_reset_external_master (Aurora MySQL versión 2)

Vuelve a configurar una instancia de base de datos de Aurora MySQL para que deje de ser 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.

Sintaxis

CALL mysql.rds_reset_external_master;

Notas de uso

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

nota

Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Recomendamos que utilice réplicas de Aurora para administrar la replicación dentro de un clúster de base de datos de Aurora MySQL siempre que sea posible. Para obtener información sobre la administración de la replicación en clústeres de base de datos de Aurora MySQL, consulte Uso de réplicas de Aurora.

Para obtener más información acerca del uso de la replicación para importar los datos desde una instancia de MySQL que se ejecuta fuera de Aurora MySQL, 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).

mysql.rds_reset_external_source (Aurora MySQL versión 3)

Vuelve a configurar una instancia de base de datos de Aurora MySQL para que deje de ser 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.

Sintaxis

CALL mysql.rds_reset_external_source;

Notas de uso

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

nota

Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Recomendamos que utilice réplicas de Aurora para administrar la replicación dentro de un clúster de base de datos de Aurora MySQL siempre que sea posible. Para obtener información sobre la administración de la replicación en clústeres de base de datos de Aurora MySQL, consulte Uso de réplicas de Aurora.

mysql.rds_set_binlog_source_ssl (Aurora MySQL versión 3)

Habilita el cifrado SOURCE_SSL para la replicación de binlog. Para obtener más información, consulte CHANGE REPLICATION SOURCE TO statement en la documentación de MySQL.

Sintaxis

CALL mysql.rds_set_binlog_source_ssl(mode);

Parámetros

mode

Valor que indica si está habilitado el cifrado SOURCE_SSL:

  • 0: el cifrado SOURCE_SSL está deshabilitado. El valor predeterminado es 0.

  • 1: el cifrado SOURCE_SSL está habilitado. Puede configurar el cifrado mediante SSL o TLS.

Notas de uso

Este procedimiento es compatible con la versión 3.06 y versiones posteriores de Aurora MySQL.

mysql.rds_set_external_master (Aurora MySQL versión 2)

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

El procedimiento mysql.rds_set_external_master está en desuso y se eliminará en la próxima versión. En su lugar, use mysql.rds_set_external_source.

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.

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';
    nota

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

  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

Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Recomendamos que utilice réplicas de Aurora para administrar la replicación dentro de un clúster de base de datos de Aurora MySQL siempre que sea posible. Para obtener información sobre la administración de la replicación en clústeres de base de datos de Aurora MySQL, consulte Uso de réplicas de Aurora.

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 (Aurora MySQL versión 2) 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);

mysql.rds_set_external_master_with_auto_position (Aurora MySQL versión 2)

Permite configurar una instancia principal de Aurora MySQL para aceptar la replicación entrante desde una instancia MySQL externa. Este procedimiento también configura la replicación basada en identificadores de transacciones globales (GTID).

Este procedimiento no configura la replicación retardada, porque Aurora MySQL no admite este tipo de replicación.

Sintaxis

CALL mysql.rds_set_external_master_with_auto_position ( host_name , host_port , replication_user_name , replication_user_password , 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 Aurora que se convertirá en el maestro de replicación.

host_port

El puerto usado por la instancia de MySQL que se ejecuta fuera de Aurora que se configurará como maestra de la replicación. 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

ID de un usuario con permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de MySQL que se ejecuta fuera de Aurora. 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.

ssl_encryption

Esta opción no está implementada actualmente. El valor predeterminado es 0.

Notas de uso

Para un clúster de bases de datos de Aurora MySQL, puede invocar este procedimiento almacenado cuando esté conectado a la instancia principal.

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_external_master_with_auto_position. El usuario maestro ejecuta este procedimiento en la instancia principal de un clúster de bases de datos de Aurora MySQL que funciona como un destino de replicación. Este puede ser el destino de replicación de una instancia de MySQL externo o un clúster de bases de datos Aurora MySQL.

Este procedimiento se admite para la versión 2 de Aurora MySQL. Para Aurora MySQL versión 3, utilice el procedimiento mysql.rds_set_external_source_with_auto_position (Aurora MySQL versión 3) en su lugar.

Antes de ejecutar mysql.rds_set_external_master_with_auto_position, configure la instancia de base de datos de MySQL para que sea un maestro de replicación. Para conectar la instancia de MySQL externa, especifique valores para replication_user_name y replication_user_password. Estos valores deben indicar a un usuario de replicación que tiene permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia externa de MySQL.

Para configurar una instancia externa de MySQL como maestro de replicación
  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.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
  2. En la instancia de MySQL externa, 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.

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

Cuando invoque mysql.rds_set_external_master_with_auto_position, Amazon RDS registra determinada información. Esta información es la hora, el usuario y una acción de "set master" en las tablas de mysql.rds_history y mysql.rds_replication_status.

Para omitir una transacción específica basada en GTID que se sabe que causa un problema, puede usar el procedimiento almacenado mysql.rds_skip_transaction_with_gtid. Para obtener más información sobre el uso de la replicación basada en GTID, consulte Uso de la replicación basada en GTID.

Ejemplos

Cuando se ejecuta en una instancia principal de Aurora, el siguiente ejemplo configura el clúster de Aurora para que actúe como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Aurora.

call mysql.rds_set_external_master_with_auto_position( 'Externaldb.some.com', 3306, 'repl_user'@'mydomain.com', 'SomePassW0rd');

mysql.rds_set_external_source (Aurora MySQL versión 3)

Configura una instancia de base de datos de Aurora 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.

Sintaxis

CALL mysql.rds_set_external_source ( 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

Debe haber importado un certificado SSL personalizado mediante mysql.rds_import_binlog_ssl_material para habilitar esta opción. Si no ha importado un certificado SSL personalizado, defina este parámetro en 0 y utilice mysql.rds_set_binlog_source_ssl (Aurora MySQL versión 3) para habilitar el SSL para la replicación de registros binarios.

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_source. Este procedimiento se debe ejecutar en la instancia de base de datos de Aurora 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_source, 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';
    nota

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

  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 del cliente y la clave de 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

Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Recomendamos que utilice réplicas de Aurora para administrar la replicación dentro de un clúster de base de datos de Aurora MySQL siempre que sea posible. Para obtener información sobre la administración de la replicación en clústeres de base de datos de Aurora MySQL, consulte Uso de réplicas de Aurora.

Después de llamar a mysql.rds_set_external_source para configurar una instancia de base de datos de Aurora MySQL 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_source para eliminar la configuración de la réplica de lectura.

Cuando se llama a mysql.rds_set_external_source, 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 Aurora 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_source( 'Externaldb.some.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.0777', 120, 0);

mysql.rds_set_external_source_with_auto_position (Aurora MySQL versión 3)

Permite configurar una instancia principal de Aurora MySQL para aceptar la replicación entrante desde una instancia MySQL externa. Este procedimiento también configura la replicación basada en identificadores de transacciones globales (GTID).

Sintaxis

CALL mysql.rds_set_external_source_with_auto_position ( host_name , host_port , replication_user_name , replication_user_password , 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 Aurora que se convertirá en el origen de replicación.

host_port

El puerto usado por la instancia de MySQL que se ejecuta fuera de Aurora que se configurará como origen de la replicación. 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

ID de un usuario con permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de MySQL que se ejecuta fuera de Aurora. 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.

ssl_encryption

Esta opción no está implementada actualmente. El valor predeterminado es 0.

nota

Utilice mysql.rds_set_binlog_source_ssl (Aurora MySQL versión 3) para habilitar SSL para replicación de registros binarios.

Notas de uso

Para un clúster de bases de datos de Aurora MySQL, puede invocar este procedimiento almacenado cuando esté conectado a la instancia principal.

El usuario administrativo debe ejecutar el procedimiento mysql.rds_set_external_source_with_auto_position. El usuario administrativo ejecuta este procedimiento en la instancia principal de un clúster de bases de datos de Aurora MySQL que funciona como un destino de replicación. Este puede ser el destino de replicación de una instancia de MySQL externo o un clúster de bases de datos Aurora MySQL.

Este procedimiento se admite para Aurora MySQL versión 3. Este procedimiento no configura la replicación retardada, porque Aurora MySQL no admite este tipo de replicación.

Antes de ejecutar mysql.rds_set_external_source_with_auto_position, configure la instancia de base de datos de MySQL para que sea un origen de replicación. Para conectar la instancia de MySQL externa, especifique valores para replication_user_name y replication_user_password. Estos valores deben indicar a un usuario de replicación que tiene permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia externa de MySQL.

Para configurar una instancia externa de MySQL como origen de replicación
  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.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
  2. En la instancia de MySQL externa, 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.

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

Cuando invoque mysql.rds_set_external_source_with_auto_position, Amazon RDS registra determinada información. Esta información es la hora, el usuario y una acción de "set master" en las tablas de mysql.rds_history y mysql.rds_replication_status.

Para omitir una transacción específica basada en GTID que se sabe que causa un problema, puede usar el procedimiento almacenado mysql.rds_skip_transaction_with_gtid/>. Para obtener más información sobre el uso de la replicación basada en GTID, consulte Uso de la replicación basada en GTID.

Ejemplos

Cuando se ejecuta en una instancia principal de Aurora, el siguiente ejemplo configura el clúster de Aurora para que actúe como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Aurora.

call mysql.rds_set_external_source_with_auto_position( 'Externaldb.some.com', 3306, 'repl_user'@'mydomain.com', 'SomePassW0rd');

mysql.rds_set_master_auto_position (Aurora MySQL versión 2)

Establece el modo de replicación en el que se debe basar ya sea en posiciones de archivos de registros binarios o en identificadores de transacciones globales (GTID).

Sintaxis

CALL mysql.rds_set_master_auto_position ( auto_position_mode );

Parámetros

auto_position_mode

Un valor que indicar si debe usarse la replicación de posición de los archivos de registro o la replicación basada en GTID:

  • 0: utilice el método de replicación basado en la posición del archivo de registro binario. El valor predeterminado es 0.

  • 1: utilice el método de replicación basado en GTID.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_master_auto_position.

Este procedimiento se admite para la versión 2 de Aurora MySQL.

mysql.rds_set_read_only (Aurora MySQL versión 3)

Activa o desactiva el modo read_only globalmente para la instancia de base de datos.

Sintaxis

CALL mysql.rds_set_read_only(mode);

Parámetros

mode

Valor que indica si el modo read_only está activado o desactivado globalmente para la instancia de base de datos:

  • 0: OFF. El valor predeterminado es 0.

  • 1ON

Notas de uso

El procedimiento almacenado mysql.rds_set_read_only modifica solo el parámetro read_only. El parámetro innodb_read_only no se puede cambiar en las instancias de bases de datos del lector.

El cambio del parámetro read_only no persiste al reiniciarse. Para realizar cambios permanentes en read_only, debe usar el parámetro de clúster de base de datos read_only.

Este procedimiento es compatible con la versión 3.06 y versiones posteriores de Aurora MySQL.

mysql.rds_set_session_binlog_format (versión 2 de Aurora MySQL)

Establece el formato de registro binario de la sesión actual.

Sintaxis

CALL mysql.rds_set_session_binlog_format(format);

Parámetros

formato

Un valor que indica el formato de registro binario de la sesión actual:

  • STATEMENT: el origen de la replicación escribe los eventos en el registro binario en función de instrucciones SQL.

  • ROW: el origen de la replicación escribe los eventos en el registro binario que indican los cambios en las filas individuales de la tabla.

  • MIXED: el registro se basa generalmente en instrucciones SQL, pero cambia a filas en determinadas condiciones. Para obtener más información, consulte Mixed Binary Logging Format en la documentación de MySQL.

Notas de uso

Para un clúster de bases de datos de Aurora MySQL, puede invocar este procedimiento almacenado cuando esté conectado a la instancia principal.

Para utilizar este procedimiento almacenado, debe tener configurado el registro binario para la sesión actual.

Para Aurora, este procedimiento se admite en la versión 2.12 y versiones posteriores compatibles con MySQL 5.7 de Aurora MySQL.

mysql.rds_set_source_auto_position (Aurora MySQL versión 3)

Establece el modo de replicación en el que se debe basar ya sea en posiciones de archivos de registros binarios o en identificadores de transacciones globales (GTID).

Sintaxis

CALL mysql.rds_set_source_auto_position (auto_position_mode);

Parámetros

auto_position_mode

Un valor que indicar si debe usarse la replicación de posición de los archivos de registro o la replicación basada en GTID:

  • 0: utilice el método de replicación basado en la posición del archivo de registro binario. El valor predeterminado es 0.

  • 1: utilice el método de replicación basado en GTID.

Notas de uso

Para un clúster de bases de datos de Aurora MySQL, puede invocar este procedimiento almacenado cuando esté conectado a la instancia principal.

El usuario administrativo debe ejecutar el procedimiento mysql.rds_set_source_auto_position.

mysql.rds_skip_transaction_with_gtid (Aurora MySQL versión 2 y 3)

Omite la replicación de una transacción con el identificador de transacción global (GTID) especificado en una instancia principal de Aurora.

Puede utilizar este procedimiento para la recuperación de desastres cuando se sabe que una transacción de GTID específica causa un problema. Utilice este procedimiento almacenado para omitir la transacción problemática. Entre los ejemplos de transacciones problemáticas se incluyen transacciones que inhabilitan la replicación, eliminan datos importantes o provocan que la instancia de base de datos no esté disponible.

Sintaxis

CALL mysql.rds_skip_transaction_with_gtid ( gtid_to_skip );

Parámetros

gtid_to_skip

El GTID de la transacción de replicación que se debe omitir.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_skip_transaction_with_gtid.

Este procedimiento se admite para Aurora MySQL versión 2 y 3.

Ejemplos

En el ejemplo siguiente se omite la replicación de la transacción con el GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23.

CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_skip_repl_error

Omite y elimina un error de replicación en una réplica de lectura de base de datos de MySQL.

Sintaxis

CALL mysql.rds_skip_repl_error;

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_skip_repl_error en una réplica de lectura. Para obtener más información sobre este procedimiento, consulte Skipping the current replication error (Omitir el error de replicación actual).

Para determinar si hay errores, ejecute el comando SHOW REPLICA STATUS\G de MySQL. Si un error de replicación no es crítico, puede ejecutar mysql.rds_skip_repl_error para omitir el error. Si hay varios errores, mysql.rds_skip_repl_error elimina el primer error y advierte de que hay otros presentes. A continuación, puede usar SHOW REPLICA STATUS\G para determinar la acción correcta para el siguiente error. Para obtener información acerca de los valores devueltos, consulte SHOW REPLICA STATUS statement (Instrucción SHOW REPLICA STATUS) en la documentación de MySQL.

nota

Versiones anteriores de MySQL utilizaban SHOW SLAVE STATUS en lugar de SHOW REPLICA STATUS. Si usa una versión de MySQL anterior a la 8.0.23, utilice SHOW SLAVE STATUS.

Para obtener más información acerca de la resolución de problemas de replicación con Aurora MySQL, consulte Diagnóstico y solución de un error de replicación de lectura de MySQL.

Error de replicación detenida

Al llamar al procedimiento mysql.rds_skip_repl_error, es posible que reciba un mensaje de error en el que se indica que la réplica tiene un error o está deshabilitada.

Este mensaje de error aparece si ejecuta el procedimiento en la instancia principal en lugar de en la réplica de lectura. Debe ejecutar este procedimiento en la réplica de lectura para que funcione.

Este mensaje de error también puede aparecer si ejecuta el procedimiento en la réplica de lectura, pero la replicación no se puede reiniciar correctamente.

Si tiene que omitir un número de errores elevado, el retardo de réplica puede aumentar por encima del periodo de retención predeterminado para los archivos de log binarios (binlog). En este caso, puede producirse un error fatal debido a que los archivos binlog se están limpiando antes de reproducirse de nuevo en la réplica de lectura. Esta limpieza hace que la replicación se detenga y ya no se puede llamar al comando mysql.rds_skip_repl_error para omitir los errores de replicación.

Puede mitigar este problema incrementando el número de horas que los archivos binlog se retienen en la instancia de base de datos de origen. Después de incrementar el tiempo de retención de los archivos binlog, puede reiniciar la replicación y llamar al comando mysql.rds_skip_repl_error si es necesario.

Para definir el tiempo de retención de binlog, use el procedimiento mysql.rds_set_configuration y especifique un parámetro de configuración de 'binlog retention hours' junto con el número de horas para retener los archivos binlog en el clúster de base de datos. El ejemplo siguiente define el periodo de retención de los archivos binlog en 48 horas.

CALL mysql.rds_set_configuration('binlog retention hours', 48);

mysql.rds_start_replication

Inicia la replicación desde un clúster de base de datos de Aurora MySQL.

nota

Puede utilizar el procedimiento almacenado mysql.rds_start_replication_until (versión 3 de Aurora MySQL) o mysql.rds_start_replication_until_gtid (versión 3 de Aurora MySQL) para iniciar la replicación desde una instancia de base de datos de Aurora MySQL y detener la replicación en la ubicación del archivo de registro binario especificado.

Sintaxis

CALL mysql.rds_start_replication;

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_start_replication.

Para importar datos desde una instancia de MySQL fuera de Amazon RDS, llame a mysql.rds_start_replication en la réplica de lectura para iniciar el proceso de replicación después de llamar a mysql.rds_set_external_master o mysql.rds_set_external_source para crear la configuración de replicación. 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).

Para exportar datos a una instancia de MySQL externa a Amazon RDS, llame a mysql.rds_start_replication y a mysql.rds_stop_replication en la réplica de lectura para controlar algunas acciones de replicación, como la purga de registros binarios. 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).

Puede llamar a mysql.rds_start_replication en la réplica de lectura para reiniciar cualquier proceso de replicación que haya detenido previamente llamando a mysql.rds_stop_replication. Para obtener más información, consulte Error de replicación detenida.

mysql.rds_start_replication_until (versión 3 de Aurora MySQL)

Inicia la replicación desde un clúster de base de datos de Aurora MySQL y detiene la replicación en la ubicación del archivo de registro binario especificado.

Sintaxis

CALL mysql.rds_start_replication_until ( replication_log_file , replication_stop_point );

Parámetros

replication_log_file

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

replication_stop_point

La ubicación del registro binario replication_log_file en la que la replicación se detendrá.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_start_replication_until.

Este procedimiento es compatible con la versión 3.04 y versiones posteriores de Aurora MySQL.

El procedimiento almacenado mysql.rds_start_replication_until no es compatible con la replicación administrada, que incluye lo siguiente:

El nombre de archivo especificado para el parámetro replication_log_file debe coincidir con el nombre del archivo binlog de instancia de base de datos de origen.

Cuando el parámetro replication_stop_point especifica una ubicación de parada correspondiente al pasado, la replicación se detiene de inmediato.

Ejemplos

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.

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

mysql.rds_start_replication_until_gtid (versión 3 de Aurora MySQL)

Inicia la replicación desde un clúster de base de datos de Aurora MySQL y detiene la replicación inmediatamente después del identificador de transacción global (GTID) especificado.

Sintaxis

CALL mysql.rds_start_replication_until_gtid(gtid);

Parámetros

gtid

El GTID después del cual debe detenerse la replicación.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_start_replication_until_gtid.

Este procedimiento es compatible con la versión 3.04 y versiones posteriores de Aurora MySQL.

El procedimiento almacenado mysql.rds_start_replication_until_gtid no es compatible con la replicación administrada, que incluye lo siguiente:

Cuando el parámetro gtid especifica una transacción que ya ha ejecutado la réplica, la replicación se detiene de inmediato.

Ejemplos

En el ejemplo siguiente se inicia la replicación y se replican los cambios hasta que alcanza la ubicación de GTI 3E11FA47-71CA-11E1-9E33-C80AA9429562:23.

call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_stop_replication

Detiene la replicación desde una instancia de base de datos de MySQL.

Sintaxis

CALL mysql.rds_stop_replication;

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_stop_replication.

Si desea configurar la replicación para importar datos desde una instancia de MySQL que se ejecuta fuera de Amazon RDS, llame a mysql.rds_stop_replication en la réplica de lectura para detener el proceso de replicación una vez completada la importación. 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).

Si desea configurar la replicación para exportar datos a una instancia de MySQL externa a Amazon RDS, llame a mysql.rds_start_replication y a mysql.rds_stop_replication en la réplica de lectura para controlar algunas acciones de replicación, como la limpieza de registros binarios. 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).

El procedimiento almacenado mysql.rds_stop_replication no es compatible con la replicación administrada, que incluye lo siguiente: