Vorwort Die Master-Slave-Replikationsbeziehung von MySQL wird weniger streng als „Synchronisation“ oder „Master-Slave-Synchronisation“ bezeichnet. Tatsächlich konnten Master und Slave von MySQL in der Anfangszeit keine echte „Synchronisierung“ (sync) erreichen, sondern nur eine „Asynchronität“ (async). Die MySQL-Master-Slave-Replikation kann mehrere Modi haben. Der klassischste und älteste ist die asynchrone Replikation (async replication). Seit Version 5.5 ist die semisynchrone Replikation (semi-sync replication) verfügbar, und seit 5.7 ist die erweiterte semisynchrone Replikation verfügbar. Die in diesem Artikel besprochene verzögerte Slave-Bibliothek ist auch eine Funktion, die nach 5.6 verfügbar ist. Zuvor muss sie mit dem Percona pt-slave-delay-Tool getarnt implementiert werden. Darüber hinaus wurde seit Version 5.6 die parallele Replikation hinzugefügt, diese basiert jedoch immer noch auf dem schemabasierten Parallelmodus (Slave-Parallel-Typ = DATABASE), der sehr ineffizient und sinnlos ist. In 5.7 wurde eine echte parallele Replikation (Slave-Parallel-Typ = LOGICAL_CLOCK) implementiert, die die Replikationseffizienz erheblich verbesserte. Darüber hinaus wurde eine Multi-Source-Replikation hinzugefügt, die die Implementierung einer Multi-Master- und einer Slave-Architektur sehr bequem machte. Nachdem wir uns nun mit der kurzen Geschichte der MySQL-Replikation befasst haben, kommen wir nun zum Punkt. Die Vorteile von MySQL Delayed Slaves sind folgende: 1. Wenn Daten versehentlich gelöscht werden, können sie schneller wiederhergestellt werden. Manchmal werden Online-Daten aufgrund von Handshakes versehentlich gelöscht, oder die Datenbank, Tabelle oder andere Objekte werden versehentlich gelöscht, oder Aktualisierungen oder Löschungen werden durchgeführt, ohne WHERE-Bedingungen hinzuzufügen. All dies kann dazu führen, dass die verzögerte Slave-Datenbank zum Zeitpunkt vor der falschen Operation anhält und dann wiederhergestellt wird. 2. Verwenden Sie den verzögerten Slave als dedizierten Backup-Knoten. Obwohl es zu einer gewissen Verzögerung kommt, wirkt sich dies weder auf die Verwendung des Knotens als Sicherungsrolle noch auf die Datenbankbibliothek des Produktionsknotens aus. 3. Sie können die Verzögerungsbibliothek auch als Objekt einiger Probleme und Fallstudien verwenden. Manchmal können einige Binlog-Ereignisse Probleme auf normalen Slaves verursachen (zum Beispiel das klassische Problem in frühen Versionen, bei dem kein Primärschlüssel sehr langsame Updates auf Slaves verursacht). In diesem Fall haben Sie Zeit, verzögerte Slaves langsam zu untersuchen und zu erforschen. Die Methode zum Aktivieren des verzögerten Slaves ist ebenfalls sehr einfach. So funktioniert es in MySQL 8.0: #Verwenden Sie zum Einstellen direkt CHANGE MASTER TO. Die folgende N-Einheit ist Sekunden CHANGE MASTER TO MASTER_DELAY = N Wenn ein Fehler auftritt und die verzögerte Slave-Bibliothek an einer bestimmten Position angehalten werden muss, verwenden Sie den folgenden Befehl: SLAVE STARTEN BIS { #1. Stoppen bis zur angegebenen GTID-Position {SQL_BEFORE_GTIDS | SQL_AFTER_GTIDS} = gtid_set #2. Stoppen Sie bis zur angegebenen Binärprotokollposition | MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = log_pos #3. Stoppen Sie bis zur angegebenen Relay-Log-Position | RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = log_pos #4. Stoppen Sie, bis zwischen mehreren parallelen Threads auf dem Slave keine Verzögerungslücke mehr besteht. #Aufgrund der Multithread-Replikation ist der Replikationsfortschritt verschiedener Threads unterschiedlich, sodass eine Lücke entsteht | SQL_AFTER_MTS_GAPS } PS: Ab 5.7 kann die Änderung der Option MASTER_DELAY sofort online wirksam werden, ohne dass der Slave-Thread neu gestartet werden muss. Was die spezifische MASTER_DELAY-Einstellung betrifft, müssen Sie die durchschnittliche Zeit schätzen, die der DBA benötigt, um im Fehlerfall vor Ort einzutreffen. Im Allgemeinen wird etwa 1 Stunde empfohlen. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Lösung für den Fehler „Disk sda contains BIOS RAID metadata“ bei der Installation von CentOS 6.x
Annahme: Die gespeicherte Prozedur wird täglich v...
1. Übersicht Ich habe viel online gesucht und fes...
Tutorial zur Installation und Kennworteinstellung...
1. Funktionseinführung sed (Stream EDitor) ist ei...
Problembeschreibung Als ich kürzlich ein Springbo...
Inhaltsverzeichnis 1. Implizite Konvertierung Kon...
Was ist JDK? Nun, wenn Sie diese Frage nicht kenn...
1. Allgemeine Verwendung: (1) Mit % verwenden % s...
Inhaltsverzeichnis Weiterleitungsproxy Nginx-Reve...
Im Allgemeinen können wir beim Herunterladen von ...
Datenträgerbezeichnung, Eigenschaftsname, Beschre...
Mit der Anweisung „Truncate table“ werden alle Da...
Wie lädt man das JAR-Paket in ein privates Lager ...
MySQL 5.7.17, scheint jetzt die neueste Version z...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...