Maison > base de données > tutoriel mysql > le corps du texte

Comprendre le mode de réplication basé sur GTID de Mysql

coldplay.xixi
Libérer: 2020-12-28 10:12:21
avant
2323 Les gens l'ont consulté

Tutoriel MySQLLa colonne présente ce qu'est le mode de réplication basé sur GTID de Mysql

Comprendre le mode de réplication basé sur GTID de Mysql

Recommandé (gratuit) : Tutoriel mysql

Définition GTID

GTID (Global Transaction Identifier) ​​​​​​Identifiant global de la transaction. GTID est une amélioration majeure de la réplication maître-esclave introduite dans la version 5.6. Par rapport à la version précédente de la réplication maître-esclave basée sur les fichiers Binlog + Position, la réplication maître-esclave basée sur GTID offre une plus grande cohérence des données et des données maître-esclave plus robustes. la réplication. La commutation maître-esclave et le basculement sont moins sujets aux erreurs et nécessitent rarement une intervention humaine.

Représentation

GTID = server_uuid:transaction_id
Le GTID est généralement enregistré dans la variable système MySQL @@GLOBAL.gtid_executed et la table système Dans mysql.gtid_executed, la variable système @@GLOBAL.gtid_executed est en mémoire et appartient au stockage non persistant, tandis que la table système mysql.gtid_executed appartient au stockage persistant.

Avantages du GTID par rapport à la réplication traditionnelle

  1. Plus facile à créer une réplication maître-esclave
  2. Mise en œuvre plus facile pour le basculement (commutation maître-esclave), il n'est pas nécessaire de trouver log_file et log_pos
  3. étape par étape comme avant. Le GTID est continu sans trous, garantissant la cohérence des données et zéro perte.
  4. Le cluster de réplication dispose d'un moyen unifié d'identifier l'emplacement de réplication, ce qui facilite la gestion du cluster

Restrictions GTID

  1. Mélanger des moteurs tels qu'Innodb et myisam dans une seule transaction entraînera plusieurs GTIDS
  2. CREATE TABLE…..SELECT ne peuvent pas être utilisés
  3. CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE ne peuvent pas être utilisés dans la transaction

Organigramme de réplication maître-esclave


Cycle de vie du GTID

  1. Lorsqu'une transaction est exécutée et soumise sur une bibliothèque principale, alors la transaction se verra attribuer un gtid associé à l'uuid de la bibliothèque principale. Ce gtid est écrit dans le fichier binlog de la bibliothèque principale.
  2. Lorsque ce fichier binlog atteint la taille maximale et est pivoté, ou lorsque le serveur MySQL est arrêté, le GTID de transaction dans le fichier binlog précédent sera écrit dans la table mysql.gtid_executed.
  3. Lorsqu'une transaction est soumise, le gtid de la transaction sera rapidement ajouté à la variable système @@GLOBAL.gtid_executed, mais la table système mysql.gtid_executed ne le sera pas car certains gtid sont toujours dans le binlog. et il faut attendre que le binlog soit tourné ou il ne sera écrit sur mysql que lorsque mysqlServer est fermé. gtid_executedDans le tableau.
  4. Le binlog de la bibliothèque maître est transféré vers la bibliothèque esclave via le protocole de réplication maître-esclave, et écrit dans le journal de relais de la bibliothèque esclave (journal de relais). La bibliothèque lit le journal de relais gtid et les informations de transaction correspondantes, définit gtid_next sur la valeur gtid, de sorte que la bibliothèque esclave utilise la valeur gtid pour appliquer sa transaction correspondante
  5. Si plusieurs threads appliquent la même transaction simultanément, par exemple car plusieurs paramètres de thread, gtid_next a la même valeur. MySQL Server n'autorise qu'un seul thread à s'exécuter gtid_ownedLa variable système enregistre qui possède le GTID.

Traditionnel. mode de réplication GTID de remplacement

  1. Configurer le GTID
  2. Tous les paramètres du serveur global.read_only paramètres, attendez que le serveur maître-esclave soit synchronisé
    mysql> SET @@global.read_only = ON;
    Copier après la connexion
  3. Redémarrez le serveur maître-esclave à tour de rôle ;
  4. Utilisez le changement de maître pour mettre à jour la configuration maître-esclave ;
    mysql> CHANGE MASTER TO
    MASTER_HOST = host,
    MASTER_PORT = port,
    MASTER_USER = user,
    MASTER_PASSWORD = password,
    MASTER_AUTO_POSITION = 1;
    Copier après la connexion
    5, activez la réplication
    mysql> START SLAVE;
    Copier après la connexion
    6, vérifiez la réplication maître-esclave
    mysql> show slave status \G
    Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!