Administración de la replicación de varios orígenes - Amazon Relational Database Service

Administración de la replicación de varios orígenes

Los siguientes procedimientos almacenados configuran y administran los canales de replicación en una réplica de varios orígenes de RDS para MySQL. Para obtener más información, consulte Configuración de la replicación de varios orígenes de RDS para MySQL.

Estos procedimientos almacenados solo están disponibles con instancias de base de datos de RDS para MySQL que ejecuten las siguientes versiones de motor:

  • 8.0.35 y versiones secundarias posteriores

  • 5.7.44 y versiones secundarias posteriores

nota

Si bien en esta documentación se hace referencia a las instancias de base de datos de origen como instancias de base de datos de RDS para MySQL, estos procedimientos también funcionan para las instancias de MySQL que se ejecutan de forma externa a Amazon RDS.

mysql.rds_next_source_log_for_channel

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 del canal. Use este procedimiento únicamente si aparece el error de E/S de replicación 1236 en una réplica de varios orígenes.

Sintaxis

CALL mysql.rds_next_source_log_for_channel( curr_master_log, channel_name );

Parámetros

curr_master_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 FOR CHANNEL 'channel_name' y vea el campo Source_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.

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_next_source_log_for_channel. Si se produce un error IO_Thread, por ejemplo, puede utilizar este procedimiento para omitir todos los eventos del archivo de registro binario actual y reanudar la replicación desde el siguiente archivo de registro binario para el canal especificado en channel_name.

Ejemplo

Suponga que la replicación falla en un canal de una réplica de varios orígenes. La ejecución de SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G en la réplica de varios orígenes devuelve el siguiente resultado:

mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: ReplicationUser Source_Port: 3306 Connect_Retry: 60 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: replica-relay-bin.000003 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB:. . . 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: . . Channel_name: channel_1 . . -- Some fields are omitted in this example output

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_for_channel con los siguientes parámetros:

CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
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_reset_external_source_for_channel

Detiene el proceso de replicación en el canal especificado y elimina el canal y las configuraciones asociadas de la réplica de varios orígenes.

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_for_channel (channel_name);

Parámetros

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_reset_external_source_for_channel. Este procedimiento elimina todos los registros de retransmisión que pertenecen al canal que se va a eliminar.

mysql.rds_set_external_source_for_channel

Puede configurar un canal de replicación en una instancia de base de datos de RDS para MySQL para replicar los datos de otra instancia de base de datos de RDS para MySQL.

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_source_with_delay_for_channel en lugar de configurar este canal con replicación retardada.

Sintaxis

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

Parámetros

host_name

El nombre de host o la dirección IP de la instancia de base de datos de origen de RDS para MySQL.

host_port

El puerto utilizado por la instancia de base de datos de origen de RDS para MySQL. 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 identificador de un usuario con permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de base de datos de origen de RDS para MySQL. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia de base de datos de origen.

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.

nombre_canal

El nombre del canal de replicación. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_external_source_for_channel. Este procedimiento debe ejecutarse en la instancia de base de datos de RDS para MySQL de destino en la que va a crear el canal de replicación.

Antes de ejecutar mysql.rds_set_external_source_for_channel, configure un usuario de replicación en la instancia de base de datos de origen con los privilegios necesarios para la réplica de varios orígenes. Para conectar la réplica de varios orígenes a la instancia de base de datos de origen, debe especificar los valores de replication_user_name y replication_user_password de un usuario de la replicación que tenga permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de base de datos de origen.

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

    importante

    Como práctica recomendada de seguridad, especifique una contraseña distinta del valor de marcador de posición que se muestra en los ejemplos siguientes.

    MySQL 8.0

    CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY 'password';

    MySQL 5.7

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios REPLICATION CLIENT y REPLICATION SLAVE. 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'@'example.com';

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL.

Después de llamar a mysql.rds_set_external_source_for_channel para configurar este canal de replicación, puede llamar a mysql.rds_start_replication_for_channel en la réplica para iniciar el proceso de replicación en el canal. Puede llamar a mysql.rds_reset_external_source_for_channel para detener la replicación en el canal y eliminar la configuración del canal de la réplica.

