1. EinleitungMySQL verfügt über eine Replikationslösung, die folgende Vorteile bietet: Datensicherung. Lastenausgleich. Verteilte Daten. Konzepteinführung: Master: Die Datenbank, die repliziert wird. Slave: Eine Datenbank, die die Daten des Masters repliziert. Schritte zum Reproduzieren: Hier ist ein klassisches Bild, um diesen Vorgang zu veranschaulichen: 2. Implementierung der ReplikationZur Durchführung der Replikation sind folgende Schritte notwendig: 1. Einrichten des Binärlogs und der Server-ID der MySQL-Masterbibliothek MySQL-Konfigurationsdateien werden normalerweise in /etc/my.cnf gespeichert # Konfigurationsoptionen [mysqld] unter [mysqld] hinzufügen Server-ID = 1 log-bin=mysql-bin.log Die Server-ID ist die eindeutige Kennung der Datenbank im gesamten Datenbankcluster und muss eindeutig bleiben. Hinweis: Wenn diese Datei bereits in der MySQL-Konfigurationsdatei konfiguriert wurde, können Sie diesen Schritt überspringen. 2. Neues Kopierkonto erstellen Erstellen Sie in der Masterdatenbank ein neues Konto, um Masterdatenbankdaten aus der Datenbank zu kopieren, und erteilen Sie Kopierberechtigungen. mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO Benutzername@'Host' IDENTIFIED BY 'Passwort'; 3. Legen Sie die Server-ID der MySQL-Masterdatenbank fest Wie schon bei der Konfiguration im zweiten Schritt sind zwei Punkte zu beachten: Wenn die Slave-Bibliothek nicht als Master-Bibliothek für andere Slave-Bibliotheken dienen soll, müssen Sie die binäre Protokollierung nicht konfigurieren. Häufig ist für die Replikation keine Replikation aller Datenbanken in der Masterdatenbank erforderlich (insbesondere nicht der MySQL-Informationskonfigurationsdatenbank). Daher können Sie replicate_do_db konfigurieren, um die replizierte Datenbank anzugeben. 4. Initialisieren Sie die Daten der Masterdatenbank aus der Datenbank Wenn die Datenmenge nicht groß ist, können Sie das Tool mysqldump verwenden, um die Daten der Masterdatenbank zu exportieren und dann in die Slavedatenbank zu importieren. mysqldump --single-transaction --triggers --master-data Datenbankname > data.sql Bei großen Datenmengen sollten Sie zum Exportieren der Datenbank Xtrabackup verwenden, das hier nicht vorgestellt wird. Wenn unsere Master-Datenbank schon lange läuft, ist es nicht geeignet, die Slave-Datenbank zum Kopieren von Daten gemäß dem Binärprotokoll zu verwenden. Es wäre zeitaufwändig und leistungsintensiv, das Binärprotokoll direkt zum Initialisieren der Slave-Datenbank zu verwenden. In den meisten Fällen ist das Konfigurationselement für das Binärprotokoll der Masterdatenbank nicht aktiviert, sodass kein Binärprotokoll vorheriger Vorgänge vorhanden ist. 5. Aktivieren Sie die Replikation Führen Sie den folgenden Befehl aus der Bibliothek aus mysql> ÄNDERN SIE MASTER ZU MASTER_HOST='host', -> MASTER_USER='Benutzer', -> MASTER_PASSWORD='Passwort', -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=0; Beachten Sie die letzten beiden Befehle: MASTER_LOG_FILE und MASTER_LOG_POS, die angeben, welche Binärdatei aus der Bibliothek gelesen werden soll und wo der Offset beginnt. Diese beiden Parameter finden Sie in dem von uns importierten SQL. Aktivieren der Replikation Slave starten; An diesem Punkt ist die Replikation abgeschlossen. Wenn Daten in der Master-Datenbank aktualisiert oder neue Daten hinzugefügt werden, können die Ergebnisse in der Slave-Datenbank abgefragt werden. Der Status des Replikationsthreads kann auch auf der Masterdatenbank abgefragt werden. 3. ReplikationsprotokollformatEs gibt drei Protokollformate für die MySQL-Replikation, abhängig davon, wie die Masterdatenbank Daten speichert:
Vor MySQL 5.7 wurde standardmäßig das Anweisungsformat verwendet. Die Einstellungsmethode kann in der Konfigurationsdatei festgelegt werden (bevorzugt): binlog_format=ZEILE Oder legen Sie temporär globale Variablen fest (aktuelle MySQL-Verbindung ist gültig): Zeigen Sie das Protokollformat MySQL an > zeigen Sie Variablen wie „binlog_format“ an. Legen Sie das Protokollformat mysql> set binlog_format='row'; fest. Da sich die beiden Master- und Slave-Server normalerweise im selben Computerraum befinden, ist die Synchronisierungsgeschwindigkeit zwischen beiden schneller. Um eine starke Konsistenz sicherzustellen, sollte das Zeilenprotokollformat (row) bevorzugt werden. Um die Übertragungsgeschwindigkeit sicherzustellen, kann der gemischte Modus (mixed) ausgewählt werden.
|
<<: JS Canvas-Oberfläche und Animationseffekte
>>: So ziehen Sie das Docker-Image herunter, um die Version anzuzeigen
Laden Sie die offizielle Website herunter Wählen ...
In diesem Artikelbeispiel wird der spezifische Co...
Es gibt zwei Metaattribute: Name und http-equiv. D...
Überlegungen zu den beiden Sichtweisen „menscheno...
MySQL8.0.12-Installationstutorial, mit allen teil...
Zu den vom HTTP/1.1-Protokoll angegebenen HTTP-An...
Heute habe ich mysql-5.7.18-winx64.zip von der of...
Im Forum fragen Internetnutzer oft: „Kann ich den...
SQL-Fuzzy-Abfrageanweisung Die allgemeine Fuzzy-A...
<br />Verwandte Artikel: 9 praktische Vorsch...
Inhaltsverzeichnis 1. BOM-Einführung 1. JavaScrip...
Inhaltsverzeichnis Was ist nodejs Installieren Si...
Binlog ist eine binäre Protokolldatei, die alle M...
<br />Ich werde mit diesem Problem im Grunde...
Inhaltsverzeichnis Erstellen Sie ein Docker-Image...