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 Amazon 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.
Temas
- mysql.rds_next_source_log_for_channel
- mysql.rds_reset_external_source_for_channel
- mysql.rds_set_external_source_for_channel
- mysql.rds_set_external_source_with_auto_position_for_channel
- mysql.rds_set_external_source_with_delay_for_channel
- mysql.rds_set_source_auto_position_for_channel
- mysql.rds_set_source_delay_for_channel
- mysql.rds_skip_repl_error_for_channel
- mysql.rds_start_replication_for_channel
- mysql.rds_start_replication_until_for_channel
- mysql.rds_start_replication_until_gtid_for_channel
- mysql.rds_stop_replication_for_channel
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 comandoSHOW REPLICA STATUS FOR CHANNEL '
y vea el campochannel_name
'Source_Log_File
.nota
Versiones anteriores de MySQL utilizaban
SHOW SLAVE STATUS
en lugar deSHOW REPLICA STATUS
. Si usa una versión de MySQL anterior a la 8.0.23, utiliceSHOW 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 los parámetros de un grupo de parámetros de base de datos en Amazon RDS.
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 los parámetros de un grupo de parámetros de base de datos en Amazon RDS.
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
yREPLICATION 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
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
';En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios
REPLICATION CLIENT
yREPLICATION SLAVE
. En el siguiente ejemplo se conceden los privilegiosREPLICATION CLIENT
yREPLICATION 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 los parámetros de un grupo de parámetros de base de datos en Amazon RDS.
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
yREPLICATION 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
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
';En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios
REPLICATION CLIENT
yREPLICATION SLAVE
. En el siguiente ejemplo se conceden los privilegiosREPLICATION CLIENT
yREPLICATION 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.
Antes de llamar a mysql.rds_set_external_source_with_auto_position_for_channel
, asegúrese de llamar a mysql.rds_set_external_source_gtid_purged para configurar la variable de sistema gtid_purged
con un rango de GTID especificado desde un origen externo.
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 los parámetros de un grupo de parámetros de base de datos en Amazon RDS.
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
yREPLICATION 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
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
';En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios
REPLICATION CLIENT
yREPLICATION SLAVE
. En el siguiente ejemplo se conceden los privilegiosREPLICATION CLIENT
yREPLICATION 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 es0
. -
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 '
de MySQL. Si un error de replicación no es crítico, puede ejecutar channel_name
'\Gmysql.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 '
para determinar la acción correcta para el siguiente error. Para obtener información acerca de los valores devueltos, consulte SHOW REPLICA STATUS statementchannel_name
'\G
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');