Cuando llama a mysql.rds_set_external_source_for_channel, Amazon RDS registra la hora, el usuario y una acción de set channel source en la tabla mysql.rds_history sin detalles específicos del canal y en la tabla mysql.rds_replication_status con el nombre del canal. Esta información se registra únicamente con fines de monitorización y uso interno. Para registrar toda la llamada al procedimiento con fines de auditoría, considere la posibilidad de habilitar los registros de auditoría o los registros generales, según los requisitos específicos de su aplicación.

Ejemplos

Cuando se ejecuta en una instancia de base de datos de RDS para MySQL, el siguiente ejemplo permite configurar un canal de replicación denominado channel_1 en esta instancia de base de datos para replicar los datos del origen especificado por el host sourcedb.example.com y el puerto 3306.

call mysql.rds_set_external_source_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.0777', 120, 0, 'channel_1');

mysql.rds_set_external_source_with_auto_position_for_channel

Configura un canal de replicación en una instancia de base de datos de RDS para MySQL con un retardo de replicación opcional. La replicación está basada en identificadores de transacciones globales (GTID).

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_with_auto_position_for_channel ( host_name , host_port , replication_user_name , replication_user_password , ssl_encryption , delay , channel_name );

Parámetros

host_name

El nombre de host o la dirección IP de la instancia de base de datos de origen de RDS para MySQL.

host_port

El puerto utilizado por la instancia de base de datos de origen de RDS para MySQL. 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 identificador de un usuario con permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de base de datos de origen de RDS para MySQL. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia de base de datos de origen.

replication_user_password

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

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.

delay

El número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen.

El límite de este parámetro es de un día (86400 segundos).

nombre_canal

El nombre del canal de replicación. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_external_source_with_auto_position_for_channel. Este procedimiento debe ejecutarse en la instancia de base de datos de RDS para MySQL de destino en la que va a crear el canal de replicación.

Antes de ejecutar rds_set_external_source_with_auto_position_for_channel, configure un usuario de replicación en la instancia de base de datos de origen con los privilegios necesarios para la réplica de varios orígenes. Para conectar la réplica de varios orígenes a la instancia de base de datos de origen, debe especificar los valores de replication_user_name y replication_user_password de un usuario de la replicación que tenga permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de base de datos de origen.

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

    importante

    Como práctica recomendada de seguridad, especifique una contraseña distinta del valor de marcador de posición que se muestra en los ejemplos siguientes.

    MySQL 8.0

    CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY 'password';

    MySQL 5.7

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios REPLICATION CLIENT y REPLICATION SLAVE. 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'@'example.com';

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL.

Después de llamar a mysql.rds_set_external_source_with_auto_position_for_channel para configurar una instancia de base de datos de Amazon RDS como réplica de lectura en un canal específico, puede llamar a mysql.rds_start_replication_for_channel en la réplica de lectura para iniciar el proceso de replicación en ese canal.

Después de llamar a mysql.rds_set_external_source_with_auto_position_for_channel para configurar este canal de replicación, puede llamar a mysql.rds_start_replication_for_channel en la réplica para iniciar el proceso de replicación en el canal. Puede llamar a mysql.rds_reset_external_source_for_channel para detener la replicación en el canal y eliminar la configuración del canal de la réplica.

Ejemplos

Cuando se ejecuta en una instancia de base de datos de RDS para MySQL, el siguiente ejemplo permite configurar un canal de replicación denominado channel_1 en esta instancia de base de datos para replicar los datos del origen especificado por el host sourcedb.example.com y el puerto 3306. Configura el retardo de replicación mínimo en una hora (3600 segundos). Esto significa que un cambio en la instancia de base de datos de RDS para MySQL de origen no se aplica en la réplica de varios orígenes hasta que haya transcurrido al menos una hora.

call mysql.rds_set_external_source_with_auto_position_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 0, 3600, 'channel_1');

mysql.rds_set_external_source_with_delay_for_channel

Configura un canal de replicación en una instancia de base de datos de RDS para MySQL con un retardo de replicación especificado.

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_with_delay_for_channel ( host_name , host_port , replication_user_name , replication_user_password , mysql_binary_log_file_name , mysql_binary_log_file_location , ssl_encryption , delay , channel_name );

Parámetros

host_name

