Gestion de la réplication multisource - Amazon Relational Database Service

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 commande SHOW REPLICA STATUS FOR CHANNEL 'channel_name' et affichez le champ 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 CLIENT et REPLICATION SLAVE sur 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 STATUS sur l’instance de base de données source.

Note

Les versions précédentes de MySQL utilisaient SHOW MASTER STATUS à la place de SHOW BINARY LOG STATUS. Si vous utilisez une version MySQL antérieure à la version 8.4, utilisez alors SHOW 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_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 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
  1. À 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';
  2. Sur l’instance de base de données source, attribuez les privilèges REPLICATION CLIENT et REPLICATION SLAVE à votre utilisateur de réplication. L’exemple suivant accorde les privilèges REPLICATION CLIENT et REPLICATION 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 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 CLIENT et REPLICATION SLAVE sur 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_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

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
  1. À 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';
  2. Sur l’instance de base de données source, attribuez les privilèges REPLICATION CLIENT et REPLICATION SLAVE à votre utilisateur de réplication. L’exemple suivant accorde les privilèges REPLICATION CLIENT et REPLICATION 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 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 CLIENT et REPLICATION SLAVE sur 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 STATUS sur l’instance de base de données source.

Note

Les versions précédentes de MySQL utilisaient SHOW MASTER STATUS à la place de SHOW BINARY LOG STATUS. Si vous utilisez une version MySQL antérieure à la version 8.4, utilisez alors SHOW 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_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

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
  1. À 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';
  2. Sur l’instance de base de données source, attribuez les privilèges REPLICATION CLIENT et REPLICATION SLAVE à votre utilisateur de réplication. L’exemple suivant accorde les privilèges REPLICATION CLIENT et REPLICATION 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 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 est 0.

  • 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 'channel_name'\G. Si une erreur de réplication n’est pas critique, vous pouvez exécuter mysql.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 'channel_name'\G pour déterminer l’action appropriée pour l’erreur suivante. Pour obtenir des informations sur les valeurs renvoyées, consultez Instruction SHOW REPLICA STATUS dans la documentation sur MySQL.

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