contour
MySQL 5.6 fonctionnalités sont GTID ajouté une fonctionnalité puissante, il vise à utiliser MySQL GTID capable de basculer automatiquement l'environnement de réplication ensemble, plutôt que précédemment requis et indiquer l'emplacement du fichier, qui doit être la direction du développement futur, nous connaissons MGR est également basé sur le principe GTID, nous comprenons GTID est nécessaire.
Cycle de vie des affaires GTID
GTID dire ID de transaction global (identifiant global de la transaction), en fait GTID UUID + TID de celui-ci. MySQL cas où UUID est une identification unique. TID représente le nombre de transactions sur ce cas a été soumis, et que la transaction est validée augmenter de façon monotone, si GTID en mesure de garantir l'exécution de chaque instance de transaction de MySQL (pas répéter la même transaction, et ne compensera pas toute la transaction exécutée).
Ici pour l'expliquer à travers tout le cycle de vie d'un graphique, nous supposons qu'il ya un maître- > négrier > esclave L'environnement de réplication, pour générer un GTID 89dfa8a4-cb13-11e6-b504-000c29a879a3: 1 Les affaires GTID, parce que le nom est trop long j'ai été réduit à 879a3: 1 Figure:
GTID
Peut être vu tout au long du cycle de vie nombre de transactions de GTID n'est pas changé, quelle que soit la bibliothèque principale ou de la bibliothèque, il est 89dfa8a4-cb13-11e6-b504-000c29a879a3: 1, ce qui est pourquoi il est appelé une cause mondiale.
principe GTID
Une fois connecté au serveur maître du serveur, pour effectuer leur propre avait GTID ( Executed_Gtid_Set ) < thread SQL > , Acquise GTID ( Retrieved_Gtid_Set) < fil IO > Envoyé au serveur principal, le serveur maître du serveur et l'absence correspondante des transactions GTID effectuées dans le passé à la fin. Lorsque le serveur principal pour raccrocher, à savoir que la synchronisation la plus réussie de Taiwan à partir du serveur, vous pouvez diriger à promouvoir à maîtriser. Si vous insistez sur une station spécifiée n'est pas le dernier du serveur à un primaire, le premier changement à la synchronisation des unités plus réussies de ce serveur, comme l'achèvement du GTID tout, vous pouvez le porter principalement sur.
représentation GTID
MySQL 5.6 en utilisant server_uuid et transaction_id deux forment ensemble un GTID. A savoir: GTID = server_uuid: transaction_id
server_uuid sont des variables en lecture seule MySQL Server, conservé dans auto.cnf dans le répertoire de données, peut être consulté directement par la commande cat. MySQL lorsque vous commencez à créer auto.cnf fichier et générer server_uuid (MySQL en utilisant la carte de la machine, l'heure actuelle, des nombres aléatoires dans un ensemble 128bit UUID peut être considéré comme unique dans l'univers entier est, au cours des cent prochaines années, en utilisant le même algorithme pour générer un UUID est pas en conflit). génération UUID ne répétera pas lorsque MySQL après le redémarrage, mais l'utilisation de auto.cnf l'UUID. Vous pouvez également consulter le client MySQL en utilisant la commande suivante server_uuid, voir le fait server_uuid code hexadécimal, un total de 16 octets (qui uuid dans la ligne horizontale uniquement pour faciliter la visualisation, et aucune signification pratique).
mysql > afficher les variables globales comme « server_uuid »;Dans le même groupe, server_uuid chaque instance de MySQL doit être unique, sinon la synchronisation provoquera fil IO constamment interrompue, rebranchement. Lorsque la sauvegarde des données et la récupération, assurez-vous de supprimer auto.cnf répertoire var, de sorte que lorsque le MySQL démarrer leur propre UUID de génération.
GTID dans certaines d'entre elles est TRANSACTION_ID, transaction_id sous le même server_uuid de plus en plus généralement. Si une transaction est effectuée par le thread utilisateur, MySQL lors de la génération GTID, il utilisera son propre server_uuid, et incrémente un transaction_id comme GTID la transaction. Bien sûr, si la transaction est générée par le thread SQL lors de la lecture relais journal arrière, puis GTID l'utilisation directe du binlog dans. MySQL 5.6 en binlog il n'y a pas GTID ne vous inquiétez pas, parce que si ouvert les modèles GTID des bibliothèques, la bibliothèque principale doit être ouverte, sinon le fil IO lorsqu'une connexion est interrompue sur. 5.6 GTID MySQL exigences de l'environnement de cluster sont très strictes, ou en mode maître-esclave GTID tout ouvert ou tout mode GTID fermé.
Utilisation server_uuid: Avantages composés d'un transaction_id de GTID, en raison server_uuid unique, même si plusieurs nuds d'un cluster ont écrit, il ne causera pas de conflit GTID.
Devops et plus tard partageront les aspects DBA plus de contenu, des amis intéressés peuvent regarder -