Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion de la réplication multi-sources
Les procédures stockées suivantes permettent de configurer et de gérer les canaux de réplication sur une réplique SQL multi-source RDS for My. Pour de plus amples informations, veuillez consulter Configuration multi-source-replication pour RDS pour MySQL.
Ces procédures stockées ne sont disponibles que RDS pour les instances My SQL DB exécutant les versions de moteur suivantes :
Versions mineures 8.0.35 et supérieures
Versions mineures 5.7.44 et supérieures
Note
Bien que cette documentation fasse référence aux instances de base de données source comme RDS aux instances My SQL DB, ces procédures fonctionnent également pour les SQL instances My exécutées en externe à AmazonRDS.
Rubriques
- 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
Remplace la position du journal de l'instance de base de données source au début du journal binaire suivant sur l'instance de base de données source pour le canal. Utilisez cette procédure uniquement si vous recevez l'erreur d'E/S de réplication 1236 sur une réplique multi-sources.
Syntaxe
CALL mysql.rds_next_source_log_for_channel(
curr_master_log
,channel_name
);
Paramètres
-
curr_master_log
-
Index du fichier journal source actuel. Par exemple, si le fichier en cours se nomme
mysql-bin-changelog.012345
, l'index est 12345. Pour déterminer le nom du fichier journal actuel, exécutez la commandeSHOW REPLICA STATUS FOR CHANNEL '
et affichez le champchannel_name
'Source_Log_File
.Note
Les versions précédentes de My SQL utilisaient à la
SHOW SLAVE STATUS
place deSHOW REPLICA STATUS
. Si vous utilisez une SQL version My antérieure à la version 8.0.23, utilisez.SHOW SLAVE STATUS
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_next_source_log_for_channel
. En cas d'erreur IO_Thread, par exemple, vous pouvez utiliser cette procédure pour ignorer tous les événements du fichier journal binaire actuel et reprendre la réplication à partir du fichier journal binaire suivant pour le canal spécifié dans. channel_name
Exemple
Supposons que la réplication échoue sur un canal d'une réplique multi-sources. L'exécution SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G
sur le réplica multi-source renvoie le résultat suivant :
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
Le champ Last_IO_Errno
montre que l'instance reçoit une erreur 1236 d'I/O. Le champ Source_Log_File
montre que le nom du fichier est mysql-bin-changelog.012345
, ce qui signifie que l'index du fichier journal est 12345
. Pour résoudre l'erreur, vous pouvez appeler mysql.rds_next_source_log_for_channel
avec les paramètres suivants :
CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
Note
Les versions précédentes de My SQL utilisaient à la SHOW SLAVE STATUS
place deSHOW REPLICA STATUS
. Si vous utilisez une SQL version My antérieure à la version 8.0.23, utilisez. SHOW SLAVE STATUS
mysql.rds_reset_external_source_for_channel
Arrête le processus de réplication sur le canal spécifié et supprime le canal et les configurations associées de la réplique multi-source.
Important
Pour exécuter cette procédure, autocommit
doit être activé. Pour l'activer, définissez le paramètre autocommit
sur 1
. Pour de plus amples informations sur la modification des paramètres d'instance, veuillez consulter Modification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS.
Syntaxe
CALL mysql.rds_reset_external_source_for_channel (
channel_name
);
Paramètres
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_reset_external_source_for_channel
. Cette procédure supprime tous les journaux de relais appartenant au canal à supprimer.
mysql.rds_set_external_source_for_channel
Configure un canal de réplication sur une instance RDS pour My SQL DB afin de répliquer les données depuis une autre instance RDS pour My SQL DB.
Important
Pour exécuter cette procédure, autocommit
doit être activé. Pour l'activer, définissez le paramètre autocommit
sur 1
. Pour de plus amples informations sur la modification des paramètres d'instance, veuillez consulter Modification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS.
Note
Vous pouvez plutôt utiliser la procédure mysql.rds_set_external_source_with_delay_for_channel stockée pour configurer ce canal avec une réplication différée.
Syntaxe
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
);
Paramètres
-
host_name
-
Le nom d'hôte ou l'adresse IP de l'instance de base de données RDS for My SQL source.
-
host_port
-
Port utilisé par l'instance de base de données RDS for My SQL source. Si votre configuration réseau inclut une réplication de port Secure Shell (SSH) qui convertit le numéro de port, spécifiez le numéro de port exposé parSSH.
-
replication_user_name
-
L'ID
REPLICATION CLIENT
et lesREPLICATION SLAVE
autorisations d'un utilisateur disposant de l'instance de base de données RDS for My SQL source. Nous vous recommandons de fournir un compte utilisé uniquement pour la réplication avec l'instance de base de données source. -
replication_user_password
-
Mot de passe de l'ID utilisateur spécifié dans
replication_user_name
. -
mysql_binary_log_file_name
-
Nom du journal binaire de l'instance de base de données source qui contient les informations de réplication.
-
mysql_binary_log_file_location
-
Emplacement dans le journal binaire
mysql_binary_log_file_name
à partir duquel la réplication commence à lire les informations de réplication.Vous pouvez déterminer le nom et l'emplacement du fichier binlog en l'exécutant
SHOW MASTER STATUS
sur l'instance de base de données source. -
ssl_encryption
-
Valeur qui indique si le chiffrement Secure Socket Layer (SSL) est utilisé sur la connexion de réplication. 1 indique d'utiliser le SSL chiffrement, 0 indique de ne pas utiliser de chiffrement. La valeur par défaut est 0.
Note
L'option
MASTER_SSL_VERIFY_SERVER_CERT
n'est pas prise en charge. Cette option est définie sur 0, ce qui signifie que la connexion est chiffrée, mais que les certificats ne sont pas vérifiés. -
channel_name
-
Nom du canal de réplication. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_set_external_source_for_channel
. Cette procédure doit être exécutée sur la cible RDS de l'instance My SQL DB sur laquelle vous créez le canal de réplication.
Avant d'exécutermysql.rds_set_external_source_for_channel
, configurez un utilisateur de réplication sur l'instance de base de données source avec les privilèges requis pour la réplique multi-source. Pour connecter la réplique multi-source à l'instance de base de données source, vous devez spécifier replication_user_name
et replication_user_password
les valeurs d'un utilisateur de réplication disposant d'REPLICATION SLAVE
autorisations sur l'instance de base de données source. REPLICATION CLIENT
Pour configurer un utilisateur de réplication sur l'instance de base de données source
À l'aide du SQL client My de votre choix, connectez-vous à l'instance de base de données source et créez un compte utilisateur à utiliser pour la réplication. Voici un exemple.
Important
Pour des raisons de sécurité, il est recommandé de spécifier un mot de passe autre que la valeur d'espace réservé indiquée dans les exemples suivants.
Mon SQL 8.0
CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY '
password
';Mon SQL 5.7
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';Sur l'instance de base de données source, accordez
REPLICATION CLIENT
desREPLICATION SLAVE
privilèges à votre utilisateur de réplication. L'exemple suivant accorde les privilègesREPLICATION CLIENT
etREPLICATION SLAVE
sur toutes les bases de données pour l'utilisateur « repl_user » de votre domaine.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
Pour utiliser la réplication chiffrée, configurez l'instance de base de données source pour qu'elle utilise SSL des connexions.
Après avoir appelé mysql.rds_set_external_source_for_channel
pour configurer ce canal de réplication, vous pouvez faire appel mysql.rds_start_replication_for_channel à la réplique pour démarrer le processus de réplication sur le canal. Vous pouvez appeler mysql.rds_reset_external_source_for_channel pour arrêter la réplication sur le canal et supprimer la configuration du canal de la réplique.
Lorsque vous appelezmysql.rds_set_external_source_for_channel
, Amazon RDS enregistre l'heure, l'utilisateur et une action de set channel source
dans le mysql.rds_history
tableau sans informations spécifiques à la chaîne, et dans le mysql.rds_replication_status
tableau, avec le nom de la chaîne. Ces informations sont enregistrées uniquement à des fins d'utilisation interne et de surveillance. Pour enregistrer l'appel de procédure complet à des fins d'audit, pensez à activer les journaux d'audit ou les journaux généraux, en fonction des exigences spécifiques de votre application.
Exemples
Lorsqu'il est exécuté sur une instance RDS for My SQL DB, l'exemple suivant configure un canal de réplication nommé channel_1
sur cette instance de base de données pour répliquer les données à partir de la source spécifiée par l'hôte sourcedb.example.com
et le port. 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
Configure un canal de réplication sur une instance RDS for My SQL DB avec un délai de réplication facultatif. La réplication est basée sur des identifiants de transaction globaux (GTIDs).
Important
Pour exécuter cette procédure, autocommit
doit être activé. Pour l'activer, définissez le paramètre autocommit
sur 1
. Pour de plus amples informations sur la modification des paramètres d'instance, veuillez consulter Modification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS.
Syntaxe
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
);
Paramètres
-
host_name
-
Le nom d'hôte ou l'adresse IP de l'instance de base de données RDS for My SQL source.
-
host_port
-
Port utilisé par l'instance de base de données RDS for My SQL source. Si votre configuration réseau inclut une réplication de port Secure Shell (SSH) qui convertit le numéro de port, spécifiez le numéro de port exposé parSSH.
-
replication_user_name
-
L'ID
REPLICATION CLIENT
et lesREPLICATION SLAVE
autorisations d'un utilisateur disposant de l'instance de base de données RDS for My SQL source. Nous vous recommandons de fournir un compte utilisé uniquement pour la réplication avec l'instance de base de données source. -
replication_user_password
-
Mot de passe de l'ID utilisateur spécifié dans
replication_user_name
. -
ssl_encryption
-
Valeur qui indique si le chiffrement Secure Socket Layer (SSL) est utilisé sur la connexion de réplication. 1 indique d'utiliser le SSL chiffrement, 0 indique de ne pas utiliser de chiffrement. La valeur par défaut est 0.
Note
L'option
MASTER_SSL_VERIFY_SERVER_CERT
n'est pas prise en charge. Cette option est définie sur 0, ce qui signifie que la connexion est chiffrée, mais que les certificats ne sont pas vérifiés. -
delay
-
Le nombre minimum de secondes pour retarder la réplication à partir de l'instance de base de données source.
La limite de ce paramètre est une journée (soit 86 400 secondes).
-
channel_name
-
Nom du canal de réplication. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_set_external_source_with_auto_position_for_channel
. Cette procédure doit être exécutée sur la cible RDS de l'instance My SQL DB sur laquelle vous créez le canal de réplication.
Avant d'exécuterrds_set_external_source_with_auto_position_for_channel
, configurez un utilisateur de réplication sur l'instance de base de données source avec les privilèges requis pour la réplique multi-source. Pour connecter la réplique multi-source à l'instance de base de données source, vous devez spécifier replication_user_name
et replication_user_password
les valeurs d'un utilisateur de réplication disposant d'REPLICATION SLAVE
autorisations sur l'instance de base de données source. REPLICATION CLIENT
Pour configurer un utilisateur de réplication sur l'instance de base de données source
À l'aide du SQL client My de votre choix, connectez-vous à l'instance de base de données source et créez un compte utilisateur à utiliser pour la réplication. Voici un exemple.
Important
Pour des raisons de sécurité, il est recommandé de spécifier un mot de passe autre que la valeur d'espace réservé indiquée dans les exemples suivants.
Mon SQL 8.0
CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY '
password
';Mon SQL 5.7
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';Sur l'instance de base de données source, accordez
REPLICATION CLIENT
desREPLICATION SLAVE
privilèges à votre utilisateur de réplication. L'exemple suivant accorde les privilègesREPLICATION CLIENT
etREPLICATION SLAVE
sur toutes les bases de données pour l'utilisateur « repl_user » de votre domaine.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
Pour utiliser la réplication chiffrée, configurez l'instance de base de données source pour qu'elle utilise SSL des connexions.
Avant d'appelermysql.rds_set_external_source_with_auto_position_for_channel
, assurez-vous d'appeler mysql.rds_set_external_source_gtid_purged pour définir la variable gtid_purged
système avec une GTID plage spécifiée à partir d'une source externe.
Après avoir appelé mysql.rds_set_external_source_with_auto_position_for_channel
pour configurer une instance Amazon RDS DB en tant que réplique en lecture sur un canal spécifique, vous pouvez faire appel mysql.rds_start_replication_for_channel à la réplique en lecture pour démarrer le processus de réplication sur ce canal.
Après avoir appelé mysql.rds_set_external_source_with_auto_position_for_channel
pour configurer ce canal de réplication, vous pouvez faire appel mysql.rds_start_replication_for_channel à la réplique pour démarrer le processus de réplication sur le canal. Vous pouvez appeler mysql.rds_reset_external_source_for_channel pour arrêter la réplication sur le canal et supprimer la configuration du canal de la réplique.
Exemples
Lorsqu'il est exécuté sur une instance RDS for My SQL DB, l'exemple suivant configure un canal de réplication nommé channel_1
sur cette instance de base de données pour répliquer les données à partir de la source spécifiée par l'hôte sourcedb.example.com
et le port. 3306
Il définit le délai de réplication minimum à une heure (3 600 secondes). Cela signifie qu'une modification par rapport à la source RDS pour l'instance My SQL DB n'est pas appliquée à la réplique multi-source pendant au moins une heure.
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
Configure un canal de réplication sur une instance RDS for My SQL DB avec un délai de réplication spécifié.
Important
Pour exécuter cette procédure, autocommit
doit être activé. Pour l'activer, définissez le paramètre autocommit
sur 1
. Pour de plus amples informations sur la modification des paramètres d'instance, veuillez consulter Modification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS.
Syntaxe
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
);
Paramètres
-
host_name
-
Le nom d'hôte ou l'adresse IP de l'instance de base de données RDS for My SQL source.
-
host_port
-
Port utilisé par l'instance de base de données RDS for My SQL source. Si votre configuration réseau inclut une réplication de port Secure Shell (SSH) qui convertit le numéro de port, spécifiez le numéro de port exposé parSSH.
-
replication_user_name
-
L'ID
REPLICATION CLIENT
et lesREPLICATION SLAVE
autorisations d'un utilisateur disposant de l'instance de base de données RDS for My SQL source. Nous vous recommandons de fournir un compte utilisé uniquement pour la réplication avec l'instance de base de données source. -
replication_user_password
-
Mot de passe de l'ID utilisateur spécifié dans
replication_user_name
. -
mysql_binary_log_file_name
-
Le nom du journal binaire sur l'instance de base de données source contient les informations de réplication.
-
mysql_binary_log_file_location
-
Emplacement dans le journal binaire
mysql_binary_log_file_name
à partir duquel la réplication commence à lire les informations de réplication.Vous pouvez déterminer le nom et l'emplacement du fichier journal binaire en exécutant
SHOW MASTER STATUS
sur l'instance de base de données source. -
ssl_encryption
-
Valeur qui indique si le chiffrement Secure Socket Layer (SSL) est utilisé sur la connexion de réplication. 1 indique d'utiliser le SSL chiffrement, 0 indique de ne pas utiliser de chiffrement. La valeur par défaut est 0.
Note
L'option
MASTER_SSL_VERIFY_SERVER_CERT
n'est pas prise en charge. Cette option est définie sur 0, ce qui signifie que la connexion est chiffrée, mais que les certificats ne sont pas vérifiés. -
delay
-
Le nombre minimum de secondes pour retarder la réplication à partir de l'instance de base de données source.
La limite de ce paramètre est une journée (soit 86 400 secondes).
-
channel_name
-
Nom du canal de réplication. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_set_external_source_with_delay_for_channel
. Cette procédure doit être exécutée sur la cible RDS de l'instance My SQL DB sur laquelle vous créez le canal de réplication.
Avant d'exécutermysql.rds_set_external_source_with_delay_for_channel
, configurez un utilisateur de réplication sur l'instance de base de données source avec les privilèges requis pour la réplique multi-source. Pour connecter la réplique multi-source à l'instance de base de données source, vous devez spécifier replication_user_name
et replication_user_password
les valeurs d'un utilisateur de réplication disposant d'REPLICATION SLAVE
autorisations sur l'instance de base de données source. REPLICATION CLIENT
Pour configurer un utilisateur de réplication sur l'instance de base de données source
À l'aide du SQL client My de votre choix, connectez-vous à l'instance de base de données source et créez un compte utilisateur à utiliser pour la réplication. Voici un exemple.
Important
Pour des raisons de sécurité, il est recommandé de spécifier un mot de passe autre que la valeur d'espace réservé indiquée dans les exemples suivants.
Mon SQL 8.0
CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY '
password
';Mon SQL 5.7
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';Sur l'instance de base de données source, accordez
REPLICATION CLIENT
desREPLICATION SLAVE
privilèges à votre utilisateur de réplication. L'exemple suivant accorde les privilègesREPLICATION CLIENT
etREPLICATION SLAVE
sur toutes les bases de données pour l'utilisateur « repl_user » de votre domaine.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
Pour utiliser la réplication chiffrée, configurez l'instance de base de données source pour qu'elle utilise SSL des connexions.
Après avoir appelé mysql.rds_set_external_source_with_delay_for_channel
pour configurer ce canal de réplication, vous pouvez faire appel mysql.rds_start_replication_for_channel à la réplique pour démarrer le processus de réplication sur le canal. Vous pouvez appeler mysql.rds_reset_external_source_for_channel pour arrêter la réplication sur le canal et supprimer la configuration du canal de la réplique.
Lorsque vous appelezmysql.rds_set_external_source_with_delay_for_channel
, Amazon RDS enregistre l'heure, l'utilisateur et une action de set channel source
dans le mysql.rds_history
tableau sans informations spécifiques à la chaîne, et dans le mysql.rds_replication_status
tableau, avec le nom de la chaîne. Ces informations sont enregistrées uniquement à des fins d'utilisation interne et de surveillance. Pour enregistrer l'appel de procédure complet à des fins d'audit, pensez à activer les journaux d'audit ou les journaux généraux, en fonction des exigences spécifiques de votre application.
Exemples
Lorsqu'il est exécuté sur une instance RDS for My SQL DB, l'exemple suivant configure un canal de réplication nommé channel_1
sur cette instance de base de données pour répliquer les données à partir de la source spécifiée par l'hôte sourcedb.example.com
et le port. 3306
Il définit le délai de réplication minimum à une heure (3 600 secondes). Cela signifie qu'une modification par rapport à la source RDS pour l'instance My SQL DB n'est pas appliquée à la réplique multi-source pendant au moins une heure.
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
Définit le mode de réplication pour le canal spécifié en fonction des positions du fichier journal binaire ou des identificateurs de transaction globaux (GTIDs).
Syntaxe
CALL mysql.rds_set_source_auto_position_for_channel (
auto_position_mode
,channel_name
);
Paramètres
-
auto_position_mode
-
Une valeur qui indique s'il faut utiliser la réplication de position du fichier journal ou la réplication GTID basée sur la réplication :
-
0
– Utiliser la méthode de réplication basée sur la position du fichier journal binaire. La valeur par défaut est0
. -
1
— Utilisez la méthode GTID de réplication basée.
-
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_set_source_auto_position_for_channel
. Cette procédure redémarre la réplication sur le canal spécifié pour appliquer le mode de positionnement automatique spécifié.
Exemples
L'exemple suivant définit le mode de positionnement automatique pour channel_1 afin d'utiliser la méthode de réplication GTID basée.
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
mysql.rds_set_source_delay_for_channel
Définit le nombre minimal de secondes pour retarder la réplication de l'instance de base de données source vers la réplique multi-source pour le canal spécifié.
Syntaxe
CALL mysql.rds_set_source_delay_for_channel(
delay
,channel_name
);
Paramètres
-
delay
-
Le nombre minimum de secondes pour retarder la réplication à partir de l'instance de base de données source.
La limite de ce paramètre est une journée (soit 86 400 secondes).
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_set_source_delay_for_channel
. Pour utiliser cette procédure, appelez d'abord mysql.rds_stop_replication_for_channel
pour arrêter la réplication. Appelez ensuite cette procédure pour définir la valeur du délai de réplication. Lorsque le délai est défini, appelez mysql.rds_start_replication_for_channel
pour redémarrer la réplication.
Exemples
L'exemple suivant définit le délai de réplication depuis l'instance de base channel_1
de données source sur le réplica multi-source pendant au moins une heure (3 600 secondes).
CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');
mysql.rds_skip_repl_error_for_channel
Ignore un événement de journal binaire et supprime une erreur de réplication sur une réplique multi-source My SQL DB pour le canal spécifié.
Syntaxe
CALL mysql.rds_skip_repl_error_for_channel(
channel_name
);
Paramètres
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_skip_repl_error_for_channel
sur un réplica en lecture. Vous pouvez utiliser cette procédure de la même manière mysql.rds_skip_repl_error
que pour ignorer une erreur lors de la lecture d'une réplique. Pour de plus amples informations, veuillez consulter Appel de la procédure mysql.rds_skip_repl_error.
Note
Pour déterminer s'il existe des erreurs, exécutez la SQL SHOW REPLICA STATUS FOR CHANNEL '
commande My. Si une erreur de réplication n'est pas critique, vous pouvez exécuter channel_name
'\Gmysql.rds_skip_repl_error_for_channel
pour ignorer l'erreur. En cas d'erreurs multiples, mysql.rds_skip_repl_error_for_channel
supprime la première erreur sur le canal de réplication spécifié, puis avertit de la présence d'autres erreurs. Vous pouvez alors utiliser SHOW REPLICA STATUS FOR CHANNEL '
pour déterminer l'action appropriée pour l'erreur suivante. Pour plus d'informations sur les valeurs renvoyées, voir la SHOWREPLICASTATUSdéclarationchannel_name
'\G
mysql.rds_start_replication_for_channel
Lance la réplication depuis une instance RDS for My SQL DB vers une réplique multi-source sur le canal spécifié.
Note
Vous pouvez utiliser la procédure mysql.rds_start_replication_until_gtid_for_channel stockée mysql.rds_start_replication_until_for_channel ou pour lancer la réplication à partir d'une instance RDS for My SQL DB et arrêter la réplication à l'emplacement du fichier journal binaire spécifié.
Syntaxe
CALL mysql.rds_start_replication_for_channel(
channel_name
);
Paramètres
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_start_replication_for_channel
. Après avoir importé les données depuis la source RDS pour l'instance My SQL DB, exécutez cette commande sur la réplique multi-source pour démarrer la réplication sur le canal spécifié.
Exemples
L'exemple suivant démarre la réplication sur channel_1
le réplica multi-source.
CALL mysql.rds_start_replication_for_channel('channel_1');
mysql.rds_start_replication_until_for_channel
Lance la réplication à partir d'une instance RDS for My SQL DB sur le canal spécifié et arrête la réplication à l'emplacement du fichier journal binaire spécifié.
Syntaxe
CALL mysql.rds_start_replication_until_for_channel (
replication_log_file
,replication_stop_point
,channel_name
);
Paramètres
-
replication_log_file
-
Le nom du journal binaire sur l'instance de base de données source contient les informations de réplication.
-
replication_stop_point
-
Position dans le journal binaire
replication_log_file
à laquelle la réplication s'arrêtera. -
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_start_replication_until_for_channel
. Avec cette procédure, la réplication démarre puis s'arrête lorsque la position spécifiée du fichier binlog est atteinte. Pour la version 8.0, la procédure arrête uniquement leSQL_Thread
. Pour la version 5.7, la procédure arrête à la fois le SQL_Thread
et leIO_Thread
.
Le nom de fichier spécifié pour le replication_log_file
paramètre doit correspondre au nom du fichier binlog de l'instance de base de données source.
Lorsque le replication_stop_point
paramètre indique un emplacement d'arrêt antérieur, la réplication est immédiatement arrêtée.
Exemples
L'exemple suivant lance la réplication et réplique les modifications jusqu'à ce qu'elles atteignent leur emplacement 120
dans le mysql-bin-changelog.000777
fichier journal binaire. channel_1
call mysql.rds_start_replication_until_for_channel( 'mysql-bin-changelog.000777', 120, 'channel_1' );
mysql.rds_start_replication_until_gtid_for_channel
Lance la réplication sur le canal spécifié à partir d'une instance RDS for My SQL DB et arrête la réplication à l'identifiant de transaction global spécifié (GTID).
Syntaxe
CALL mysql.rds_start_replication_until_gtid_for_channel(
gtid
,channel_name
);
Paramètres
-
gtid
-
GTIDEnsuite, il faut arrêter la réplication.
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_start_replication_until_gtid_for_channel
. La procédure démarre la réplication sur le canal spécifié et applique toutes les modifications jusqu'à la GTID valeur spécifiée. Ensuite, il arrête la réplication sur le canal.
Lorsque le paramètre gtid
spécifie une transaction ayant déjà été exécutée par le réplica, la réplication est immédiatement arrêtée.
Avant d'exécuter cette procédure, vous devez désactiver la réplication multithread en définissant la valeur de replica_parallel_workers
ou slave_parallel_workers
sur. 0
Exemples
L'exemple suivant lance la réplication et réplique les modifications jusqu'à ce qu'elles soient atteintes. channel_1
GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23
call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');
mysql.rds_stop_replication_for_channel
Arrête la réplication depuis une instance My SQL DB sur le canal spécifié.
Syntaxe
CALL mysql.rds_stop_replication_for_channel(
channel_name
);
Paramètres
-
channel_name
-
Nom du canal de réplication sur le réplica multi-source. Chaque canal de réplication reçoit les événements du journal binaire d'une source unique RDS pour l'instance My SQL DB exécutée sur un hôte et un port spécifiques.
Notes d’utilisation
L'utilisateur principal doit exécuter la procédure mysql.rds_stop_replication_for_channel
.
Exemples
L'exemple suivant arrête la réplication sur channel_1
le réplica multi-source.
CALL mysql.rds_stop_replication_for_channel('channel_1');