El nombre de host o la dirección IP de la instancia de base de datos de origen de RDS para MySQL.

host_port

El puerto utilizado por la instancia de base de datos de origen de RDS para MySQL. 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 identificador de un usuario con permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de base de datos de origen de RDS para MySQL. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia de base de datos de origen.

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 comenzará 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.

delay

El número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen.

El límite de este parámetro es de un día (86400 segundos).

nombre_canal

El nombre del canal de replicación. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_external_source_with_delay_for_channel. Este procedimiento debe ejecutarse en la instancia de base de datos de RDS para MySQL de destino en la que va a crear el canal de replicación.

Antes de ejecutar mysql.rds_set_external_source_with_delay_for_channel, configure un usuario de replicación en la instancia de base de datos de origen con los privilegios necesarios para la réplica de varios orígenes. Para conectar la réplica de varios orígenes a la instancia de base de datos de origen, debe especificar los valores de replication_user_name y replication_user_password de un usuario de la replicación que tenga permisos REPLICATION CLIENT y REPLICATION SLAVE en la instancia de base de datos de origen.

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

    importante

    Como práctica recomendada de seguridad, especifique una contraseña distinta del valor de marcador de posición que se muestra en los ejemplos siguientes.

    MySQL 8.0

    CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY 'password';

    MySQL 5.7

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios REPLICATION CLIENT y REPLICATION SLAVE. 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'@'example.com';

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL.

Después de llamar a mysql.rds_set_external_source_with_delay_for_channel para configurar este canal de replicación, puede llamar a mysql.rds_start_replication_for_channel en la réplica para iniciar el proceso de replicación en el canal. Puede llamar a mysql.rds_reset_external_source_for_channel para detener la replicación en el canal y eliminar la configuración del canal de la réplica.

Cuando llama a mysql.rds_set_external_source_with_delay_for_channel, Amazon RDS registra la hora, el usuario y una acción de set channel source en la tabla mysql.rds_history sin detalles específicos del canal y en la tabla mysql.rds_replication_status con el nombre del canal. Esta información se registra únicamente con fines de monitorización y uso interno. Para registrar toda la llamada al procedimiento con fines de auditoría, considere la posibilidad de habilitar los registros de auditoría o los registros generales, según los requisitos específicos de su aplicación.

Ejemplos

Cuando se ejecuta en una instancia de base de datos de RDS para MySQL, el siguiente ejemplo permite configurar un canal de replicación denominado channel_1 en esta instancia de base de datos para replicar los datos del origen especificado por el host sourcedb.example.com y el puerto 3306. Configura el retardo de replicación mínimo en una hora (3600 segundos). Esto significa que un cambio en la instancia de base de datos de RDS para MySQL de origen no se aplica en la réplica de varios orígenes hasta que haya transcurrido al menos una hora.

call mysql.rds_set_external_source_with_delay_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000777', 120, 0, 3600, 'channel_1');

mysql.rds_set_source_auto_position_for_channel

Establece el modo de replicación para el canal especificado 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_for_channel ( auto_position_mode , channel_name );

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.

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_source_auto_position_for_channel. Este procedimiento reinicia la replicación en el canal especificado para aplicar el modo de posición automática especificado.

Ejemplos

En el siguiente ejemplo, se establece el modo de posición automática para que channel_1 utilice el método de replicación basado en GTID.

call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');

mysql.rds_set_source_delay_for_channel

Establece el número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen a la réplica de varios orígenes para el canal especificado.

Sintaxis

CALL mysql.rds_set_source_delay_for_channel(delay, channel_name);

Parámetros

delay

El número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen.

El límite de este parámetro es de un día (86400 segundos).

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_set_source_delay_for_channel. Para utilizar este procedimiento, primero llame a mysql.rds_stop_replication_for_channel para detener la replicación. A continuación, llame a este procedimiento para establecer el valor del retardo de la replicación. Cuando el retardo esté establecido, llame a mysql.rds_start_replication_for_channel para reiniciar la replicación.

Ejemplos

En el ejemplo siguiente, se establece el retardo de replicación desde la instancia de base de datos de origen en channel_1 de la réplica de varios orígenes en al menos una hora (3600 segundos).

CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');

