Gestion de la réplication multi-sources - Amazon Relational Database Service

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.

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 commande SHOW REPLICA STATUS FOR CHANNEL 'channel_name' et affichez le champ 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 les REPLICATION 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 SLAVEautorisations 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
  1. À 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';
  2. Sur l'instance de base de données source, accordez REPLICATION CLIENT des REPLICATION SLAVE privilèges à 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 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 les REPLICATION 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 SLAVEautorisations 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
  1. À 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';
  2. Sur l'instance de base de données source, accordez REPLICATION CLIENT des REPLICATION SLAVE privilèges à 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 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 les REPLICATION 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 SLAVEautorisations 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
  1. À 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';
  2. Sur l'instance de base de données source, accordez REPLICATION CLIENT des REPLICATION SLAVE privilèges à 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 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 est 0.

  • 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 éviter les erreurs liées à la réplication GTID basée, nous vous recommandons d'utiliser cette procédure à la place.

Pour déterminer s'il existe des erreurs, exécutez la SQL SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G commande My. 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. 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 'channel_name'\G pour déterminer l'action appropriée pour l'erreur suivante. Pour plus d'informations sur les valeurs renvoyées, voir la SHOWREPLICASTATUSdéclaration dans la section Ma SQL documentation.

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