MySQL-Betrieb und -Wartung 31 – Aufbau einer Slave-Bibliothek online basierend auf einer vorhandenen Slave-Bibliothek

1. Die Bedeutung von Online

Das sogenannte Online bedeutet Nonstop. Daher besteht der Online-Aufbau einer Slave-Bibliothek auf der Grundlage einer vorhandenen Slave-Bibliothek darin, eine neue Slave-Bibliothek zu erstellen, ohne die alte Slave-Bibliothek anzuhalten. Unsere bisherige Methode bestand darin, eine neue Slave-Bibliothek zu erstellen, indem wir die alte Slave-Bibliothek schließen und Datendateien kopieren. Dies ist offensichtlich keine Online-Methode.

2. Die Idee, eine Slave-Bibliothek online aufzubauen, basierend auf der bestehenden Slave-Bibliothek

Wenn die alte Slave-Bibliothek nicht geschlossen werden kann, schließen wir im Allgemeinen den SQL-Thread des Slaves der alten Slave-Bibliothek und exportieren dann die Daten, um eine neue Slave-Bibliothek zu erstellen. Nach dem Schließen des Replikations-SQL-Threads der Slave-Bibliothek wird die Slave-Bibliothek nicht mehr aktualisiert. Zu diesem Zeitpunkt kann davon ausgegangen werden, dass wir einen konsistenten Snapshot erhalten haben.

3. Schritte zum Online-Aufbau einer Slave-Bibliothek basierend auf einer vorhandenen Slave-Bibliothek

  1. Betrieb der alten Slave-Bibliothek: Schließen Sie den SQL-Thread von Slave und rufen Sie die Informationen von SHOW SLAVE STATUS ab.
mysql> STOP SLAVE SQL_THREAD;
mysql> SHOW SLAVE STATUS \G;
  1. Betrieb der alten Slave-Bibliothek: Für die Ausgabe des Befehls SHOW SLAVE STATUS konzentrieren wir uns auf die folgenden zwei Punkte. Der neue Slave sollte von diesen beiden Standorten auf dem Master aus mit der Neusynchronisierung beginnen.
Relay_Master_Log_File
Exec_Master_Log_Pos
  1. Alte Operation aus der Datenbank: Exportieren Sie die Datenbank. Der Befehl lautet wie folgt:
shell> mysqldump   --master-data=2  --all-databases > dumpfile
  1. Betrieb der alten Slave-Bibliothek: Slave neu starten:
mysql> START SLAVE;
  1. Betrieb einer neuen Slave-Bibliothek: Daten in einen neuen Slave-Computer importieren:
shell> mysql < dumpfile
  1. Betrieb der neuen Slave-Bibliothek: Führen Sie für die neue Slave-Instanz den folgenden Befehl aus, um eine Synchronisierung zu versuchen. file_name und file_pos sind die im zweiten Schritt aufgezeichneten Werte von Relay_Master_Log_File und Exec_Master_Log_Pos.
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.124.171',
MASTER_PORT=3306,
MASTER_USER='replic_user',
MASTER_PASSWORD='000000',
MASTER_LOG_FILE='mysql-bin.000006',
MASTER_LOG_POS=635;

mysql> START SLAVE;

4. Zusammenfassung

  1. Wenn Sie eine neue Slave-Bibliothek basierend auf der vorhandenen Slave-Bibliothek erstellen möchten, die vorhandene Slave-Bibliothek jedoch nicht geschlossen werden kann, können Sie die Ausführung der neuen Replikation stoppen, indem Sie den SQL-Thread der alten Slave-Bibliothek schließen und dann eine konsistente Sicherung erstellen mysqldump ist wie zuvor offline. Ermitteln Sie dann den Ausführungsort des Relay-Protokolls durch Beobachten des Relay-Protokolls und kopieren Sie dann weiter vom Ausführungsort der alten Slave-Bibliothek in die neue Slave-Bibliothek.

おすすめ

転載: blog.csdn.net/oddrock/article/details/130293730