mysql.rds_skip_repl_error_for_channel

Omite un evento de registro binario y elimina un error de replicación en una réplica de varios orígenes de base de datos MySQL para el canal especificado.

Sintaxis

CALL mysql.rds_skip_repl_error_for_channel(channel_name);

Parámetros

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_skip_repl_error_for_channel en una réplica de lectura. Este procedimiento se puede utilizar de forma similar a como se utiliza mysql.rds_skip_repl_error para omitir un error en una réplica de lectura. Para obtener más información, consulte Llamar al procedimiento mysql.rds_skip_repl_error.

nota

Para omitir errores en la replicación basada en GTID, se recomienda utilizar este procedimiento en lugar de mysql.rds_skip_transaction_with_gtid.

Para determinar si hay errores, ejecute el comando SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G de MySQL. Si un error de replicación no es crítico, puede ejecutar mysql.rds_skip_repl_error_for_channel para omitir el error. Si hay varios errores, mysql.rds_skip_repl_error_for_channel elimina el primer error en el canal de replicación especificado y advierte de que hay otros presentes. A continuación, puede usar SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\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.

mysql.rds_start_replication_for_channel

Inicia la replicación desde una instancia de base de datos de RDS para MySQL a una réplica de varios orígenes en el canal especificado.

nota

Puede utilizar el procedimiento almacenado mysql.rds_start_replication_until_for_channel o mysql.rds_start_replication_until_gtid_for_channel para iniciar la reproducción desde una instancia de base de datos de RDS for MySQL y detener la reproducción en la ubicación del archivo de registro binario especificado.

Sintaxis

CALL mysql.rds_start_replication_for_channel(channel_name);

Parámetros

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_start_replication_for_channel. Tras importar los datos desde la instancia de base de datos de RDS para MySQL de origen, ejecute este comando en la réplica de varios orígenes para iniciar la replicación en el canal especificado.

Ejemplos

En el siguiente ejemplo, se inicia la replicación en channel_1 de la réplica de varios orígenes.

CALL mysql.rds_start_replication_for_channel('channel_1');

mysql.rds_start_replication_until_for_channel

Inicia la replicación desde una instancia de base de datos de RDS para MySQL en el canal especificado y detiene la replicación en la ubicación del archivo de registro binario especificado.

Sintaxis

CALL mysql.rds_start_replication_until_for_channel ( replication_log_file , replication_stop_point , channel_name );

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á.

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_start_replication_until_for_channel. Con este procedimiento, la replicación se inicia y, a continuación, se detiene cuando se alcanza la posición especificada del archivo binlog. Para la versión 8.0, el procedimiento detiene únicamente el SQL_Thread. En la versión 5.7, el procedimiento detiene tanto el SQL_Thread como el IO_Thread.

El nombre de archivo especificado para el parámetro replication_log_file debe coincidir con el nombre del archivo binlog de la 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 en channel_1 y se replican los cambios hasta que alcanza la ubicación 120 en el archivo de registro binario mysql-bin-changelog.000777.

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

mysql.rds_start_replication_until_gtid_for_channel

Inicia la replicación en el canal especificado desde una instancia de base de datos de RDS para MySQL y detiene la replicación en el identificador de transacción global (GTID) especificado.

Sintaxis

CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);

Parámetros

gtid

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

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_start_replication_until_gtid_for_channel. El procedimiento inicia la replicación en el canal especificado y aplica todos los cambios hasta el valor de GTID especificado. A continuación, detiene la replicación en el canal.

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

Antes de ejecutar este procedimiento, debe deshabilitar la réplica multiproceso estableciendo el valor de replica_parallel_workers o slave_parallel_workers en 0.

Ejemplos

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

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

mysql.rds_stop_replication_for_channel

Detiene la replicación desde una instancia de base de datos de MySQL en el canal especificado.

Sintaxis

CALL mysql.rds_stop_replication_for_channel(channel_name);

Parámetros

nombre_canal

El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

Notas de uso

El usuario maestro debe ejecutar el procedimiento mysql.rds_stop_replication_for_channel.

Ejemplos

En el siguiente ejemplo, se detiene la replicación en channel_1 de la réplica de varios orígenes.

CALL mysql.rds_stop_replication_for_channel('channel_1');