Heim  >  Artikel  >  Datenbank  >  Was ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?

Was ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?

PHPz
PHPznach vorne
2023-05-27 17:43:251763Durchsuche

    1. MySQL-Master-Slave-Replikation

    Gemeinsame Master-Slave-Architektur:

    • Ein Master und ein Slave: ein Master, ein Slave

    • ein Master und mehrere Slaves : ein Master, mehrere Slaves

    Einzelheiten finden Sie in der folgenden Abbildung:

    Was ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?

    Was ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?

    Implementierungsdetails

    MySQL Was sind die zugrunde liegenden Implementierungsdetails, wenn eine Master-Slave-Synchronisierung durchgeführt wird? Um später die Gründe für die Master-Slave-Verzögerung und den Optimierungsplan zu analysieren, treffen Sie theoretische Vorbereitungen.

    Was ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?

    Zusammenfassend ist die Master-Slave-Replikation von MySQL: Asynchroner Single-Threaded.

    • Master hat 1 IO-Thread, der für die Übertragung des Binärprotokolls (binlog) an den Slave verantwortlich istMaster上 1 个IO线程,负责向Slave传输 binary logbinlog

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

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

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

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

    Slave hat 2 Threads: IO-Thread und SQL-Ausführungsthread, darunter:

      IO-Thread: Hängen Sie die erhaltenen Protokollinformationen an das Relay-Protokoll an auf dem Slave-SQL ausgeführt; Was ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?

      Besonderer Hinweis: MySQL 5.6.3 beginnt mit der Unterstützung der Master-Slave-Replikation von „Multithreaded“. ", eine Datenbank<code>Ein Thread, Mehrere Datenbanken können Mehrere Threads.

      Vollständiger Master-Slave-Replikationsprozess zwischen Master und Slave:

      • 2. Einen Slave hinzufügen
      • Anforderungen:
      • Derzeit habe ich ein Datenbank-Ucenter auf meinem Master und muss einen Slave hinzufügen dazu (Derzeit gibt es einen Slave)
      • Analyse:

      Ich habe am Vortag um 4:00 Uhr ein Datenbank-Backup durchgeführt.

      Es gibt einen vorhandenen Ucenter-Slave

      Der Schlüssel besteht darin, den Zeitpunkt von Binlog zu finden

      Vorgang:

      1. Konfigurieren Sie die Slave-Informationen auf dem Slave-Computer und ändern Sie MySQL. cfg-Konfiguration und Neustart der Slave-Datenbank

      Fügen Sie

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

      in [mysqld] hinzu. 2. Suchen Sie die Sicherung der Datenbank vom Vortag, kopieren Sie sie auf den neuen Slave-Computer und importieren Sie die Datenbank

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

      3. Suchen Sie den Binlog-Zeitstempel (Schlüsselpunkt)

      Suchen Sie nach dem Binlog auf dem Master

      [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

      Meine Backup-Zeit beginnt am 2. um 16 Uhr, also sollte ich vor 16 Uhr am 2. nach dem Pos suchen mysql-bin.000267 und starten Sie die Positionierung

      [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
      So positionieren Sie am Ende end_log_pos 824388534

      4. Zeigen Sie master.info auf einem anderen Slave an

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

      Was ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?5. Konfigurieren Sie den Slave auf dem Slave für die Synchronisierung

      🎜🎜Konfigurieren Sie die Relevante Einstellungen auf dem Slave, um dem Slave mitzuteilen, wie er sich mit dem Master verbinden soll, dazu gehören Hostadresse, Anmeldeinformationen usw

    Das obige ist der detaillierte Inhalt vonWas ist die Methode zum Hinzufügen einer Slave-Datenbank in MYSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen