Die bidirektionale MySQL-Sicherung wird auch als Master-Master-Sicherung bezeichnet, d. h. beide MySQL-Dienste sind Master und jeder Dienst ist ein Slave des anderen Dienstes. Vorbereiten Server
Hinweis: Die gesicherte MySQL-Serverversion sollte konsistent gehalten werden, da verschiedene Versionen möglicherweise inkompatible Binärprotokollformate haben. Spezifische Operationen Beachten Achten Sie während des Betriebs auf die Konsistenz der Daten auf beiden Seiten! ! ! MasterA-Konfiguration meine.cnf [mysqld] # Eindeutige Serverkennung Server-ID = 1 # Name der binären Protokolldatei log-bin=mysql-bin # Datenbanken, die gesichert werden müssen, mehrere Datenbanken werden durch getrennt, binlog-do-db=piumnl # Datenbanken, die repliziert werden müssen, mehrere Datenbanken werden durch replicate-do-db=piumnl getrennt # Name der Relay-Protokolldatei relay_log=mysqld-relay-bin # Starten Sie den Synchronisierungsdienst manuell, um eine durch plötzliche Ausfallzeiten verursachte Asynchronisierung des Datenprotokolls zu vermeiden. skip-slave-start=ON # Für gegenseitigen Master-Slave müssen Sie diese Zeile log-slave-updates=ON hinzufügen # Deaktivieren Sie symbolische Links, um Sicherheitsrisiken vorzubeugen. Sie müssen symbolic-links=0 nicht hinzufügen. # Optional# resolve - [Warnung] Slave SQL: Bei einem Absturz garantiert diese Konfiguration nicht, dass die Relay-Log-Informationen konsistent sind, Fehlercode: 0 Master-Info-Repository = Tabelle relay-log-info-repository=Tabelle Relay-Log-Wiederherstellung = 1 #Optional# Durch das Deaktivieren der DNS-Auflösung wird der bei der Autorisierung verwendete Domänenname ungültig. skip-host-cache Namensauflösung überspringen sql_mode=KEIN_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES MasterB-Konfiguration meine.cnf # Nicht mehr jedes Konfigurationselement erklären [mysqld] Server-ID = 2 log-bin=mysql-bin binlog-do-db=piumnl replizieren-do-db=piumnl relay_log=mysql-relay-bin skip-slave-start=EIN log-slave-updates=EIN symbolische Links = 0 # resolve - [Warnung] Slave SQL: Bei einem Absturz garantiert diese Konfiguration nicht, dass die Relay-Log-Informationen konsistent sind, Fehlercode: 0 Master-Info-Repository = Tabelle relay-log-info-repository=Tabelle Relay-Log-Wiederherstellung = 1 Host-Cache überspringen Namensauflösung überspringen sql_mode=KEIN_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES Erstellen eines Backup-Benutzers Sowohl MasterA als auch MasterB müssen einen Backup-Benutzer erstellen: create user 'rep'@'%' identified by 'rep'; # Ein Konto erstellen grant replication slave on *.* to 'rep'@'%'; # Dem Konto Master-Slave-Backup-Berechtigungen für alle Tabellen in allen Datenbanken erteilen Bemerkung:
Starten Sie den Server neu Starten Sie den Server neu Sicherung aktivieren masterA Überprüfen Sie den Status von MasterB Masterstatus anzeigen\G; # Hier müssen Sie auf die Datei- und Positionswerte achten Sicherung aktivieren Sklave stoppen; # master_log_file ist der Dateiwert des ersten Schrittvorgangs. # master_log_pos ist der Positionswert des ersten Schrittvorgangs. Ändere Master in master_host=<master_hostname>, master_user=<rep_username>, master_port=<master_port>, master_password=<rep_password>, master_log_file='mysql-log.000003', master_log_pos=154; Slave starten; Ergebnisse anzeigen Slave-Status anzeigen\G; # Überprüfen Sie die beiden wichtigsten Punkte. Beide müssen Ja sein. Wenn einer Nein ist, überprüfen Sie die Fehlerprotokolldatei, um festzustellen, wo das Problem liegt. # Slave_IO_Running: Ja # Slave_SQL_Running: Ja masterB Wiederholen Sie den Vorgang von MasterA in umgekehrter Reihenfolge. prüfen Fügen Sie Daten jeweils in MasterA und MasterB ein und prüfen Sie, ob der andere Server die erwarteten Daten rechtzeitig hat. Frage MySQL-Slave konnte das Relay-Protokoll nicht öffnen Dies sollte ein Problem mit dem Relay-Protokoll sein. Sie können die folgenden Vorgänge versuchen Sklave stoppen; Protokolle spülen; Slave starten; Beim Lesen der Daten aus dem Binärprotokoll ist vom Master ein schwerwiegender Fehler 1236 aufgetreten. Beim Abrufen der Protokolle aus der Hauptdatenbank wurde festgestellt, dass die erste Datei in der Datei mysql_bin.index der Hauptdatenbank nicht vorhanden war. # Führen Sie zum Zurücksetzen die folgenden Vorgänge aus. # Wenn das Binärprotokoll oder das Relay-Protokoll andere Funktionen hat, führen Sie die folgenden Vorgänge nicht aus, um den Master zurückzusetzen. Slave zurücksetzen; Protokolle spülen; <Datenbank>.<Tabelle> Die Verwendung von <Datenbank>.<Tabelle> für Einfüge-, Aktualisierungs- und Löschvorgänge wird nicht gesichert (das ist eine große Falle)! ! ! Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Implementierung eines einfachen Gobang-Spiels mit nativem JavaScript
>>: Detaillierte Installation und Verwendung von Docker-Compose
Zum Beginn des neuen Jahres möchte ich meinen Fre...
Inhaltsverzeichnis Ausgabe Ausgabepfad Ausgabe.öf...
Inhaltsverzeichnis 1. Herunterladen 2. Installati...
Übersicht über partitionierte MySQL-Tabellen Da M...
Meines ist: <!DOCTYPE html> Blog-Garten: &l...
Code kopieren Der Code lautet wie folgt: <!DOC...
Gegeben: Ein Array [1,8,5,4,3,9,2], schreiben Sie...
Swap deaktivieren Wenn auf dem Server ein Datenba...
<br />In einem Jahr Bloggen habe ich persönl...
Inhaltsverzeichnis Vorwort InnoDB-Speicherarchite...
Im Allgemeinen wird das Colspan-Attribut des <...
Wie wir alle wissen, ist „mailto“ ein sehr praktis...
Laden Sie das ZIP-Installationspaket herunter: Do...
Kontrollkästchen sind auf Webseiten sehr verbreit...
Einführung in Nginx Nginx ist ein leistungsstarke...