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.
Rubriques
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
Syntaxe
CALL mysql.rds_assign_gtids_to_anonymous_transactions(
gtid_option
);
Paramètres
-
gtid_option
-
Valeur de chaîne. Les valeurs autorisées sont
OFF
LOCAL
, 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 =
dans la communauté MySQL.gtid_option
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.
LOCAL
assigne 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 GTIDsgtid_executed
qui n'ont pas encore été purgés. Legtid_set
le paramètre ne peut pas non plus inclure GTIDs les transactions figurant dans l'gtid_owned
ensemble 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');