variables mysql gtid_executed et gtid_purged
Question
J'aimerais savoir où se trouve gtid_executed
et gtid_purged
les variables sont stockées dans le moteur de base de données.S'il ne s'agit que de variables d'exécution, comment sont-elles exactement initialisées ?
La solution
Ils ne font partie d’aucun moteur de stockage particulier.Les variables GTID peuvent être vues en exécutant :
SHOW GLOBAL VARIABLES LIKE 'gtid%';
ou
SELECT * FROM information_schema.global_variables
WHERE variable_name LIKE 'gtid%';
Quand tu cours RESET MASTER
sur le serveur DB, ces valeurs sont masquées.
Documentation MySQL dit à propos de gtid_exécuté
L'émission de RESET MASTER entraîne la réinitialisation de la valeur globale (mais pas de la valeur de session) de cette variable à une chaîne vide.Les GTID ne sont pas supprimés de cet ensemble, sauf lorsque l'ensemble est effacé en raison de RESET MASTER.L'ensemble est également effacé si le serveur est arrêté et que tous les journaux binaires sont supprimés.
Documentation MySQL dit à propos de gtid_purgé
L'émission de RESET MASTER entraîne la réinitialisation de la valeur de cette variable à une chaîne vide.
Lorsque les instructions SQL sont exécutées, gtid_exécuté est mis à jour avec la valeur GTID Set.
Documentation MySQL dit à propos de gtid_exécuté
Au démarrage du serveur, @@global.gtid_executed est initialisé à l'union des deux ensembles suivants :
Les GTID répertoriés dans le previous_gtids_log_event du journal binaire le plus récent
Les GTID trouvés dans chaque Gtid_log_event du journal binaire le plus récent.
Par la suite, les GTID sont ajoutés à l’ensemble au fur et à mesure de l’exécution des transactions.
gtid_purgé ne peut être défini que lorsqu’il est vide.Habituellement, vous définirez cette variable lors du rechargement d'un mysqldump dont la source avait GTID activé.
Autres conseils
- Vous devez commencer ici : Une visite guidée du code source MySQL
- Ensuite, vous pouvez rechercher le code source MySQL sur GitHub pour
gtid_executed
etgtid_purged
Vous devrez probablement creuser un peu, mais c'est aussi loin que je voulais aller, bonne chance.