Maison  >  Article  >  base de données  >  Quelle est la méthode pour ajouter une base de données esclave dans MYSQL ?

Quelle est la méthode pour ajouter une base de données esclave dans MYSQL ?

PHPz
PHPzavant
2023-05-27 17:43:251758parcourir

    1. Réplication maître-esclave MySQL

    Architecture maître-esclave commune : # 🎜 🎜#

    • 一主一狠 : Un maître, un esclave

    • # 🎜 🎜#一主esclaves multiples

       : Un maître, plusieurs esclaves

    Pour plus de détails, veuillez vous référer à l'image ci-dessous : #🎜🎜 ##🎜🎜 #

    Quelle est la méthode pour ajouter une base de données esclave dans MYSQL ?

    Détails d'implémentation

    Quelle est la méthode pour ajouter une base de données esclave dans MYSQL ?Détails d'implémentation sous-jacents de MySQL lors de la synchronisation du maître -esclave Qu'est-ce que c'est déjà ? Afin d'analyser ultérieurement les raisons du retard maître-esclave et le plan d'optimisation, effectuez des préparations théoriques.

    En résumé, la réplication maître-esclave de MySQL : Quelle est la méthode pour ajouter une base de données esclave dans MYSQL ?Asynchrone mono-thread.

    Master a 1 IO thread, responsable de la transmission du journal binaire à l'esclave (binlog)

    • Il y a 2 threads sur Slave : Thread IO et Thread d'exécution SQL, parmi lesquels : <code>Master上 1 个IO线程,负责向Slave传输 binary logbinlog

    • Slave上 2 个线程:IO 线程执行SQL的线程,其中:

      • IO线程:将获取的日志信息,追加到relay log上;

      • 执行SQL的线程:检测到relay log中内容有更新,则在Slave上执行sql;

    特别说明:MySQL 5.6.3 开始支持「多线程主从复制」,一个数据库一个线程多个数据库多个线程

      IO thread : les informations du journal seront obtenu, ajouter au journal de relais ;

      Thread qui exécute SQL : S'il est détecté que le contenu du journal de relais a été mis à jour , exécutez SQL sur l'esclave ; code>Multi-threading Réplication maître-esclave", une base de donnéesun thread, plusieurs bases de données peut plusieurs threads. <img src="https://img.php.cn/upload/article/000/000/164/168518061344456.png" alt="Quelle est la méthode pour ajouter une base de données esclave dans MYSQL ?">

      Processus complet de réplication maître-esclave entre Maître et Esclave :

      #🎜 🎜 #2. Ajouter un esclave

      Exigences :
        Actuellement, il y a une base de données ucenter sur mon maître, et je dois y ajouter un esclave (il y a actuellement un esclave )#🎜 🎜#
      • Analyse :

      • J'ai une sauvegarde de base de données à 4h00 la veille.
      • Il existe un esclave ucenter existant

      La clé est de trouver le point temporel du binlog#🎜 🎜 #

      Opération :

      1. Configurez les informations de l'esclave sur la machine esclave et modifiez le mysql. configuration cfg Et redémarrez la base de données esclave

      Ajoutez

      replicate-do-db = ucenter     #同步的数据库名字
      slave-skip-errors=all         #同步是忽略错误
      server-id       = 1112        #和master与其他slave保持不通

      2 à [mysqld]. copiez-le sur la nouvelle machine esclave et importez la bibliothèque

      [root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G    ucenter_20171102.sql

      3 Localisez l'horodatage du binlog (point clé)

      #. 🎜🎜# et recherche sur le binlog principal

      [root@Ucenter /data/mysqldata]# ll -t *bin*
      -rw-rw---- 1 mysql mysql   30709744 Nov  2 21:32 mysql-bin.000268
      -rw-rw---- 1 mysql mysql        171 Nov  2 19:41 mysql-bin.index
      -rw-rw---- 1 mysql mysql 1021101094 Nov  2 19:41 mysql-bin.000267
      -rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266
      -rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265
      -rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264
      -rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263
      -rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262
      -rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261
      -rw-rw---- 1 mysql mysql 1073742184 Oct  7 09:49 mysql-bin.000260

      Mon heure de sauvegarde commence à 4 heures le 2, je devrais donc rechercher le POS avant 4 heures le 2 dans mysql-bin .000267 et commencez le positionnement

      [root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep &#39;3:59:&#39; |grep -v &#39;13:59:&#39;
      #171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824386335 Query    thread_id=3023086386    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar
      #171102 3:59:58 server id 21323 end_log_pos 824386698 Query    thread_id=3023086386    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824387706 Query    thread_id=3023086388    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar
      #171102 3:59:58 server id 21323 end_log_pos 824388209 Query    thread_id=3023086388    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824388534 Query    thread_id=3023086398    exec_time=0    error_code=0
      Alors positionnez-le jusqu'à la fin end_log_pos 824388534

      4. 🎜🎜#5 sur un autre esclave esclave Configurez l'esclave pour la synchronisation

      Configurez les paramètres pertinents sur l'esclave pour indiquer à l'esclave comment se connecter au maître, y compris l'adresse de l'hôte, la connexion informations d'identification, etc.

      [root@LeduPass02/data/mysqldata]# cat master.info 
      15
      mysql-bin.000268
      11367810
      192.168.100.70
      omsync
      om@123
      3306
      60
      0
      
      0
      0
      #🎜🎜 #

      Open slave

      [root@ucenter_slave /data]# mysql
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 6
      Server version: 5.1.51-Community-Server-log Source
      
      Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
      This software comes with ABSOLUTELY NO WARRANTY. This is free software,
      and you are welcome to modify and redistribute it under the GPL v2 license
      
      Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.
      
      mysql (none)>change master to master_host=&#39;192.168.100.70&#39;,master_port=3306,master_user=&#39;omsync&#39;,master_password=&#39;om@123&#39;,master_log_file=&#39;mysql-bin.000267&#39;,master_log_pos=824388534;

      Vérifier le statut de l'esclave : #🎜 🎜#

      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