Maison  >  Article  >  base de données  >  Comprendre le mode de réplication basé sur GTID de Mysql

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

coldplay.xixi
coldplay.xixiavant
2020-12-28 10:12:212284parcourir

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;
  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;
    5, activez la réplication
    mysql> START SLAVE;
    6, vérifiez la réplication maître-esclave
    mysql> show slave status \G

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer