Gestion de la réplication multisource
Les procédures stockées suivantes permettent de configurer et de gérer les canaux de réplication sur un réplica multisource RDS for MySQL. Pour plus d’informations, consultez Configuration de la réplication multisource pour Amazon RDS for MySQL.
Ces procédures stockées ne sont disponibles qu’avec les instances de base de données RDS for MySQL exécutant les versions de moteur suivantes :
-
Toutes les versions 8.4
8.0.35 et versions mineures ultérieures
5.7.44 et versions mineures ultérieures
Lorsque vous utilisez des procédures stockées pour gérer la réplication avec un utilisateur de réplication configuré avec caching_sha2_passwword, vous devez configurer le protocole TLS en spécifiant SOURCE_SSL=1. caching_sha2_password est le plugin d’authentification par défaut pour RDS for MySQL 8.4.
Note
Bien que cette documentation désigne les instances de base de données source sous le nom d’instances de base de données RDS for MySQL, ces procédures fonctionnent également pour les instances MySQL exécutées en dehors d’Amazon RDS.
mysql.rds_next_source_log_for_channel
Modifie 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 du canal. N’utilisez cette procédure que si vous recevez une erreur 1236 d’E/S de réplication sur un réplica multisource.
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. -
channel_name -
Nom du canal de réplication sur le réplica multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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’un réplica multisource. L’exécution de SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G sur le réplica multisource 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');
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 du réplica multisource.
Important
Pour exécuter cette procédure, autocommit doit être activé. Pour l'activer, définissez le paramètre autocommit sur 1. Pour plus d’informations sur la modification des paramètres d’instance, consultez Modification de paramètres dans 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 multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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 de base de données RDS for MySQL afin de répliquer les données d’une autre instance de base de données RDS for MySQL.
Important
Pour exécuter cette procédure, autocommit doit être activé. Pour l'activer, définissez le paramètre autocommit sur 1. Pour plus d’informations sur la modification des paramètres d’instance, consultez Modification de paramètres dans un groupe de paramètres de base de données dans Amazon RDS.
Note
Vous pouvez plutôt utiliser la procédure stockée mysql.rds_set_external_source_with_delay_for_channel 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 -
Nom d’hôte ou adresse IP de l’instance de base de données source RDS for MySQL.
-
host_port -
Port utilisé par l’instance de base de données source RDS for MySQL. 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 qui est exposé par SSH.
-
replication_user_name -
ID d’un utilisateur disposant des autorisations
REPLICATION CLIENTetREPLICATION SLAVEsur l’instance de base de données source RDS for MySQL. Nous vous recommandons de fournir un compte qui soit 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 sur 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 journal binaire en exécutant
SHOW BINARY LOG STATUSsur l’instance de base de données source.Note
Les versions précédentes de MySQL utilisaient
SHOW MASTER STATUSà la place deSHOW BINARY LOG STATUS. Si vous utilisez une version MySQL antérieure à la version 8.4, utilisez alorsSHOW MASTER STATUS. -
ssl_encryption -
Valeur indiquant si le chiffrement Secure Socket Layer (SSL) est utilisé sur la connexion de réplication. La valeur 1 spécifie d'utiliser le chiffrement SSL, et la valeur 0 de ne pas l'utiliser. La valeur par défaut est 0.
Note
L'option
SOURCE_SSL_VERIFY_SERVER_CERTn'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 instance de base de données RDS for MySQL à source unique 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 l’instance de base de données RDS for MySQL cible sur laquelle vous créez le canal de réplication.
Avant d’exécuter mysql.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 le réplica multisource. Pour connecter le réplica multisource à l’instance de base de données source, vous devez spécifier les valeurs replication_user_name et replication_user_password d’un utilisateur de réplication disposant d’autorisations REPLICATION CLIENT et REPLICATION SLAVE sur l’instance de base de données source.
Pour configurer un utilisateur de réplication sur l’instance de base de données source
À l’aide du client MySQL 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 de.
Important
En tant que bonne pratique de sécurité, spécifiez un mot de passe autre que la valeur d’espace réservé indiquée dans les exemples suivants.
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';Sur l’instance de base de données source, attribuez les privilèges
REPLICATION CLIENTetREPLICATION SLAVEà votre utilisateur de réplication. L’exemple suivant accorde les privilègesREPLICATION CLIENTetREPLICATION SLAVEsur 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 de façon à utiliser les connexions SSL.
Après avoir appelé mysql.rds_set_external_source_for_channel pour configurer ce canal de réplication, vous pouvez appeler mysql.rds_start_replication_for_channel sur le réplica 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 du réplica.
Lorsque vous appelez mysql.rds_set_external_source_for_channel, Amazon RDS enregistre l’heure, l’utilisateur et une action de set channel source dans la table mysql.rds_history sans informations spécifiques au canal, et dans la table mysql.rds_replication_status avec le nom du canal. 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 généraux, en fonction des exigences spécifiques de votre application.
Exemples
Lorsqu’il est exécuté sur une instance de base de données RDS for MySQL, 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 de base de données RDS for MySQL avec un délai de réplication facultatif. La réplication est basée sur des identifiants de transaction globaux (GTID).
Important
Pour exécuter cette procédure, autocommit doit être activé. Pour l'activer, définissez le paramètre autocommit sur 1. Pour plus d’informations sur la modification des paramètres d’instance, consultez Modification de paramètres dans 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 -
Nom d’hôte ou adresse IP de l’instance de base de données source RDS for MySQL.
-
host_port -
Port utilisé par l’instance de base de données source RDS for MySQL. 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 qui est exposé par SSH.
-
replication_user_name -
ID d’un utilisateur disposant des autorisations
REPLICATION CLIENTetREPLICATION SLAVEsur l’instance de base de données source RDS for MySQL. Nous vous recommandons de fournir un compte qui soit 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 indiquant si le chiffrement Secure Socket Layer (SSL) est utilisé sur la connexion de réplication. La valeur 1 spécifie d'utiliser le chiffrement SSL, et la valeur 0 de ne pas l'utiliser. La valeur par défaut est 0.
Note
L'option
SOURCE_SSL_VERIFY_SERVER_CERTn'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 -
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 instance de base de données RDS for MySQL à source unique 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 l’instance de base de données RDS for MySQL cible sur laquelle vous créez le canal de réplication.
Avant d’exécuter rds_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 le réplica multisource. Pour connecter le réplica multisource à l’instance de base de données source, vous devez spécifier les valeurs replication_user_name et replication_user_password d’un utilisateur de réplication disposant d’autorisations REPLICATION CLIENT et REPLICATION SLAVE sur l’instance de base de données source.
Pour configurer un utilisateur de réplication sur l’instance de base de données source
À l’aide du client MySQL 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 de.
Important
En tant que bonne pratique de sécurité, spécifiez un mot de passe autre que la valeur d’espace réservé indiquée dans les exemples suivants.
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';Sur l’instance de base de données source, attribuez les privilèges
REPLICATION CLIENTetREPLICATION SLAVEà votre utilisateur de réplication. L’exemple suivant accorde les privilègesREPLICATION CLIENTetREPLICATION SLAVEsur 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 de façon à utiliser les connexions SSL.
Avant d’appeler mysql.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 système gtid_purged avec une plage GTID 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 de base de données Amazon RDS comme réplica en lecture sur un canal spécifique, vous pouvez appeler mysql.rds_start_replication_for_channel sur le réplica 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 appeler mysql.rds_start_replication_for_channel sur le réplica 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 du réplica.
Exemples
Lorsqu’il est exécuté sur une instance de base de données RDS for MySQL, 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 sur une heure (3 600 secondes). Cela signifie qu’une modification provenant de l’instance de base de données source RDS for MySQL n’est pas appliquée sur le réplica multisource pendant au moins une heure.
call mysql.rds_set_external_source_with_auto_position_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 1, 3600, 'channel_1');
mysql.rds_set_external_source_with_delay_for_channel
Configure un canal de réplication sur une instance de base de données RDS for MySQL 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 plus d’informations sur la modification des paramètres d’instance, consultez Modification de paramètres dans 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 -
Nom d’hôte ou adresse IP de l’instance de base de données source RDS for MySQL.
-
host_port -
Port utilisé par l’instance de base de données source RDS for MySQL. 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 qui est exposé par SSH.
-
replication_user_name -
ID d’un utilisateur disposant des autorisations
REPLICATION CLIENTetREPLICATION SLAVEsur l’instance de base de données source RDS for MySQL. Nous vous recommandons de fournir un compte qui soit 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 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 BINARY LOG STATUSsur l’instance de base de données source.Note
Les versions précédentes de MySQL utilisaient
SHOW MASTER STATUSà la place deSHOW BINARY LOG STATUS. Si vous utilisez une version MySQL antérieure à la version 8.4, utilisez alorsSHOW MASTER STATUS. -
ssl_encryption -
Valeur indiquant si le chiffrement Secure Socket Layer (SSL) est utilisé sur la connexion de réplication. La valeur 1 spécifie d'utiliser le chiffrement SSL, et la valeur 0 de ne pas l'utiliser. La valeur par défaut est 0.
Note
L'option
SOURCE_SSL_VERIFY_SERVER_CERTn'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 -
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 instance de base de données RDS for MySQL à source unique 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 l’instance de base de données RDS for MySQL cible sur laquelle vous créez le canal de réplication.
Avant d’exécuter mysql.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 le réplica multisource. Pour connecter le réplica multisource à l’instance de base de données source, vous devez spécifier les valeurs replication_user_name et replication_user_password d’un utilisateur de réplication disposant d’autorisations REPLICATION CLIENT et REPLICATION SLAVE sur l’instance de base de données source.
Pour configurer un utilisateur de réplication sur l’instance de base de données source
À l’aide du client MySQL 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 de.
Important
En tant que bonne pratique de sécurité, spécifiez un mot de passe autre que la valeur d’espace réservé indiquée dans les exemples suivants.
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';Sur l’instance de base de données source, attribuez les privilèges
REPLICATION CLIENTetREPLICATION SLAVEà votre utilisateur de réplication. L’exemple suivant accorde les privilègesREPLICATION CLIENTetREPLICATION SLAVEsur 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 de façon à utiliser les connexions SSL.
Après avoir appelé mysql.rds_set_external_source_with_delay_for_channel pour configurer ce canal de réplication, vous pouvez appeler mysql.rds_start_replication_for_channel sur le réplica 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 du réplica.
Lorsque vous appelez mysql.rds_set_external_source_with_delay_for_channel, Amazon RDS enregistre l’heure, l’utilisateur et une action de set channel source dans la table mysql.rds_history sans informations spécifiques au canal, et dans la table mysql.rds_replication_status avec le nom du canal. 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 généraux, en fonction des exigences spécifiques de votre application.
Exemples
Lorsqu’il est exécuté sur une instance de base de données RDS for MySQL, 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 sur une heure (3 600 secondes). Cela signifie qu’une modification provenant de l’instance de base de données source RDS for MySQL n’est pas appliquée sur le réplica multisource 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, 1, 3600, 'channel_1');
mysql.rds_set_source_auto_position_for_channel
Définit le mode de réplication pour le canal spécifié de manière à ce qu’il soit basé sur des positions de fichier journal binaire ou sur des identifiants de transaction globaux (GTID).
Syntaxe
CALL mysql.rds_set_source_auto_position_for_channel (auto_position_mode,channel_name);
Paramètres
-
auto_position_mode -
Valeur qui indique si la réplication à utiliser est la réplication basée sur la position de fichier ou la réplication basée sur les identifiants de transaction globaux :
-
0– Utiliser la méthode de réplication basée sur la position du fichier journal binaire. La valeur par défaut est0. -
1– Utiliser la méthode de réplication basée sur les identifiants de transaction globaux.
-
-
channel_name -
Nom du canal de réplication sur le réplica multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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 basée sur le GTID.
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
mysql.rds_set_source_delay_for_channel
Définit le nombre minimum de secondes pour retarder la réplication de l’instance de base de données source vers le réplica multisource pour le canal spécifié.
Syntaxe
CALL mysql.rds_set_source_delay_for_channel(delay,channel_name);
Paramètres
-
delay -
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 multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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 à partir de l’instance de base de données source sur le channel_1 du réplica multisource pendant au moins un 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 du journal binaire et supprime une erreur de réplication sur un réplica multisource de base de données MySQL 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 multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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 que mysql.rds_skip_repl_error pour ignorer une erreur sur un réplica en lecture. Pour plus d’informations, consultez Appel de la procédure mysql.rds_skip_repl_error.
Note
Pour ignorer les erreurs lors de la réplication basée sur le GTID, nous vous recommandons plutôt d’utiliser la procédure mysql.rds_skip_transaction_with_gtid.
Pour déterminer s’il y a des erreurs, exécutez la commande MySQL SHOW REPLICA STATUS FOR CHANNEL '. 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. S’il y a plusieurs erreurs, mysql.rds_skip_repl_error_for_channel supprime la première sur le canal de réplication spécifié, puis avertit qu’il y a d’autres erreurs. Vous pouvez alors utiliser SHOW REPLICA STATUS FOR CHANNEL ' pour déterminer l’action appropriée pour l’erreur suivante. Pour obtenir des informations sur les valeurs renvoyées, consultez Instruction SHOW REPLICA STATUSchannel_name'\G
mysql.rds_start_replication_for_channel
Lance la réplication à partir d’une instance de bases de données RDS for MySQL vers un réplica multisource sur le canal spécifié.
Note
Vous pouvez utiliser la procédure stockée mysql.rds_start_replication_until_for_channel ou mysql.rds_start_replication_until_gtid_for_channel pour lancer la réplication à partir d'une instance de bases de données RDS for MySQL et arrêter la réplication à la position spécifiée dans le fichier journal binaire.
Syntaxe
CALL mysql.rds_start_replication_for_channel(channel_name);
Paramètres
-
channel_name -
Nom du canal de réplication sur le réplica multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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 à partir de l’instance de base de données source RDS for MySQL, exécutez cette commande sur le réplica multisource pour démarrer la réplication sur le canal spécifié.
Exemples
L’exemple suivant démarre la réplication sur le channel_1 du réplica multisource.
CALL mysql.rds_start_replication_for_channel('channel_1');
mysql.rds_start_replication_until_for_channel
Lance la réplication à partir d’une instance de bases de données RDS for MySQL sur le canal spécifié et arrête la réplication à la position spécifiée dans le fichier journal binaire.
Syntaxe
CALL mysql.rds_start_replication_until_for_channel (replication_log_file,replication_stop_point,channel_name);
Paramètres
-
replication_log_file -
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 multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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. Cette procédure arrête à la fois SQL_THREAD et IO_THREAD.
Le nom de fichier spécifié pour le paramètre replication_log_file doit correspondre au nom du fichier binlog de l’instance de base de données source.
Lorsque le paramètre replication_stop_point spécifie une position d’arrêt survenant dans le passé, la réplication est arrêtée immédiatement.
Exemples
L’exemple suivant lance la réplication sur channel_1 et réplique les modifications jusqu’à ce qu’il atteigne la position 120 dans le fichier journal binaire 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
Lance la réplication sur le canal spécifié à partir d’une instance de bases de données RDS for MySQL et arrête la réplication à la position de l’identifiant de transaction global spécifié (GTID).
Syntaxe
CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);
Paramètres
-
gtid -
Identifiant de transaction global (GTID) après lequel la réplication s’arrête.
-
channel_name -
Nom du canal de réplication sur le réplica multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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 valeur GTID spécifiée. Ensuite, elle 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 sur channel_1 et réplique les modifications jusqu’à ce que le GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 soit atteint.
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 à partir d’une instance de base de données MySQL 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 multisource. Chaque canal de réplication reçoit les événements du journal binaire d’une instance de base de données RDS for MySQL à source unique 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 le channel_1 du réplica multisource.
CALL mysql.rds_stop_replication_for_channel('channel_1');