Einführung in die Umgebung: Ubuntu Server 16.04.2+MySQL 5.7.17 Community-Server (GPL) MySQL-Installation Installation über APT, Adresse des offiziellen Anleitungsdokuments: 1. Laden Sie mysql-apt-config_0.8.3-1_all.deb herunter 2. Installieren Sie deb Eine Kurzanleitung zur Verwendung des MySQL APT-Repository: >sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb 3. Quelle aktualisieren >sudo apt-get update 4. MySQL installieren >sudo apt-get installiere MySQL-Server 5. Wählen Sie die Installation aus und legen Sie das Kennwort gemäß den Anweisungen fest. Darüber hinaus müssen Sie es einrichten, die IP binden und Port 3306 der Firewall öffnen. Hier lernen wir hauptsächlich die halbsynchrone MySQL-Replikation und werden nicht viel über die Installation von MySQL erklären. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht. Einführung in die halbsynchrone MySQL-Replikation (1) Standardmäßig ist die Replikationsfunktion von MySQL asynchron, was die beste Leistung bietet. Wenn die Master-Datenbank das Binlog-Protokoll an die Slave-Datenbank sendet, ist die Aktion abgeschlossen und es wird nicht überprüft, ob die Slave-Datenbank das Protokoll empfangen hat. Dieser Vorgang bedeutet, dass bei einem Ausfall des Master- oder Slave-Servers der Slave-Server das vom Master-Server gesendete Binlog-Protokoll möglicherweise nicht empfängt, was zu Dateninkonsistenzen zwischen dem Master-Server und dem Slave-Server und sogar zu Datenverlust während der Wiederherstellung führen kann. Beachten: Der halbsynchrone Replikationsmodus muss sowohl auf dem Master- als auch auf dem Slave-Server aktiviert sein, andernfalls verwendet der Master-Server standardmäßig den asynchronen Replikationsmodus. (2) Fall der asynchronen Replikation: Installations- und Konfigurationsdetails zur MySQL5.6-Datenbank-Master/Slave-Synchronisierung (3) Um die oben genannten möglichen Fehler zu beheben, wurde in MySQL 5.5 ein halbsynchroner Replikationsmodus eingeführt. Dieser Modus stellt sicher, dass der Slave-Server die vom Master-Server gesendete (4) Wenn ein Timeout auftritt, wechselt der Master-Server vorübergehend in den asynchronen Replikationsmodus, bis mindestens ein Slave-Server die Informationen rechtzeitig empfängt. (5) Selbstreparatur von Relay-Protokollen: Ab MySQL 5.5.X wurde der Parameter (6) Umschalten zwischen halbsynchroner Replikation und asynchroner Replikation: Das Funktionsprinzip der halbsynchronen Replikation besteht darin, dass der Slave-IO_Thread-Thread, wenn er das Binlog-Protokoll empfängt, dem Master eine Bestätigung geben muss. Wenn MySQL halbsynchrone Replikationskonfiguration Zuerst müssen Sie zwei MySQLs installieren, hier sind sie:
Die ursprüngliche Datenbank sieht folgendermaßen aus: 1. Master-Konfiguration (1) Installieren Sie das Plug-In für die halbsynchrone Replikation in der Master-Datenbank: mysql>PLUGIN INSTALLIEREN rpl_semi_sync_master SONAME 'semisync_master.so'; (2) Aktivieren Sie die halbsynchrone Replikation auf dem Master: mysql>GLOBAL rpl_semi_sync_master_enabled festlegen = 1; (3) Ändern Sie Das obige Bild zeigt den Dateipfad für die MySQL-Konfiguration. [mysqld] log-bin=mysql-bin Server-ID = 10086 server_id_bits = 33 rpl_semi_sync_master_enabled=1 rpl_semi_sync_master_timeout=1000 (4) Ändern Sie die MySQL-Server-UUID-Konfigurationsdatei: root@xuliugen:/var/lib/mysql# pwd /var/lib/mysql Ändern Sie die Datei [Auto] server-uuid=8d90feb7-1a88-11e7-9d11-000c298a546f (5) Prüfen Sie, ob die Konfiguration erfolgreich war: mysql>SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%'; (6) Parameterbeschreibung: 1. 2. 3. 4. Es ist ersichtlich, dass bei der Konfiguration des Masters nur 1 eingestellt wurde und die anderen auf die Standardeinstellungen gesetzt wurden. 2. Slave-Konfiguration (1) Installieren Sie das Plug-In für die halbsynchrone Replikation in der Slave-Datenbank: mysql>PLUGIN INSTALLIEREN rpl_semi_sync_slave SONAME 'semisync_slave.so'; (2) Aktivieren Sie die halbsynchrone Replikation auf dem Slave: mysql>GLOBAL rpl_semi_sync_slave_enabled festlegen = 1; (3) Ändern Sie [mysqld] log-bin=mysql-bin server_id=10089 server_id_bits = 32 rpl_semi_sync_slave_enabled = 1 (4) Ändern Sie die MySQL-Server-UUID-Konfigurationsdatei: root@xuliugen:/var/lib/mysql# pwd /var/lib/mysql Ändern Sie die Datei [Auto] server-uuid=8d90feb7-1a88-11e7-9d11-000c298a123f Stellen Sie sicher, dass es sich von der (5) Prüfen Sie, ob die Konfiguration erfolgreich war: mysql>SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%'; (6) Parameterbeschreibung: 1. 2. 3. Festlegen eines Masters für einen Slave (1) Starten Sie den Master im Kommandozeilenmodus neu root@xuliugen:~# service mysql restart (2) Neustart des Slaves im Kommandozeilenmodus root@xuliugen:~# service mysql restart (3) Überprüfen Sie den Masterstatus: mysql> Masterstatus anzeigen\G; *************************** 1. Reihe *************************** Datei:mysql-bin.000004 Position: 154 Binlog_Do_DB: Binlog_Ignore_DB: Ausgeführtes_Gtid_Set: 1 Zeile im Satz (0,02 Sek.) MySQL> Beachten: Datei:mysql-bin.000004 Position: 154 Ganz wichtig, du wirst es später brauchen! (4) Geben Sie den Master für den Slave an: 1. Schalten Sie zunächst die halbsynchrone Replikation des Slaves aus mysql> Slave stoppen; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) 2. Master für Slave angeben mysql>ändere Master in master_host='192.168.1.227',master_user='root',master_password='123456',master_log_file='mysql-bin.000004', master_log_pos=154; Abfrage OK, 0 Zeilen betroffen, 2 Warnungen (0,02 Sek.) In: master_host='192.168.1.227', IP-Adresse der Master-Datenbankmaster_user='root', Konto der Master-Datenbankmaster_password='123456', Passwort des Root-Benutzers der Master-Datenbankmaster_log_file='mysql-bin.000004', Binärprotokolldatei der Master-Datenbankmaster_log_pos=154, Position der Binärprotokolldatei der Master-Datenbank Beachten: Ab MySQL Version 5.6 können Sie bei der Master-Slave-Replikation die GTID-Methode verwenden. Es ist nicht mehr nötig, Binglog- und POS-Punkte zu finden. Sie müssen nur die IP, den Port, das Konto und das Passwort des Masterservers kennen, um automatisch den Punkt für die Synchronisierung zu finden. Wenn die GTID-Funktion aktiviert ist, müssen Binlog und POS nicht mehr verwendet werden. Weitere Informationen entnehmen Sie bitte den entsprechenden Studienunterlagen. 3. Aktivieren Sie die halbsynchrone Replikation des Slaves mysql> Slave starten; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) 4. Testen Sie, ob die halbsynchrone Replikation erfolgreich ist 5. So schließen Sie die Slave-Synchronisierungsinformationen ordnungsgemäß Irgendwann wird ein Server nicht mehr als Slave verwendet. Daher müssen wir seine Synchronisierungsinformationen löschen. Normalerweise geschieht dies mit: mysql> stop slave #Zuerst herunterfahrenmysql> reset slave #Synchronisationsinformationen des Slaves löschen Bei der Anzeige über show master status\G gilt jedoch: mysql> Masterstatus anzeigen\G; Die Synchronisierungsinformationen werden weiterhin angezeigt. Dies liegt daran, dass durch die Ausführung Wie kann man es deutlicher machen? Bitte verwenden Sie den folgenden Befehl: mysql> stop slave #Zuerst herunterfahrenmysql> reset slave all#Slave-Synchronisationsinformationen löschen Wenn Sie VI. Simulation einiger abnormaler Szenarien (1) Umschalten zwischen halbsynchroner Replikation und asynchroner Replikation: Oben wurde erläutert, warum der Wechsel von der halbsynchronen Replikation zur asynchronen Replikation erfolgt. Lassen Sie uns nun zur Demonstration ein Szenario simulieren. Das Szenario ist wie folgt: 1. Schließen Sie die Slave-Synchronisierung und stoppen Sie den IO-Empfang von Binlog-Protokollen mysql> Slave stoppen; Dieser Vorgang beendet den IO-Thread und wartet 10 Sekunden. Wenn der Master keine Bestätigung vom Slave erhält, wechselt er in den asynchronen Replikationsmodus: In der obigen Abbildung können wir sehen, dass der Slave den halbsynchronen Replikationsmodus ausgeschaltet und wieder eingeschaltet hat: mysql> Slave starten; An diesem Punkt wurde der halbsynchrone Replikationsmodus wiederhergestellt. (2) Demonstration des synchronen Fehlerfalls: Wir löschen zunächst die Datenbanktabelle
Überprüfen Sie an dieser Stelle den halbsynchronen Status: Es ist aktiviert, sodass der halbsynchrone Replikationsmodus nicht in den asynchronen Replikationsmodus umgewandelt wird. Es ist ersichtlich, dass der halbsynchrone Replikationsmodus direkt mit Das heißt, nach dem Empfang des Binärprotokolls von der Slave-Bibliothek gibt es der Master-Bibliothek eine Bestätigung, kümmert sich jedoch nicht darum, ob 6. Leistungsanalyse, Vor- und Nachteile des halbsynchronen Replikationsmodus Da der asynchrone Replikationsmodus unter normalen Umständen nicht auf die Antwort vom Server warten muss, ist seine Geschwindigkeit höher als beim halbsynchronen Replikationsmodus und sein Durchsatz ist höher. Beim Aktualisieren, Einfügen und Löschen von Daten ist seine Geschwindigkeit höher als beim halbsynchronen Replikationsmodus. Der halbsynchrone Replikationsmodus ist jedoch für die Datenkonsistenz von Vorteil. Für einige Daten mit hohen Konsistenzanforderungen und kleinen Netzwerkschwankungen kann der halbsynchrone Replikationsmodus verwendet werden. 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:
|
<<: Analysieren der Knotenereignisschleife und der Nachrichtenwarteschlange
>>: Windows 10 1903 Fehler 0xc0000135 Lösung [empfohlen]
Vorwort Linux-Gruppen sind Organisationseinheiten...
Erstellen des Images Es gibt zwei Hauptmethoden z...
Inhaltsverzeichnis Vorwort 1. MySQL ermöglicht SS...
Inhaltsverzeichnis Erstellen Sie eine Vuex-Umgebu...
1. Befehlseinführung Mit dem Befehl passwd werden...
Inhaltsverzeichnis 1. Einleitung 2. Vorteile 3. N...
Wirkung Von oben nach unten verblassen Quellcode ...
Inhaltsverzeichnis Vorwort 1.1 Funktion 1.2 So st...
Erstens: Installation von MySQL Laden Sie die MyS...
Inhaltsverzeichnis Überblick in Operatorverfeiner...
Erfahren Sie, wie Sie Ihre eigene Website auf Apa...
Inhaltsverzeichnis Fügen Sie dem Tree-Element Cod...
Inhaltsverzeichnis Verwendung von CURRENT_TIMESTA...
1. Prinzip des besten linken Präfixes – Wenn mehr...