Répliquer des transactions à l'aide de GTIDs - Amazon Aurora

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.

Répliquer des transactions à l'aide de GTIDs

Les procédures stockées suivantes contrôlent la manière dont les transactions sont répliquées à l'aide d'identifiants de transaction globaux (GTIDs) avec Aurora My. SQL Pour savoir comment utiliser la réplication basée sur GTIDs Aurora MySQL, consultezUtilisation de GTID la réplication basée.

mysql.rds_assign_gtids_to_anonymous_transactions (Aurora My version 3) SQL

Configure l'option ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS de l'instruction CHANGE REPLICATION SOURCE TO. Cela oblige le canal de réplication à attribuer un GTID aux transactions répliquées qui n'en ont pas. Ainsi, vous pouvez effectuer une réplication de journaux binaires à partir d'une source qui n'utilise pas la réplication GTID basée vers une réplique qui en utilise une. Pour plus d'informations, consultez CHANGEREPLICATIONSOURCEles sections Déclaration TO et réplication d'une source sans GTIDs vers une réplique avec GTIDs dans le manuel My SQL Reference.

Syntaxe

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

Paramètres

gtid_option

Valeur de chaîne. Les valeurs autorisées sont OFFLOCAL, ou spécifiéesUUID.

Notes d’utilisation

Cette procédure a le même effet que la publication de la déclaration CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option dans la communauté MySQL.

GTIDdoit être utilisé ON pour gtid_option à définir sur LOCAL ou à définirUUID.

La valeur par défaut est OFF, ce qui signifie que la fonctionnalité n'est pas utilisée.

LOCALassigne un GTID y compris le propre à la réplique UUID (le server_uuid paramètre).

La transmission d'un paramètre UUID assigne un GTID qui inclut le paramètre spécifiéUUID, tel que le server_uuid paramètre du serveur source de réplication.

Exemples

Pour désactiver cette fonction :

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('OFF'); +-------------------------------------------------------------+ | Message | +-------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: OFF | +-------------------------------------------------------------+ 1 row in set (0.07 sec)

Pour utiliser le propre modèle de la réplique, procédez comme suit UUID :

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('LOCAL'); +---------------------------------------------------------------+ | Message | +---------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: LOCAL | +---------------------------------------------------------------+ 1 row in set (0.07 sec)

Pour utiliser une valeur spécifiée UUID :

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('317a4760-f3dd-3b74-8e45-0615ed29de0e'); +----------------------------------------------------------------------------------------------+ | Message | +----------------------------------------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: 317a4760-f3dd-3b74-8e45-0615ed29de0e | +----------------------------------------------------------------------------------------------+ 1 row in set (0.07 sec)

mysql.rds_gtid_purged (Aurora My version 3) SQL

Définit la valeur globale de la variable système gtid_purged sur un ensemble d'identifiants de transaction globaux (GTID) donné. La variable gtid_purged système est un GTID ensemble composé GTIDs de toutes les transactions qui ont été validées sur le serveur, mais qui n'existent dans aucun fichier journal binaire du serveur.

Pour permettre la compatibilité avec My SQL 8.0, il existe deux manières de définir la valeur de gtid_purged :

  • Remplacez la valeur de par gtid_purged l'GTIDensemble que vous avez spécifié.

  • Ajoutez l'GTIDensemble que vous avez spécifié à l'GTIDensemble qui le contient gtid_purged déjà.

Syntaxe

Pour remplacer la valeur de par gtid_purged l'GTIDensemble que vous avez spécifié :

CALL mysql.rds_gtid_purged (gtid_set);

Pour ajouter la valeur de gtid_purged à l'GTIDensemble que vous avez spécifié :

CALL mysql.rds_gtid_purged (+gtid_set);

Paramètres

gtid_set

La valeur de gtid_set doit être un sur-ensemble de la valeur actuelle degtid_purged, et ne peut pas se croiser avec. gtid_subtract(gtid_executed,gtid_purged) En d'autres termes, le nouvel GTID ensemble doit inclure GTIDs ceux qui y figuraient déjàgtid_purged, et ne peut pas inclure ceux GTIDs gtid_executed qui n'ont pas encore été purgés. Le gtid_set le paramètre ne peut pas non plus inclure GTIDs les transactions figurant dans l'gtid_ownedensemble global, GTIDs pour les transactions en cours de traitement sur le serveur.

Notes d’utilisation

L'utilisateur principal doit exécuter la procédure mysql.rds_gtid_purged.

Cette procédure est prise en charge pour les SQL versions 3.04 et supérieures d'Aurora My.

Exemples

L'exemple suivant affecte le GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 à la variable gtid_purged globale.

CALL mysql.rds_gtid_purged('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_skip_transaction_with_gtid (Aurora My versions 2 et 3) SQL

Ignore la réplication d'une transaction avec l'identifiant de transaction global spécifié (GTID) sur une instance principale d'Aurora.

Vous pouvez utiliser cette procédure pour la reprise après sinistre lorsqu'une GTID transaction spécifique est connue comme étant à l'origine d'un problème. Utilisez cette procédure stockée pour ignorer la transaction problématique. Les transactions problématiques sont par exemple celles qui désactivent la réplication, suppriment des données importantes ou entraînent l'indisponibilité de l'instance de base de données.

Syntaxe

CALL mysql.rds_skip_transaction_with_gtid ( gtid_to_skip );

Paramètres

gtid_to_skip

La transaction GTID de réplication à ignorer.

Notes d’utilisation

L'utilisateur principal doit exécuter la procédure mysql.rds_skip_transaction_with_gtid.

Cette procédure est prise en charge pour les SQL versions 2 et 3 d'Aurora My.

Exemples

L'exemple suivant ignore la réplication de la transaction avec le GTID3E11FA47-71CA-11E1-9E33-C80AA9429562:23.

CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_start_replication_until_gtid (Aurora My version 3) SQL

Lance la réplication à partir My SQL DB et arrête la réplication immédiatement après l'identifiant de transaction global spécifié (GTID).

Syntaxe

CALL mysql.rds_start_replication_until_gtid(gtid);

Paramètres

gtid

GTIDAprès quoi la réplication doit s'arrêter.

Notes d’utilisation

L'utilisateur principal doit exécuter la procédure mysql.rds_start_replication_until_gtid.

Cette procédure est prise en charge pour les SQL versions 3.04 et supérieures d'Aurora My.

La procédure mysql.rds_start_replication_until_gtid stockée n'est pas prise en charge pour la réplication gérée, qui inclut les éléments suivants :

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.

Exemples

L'exemple suivant lance la réplication et réplique les modifications jusqu'à ce qu'elles soient atteintes. GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23

call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');