Zusammenfassung der Vorteile der Bereitstellung von MySQL Delayed Slaves

Zusammenfassung der Vorteile der Bereitstellung von MySQL Delayed Slaves

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:
  • Eine Fallstudie zur Fehlerbehebung bei Verzögerungen in Slave-Datenbanken in MySQL
  • Analyse und Lösung des MySQL-Master-Slave-Asynchronie-Verzögerungsprinzips
  • Detaillierte Erläuterung zur Reduzierung der MySQL Master-Slave-Datensynchronisationsverzögerung
  • Grundlegendes Tutorial zum Lösen von Slave-Latenzproblemen in MySQL
  • Optimierungsmethode für das MySQL-Synchronisierungsproblem mit großer Slave-Verzögerung
  • Methode zur Leistungsoptimierung mit verzögerter Zuordnung von MySQL
  • mySQL Delayed Query Haupttabelle
  • Ausführliche Erläuterung des MySQL Master-Slave-Replikationsverzögerungsproblems

<<:  Lösung für den Fehler „Disk sda contains BIOS RAID metadata“ bei der Installation von CentOS 6.x

>>:  Vite2.0 Fallstricke

Artikel empfehlen

So implementieren Sie geplante MySQL-Aufgaben unter Linux

Annahme: Die gespeicherte Prozedur wird täglich v...

Tutorial zur Installation und Kennwortkonfiguration von MySQL 5.7.21

Tutorial zur Installation und Kennworteinstellung...

Verwendung des Linux-Befehls sed

1. Funktionseinführung sed (Stream EDitor) ist ei...

Eine Zusammenfassung der Fuzzy-Abfrage von MySQL wie

1. Allgemeine Verwendung: (1) Mit % verwenden % s...

Detaillierte Erläuterung des Nginx-Forward-Proxys und des Reverse-Proxys

Inhaltsverzeichnis Weiterleitungsproxy Nginx-Reve...

HTML-Grammatik-Enzyklopädie_HTML-Sprachgrammatik-Enzyklopädie (unbedingt lesen)

Datenträgerbezeichnung, Eigenschaftsname, Beschre...

Verwendung der MySQL-Anweisung „truncate table“

Mit der Anweisung „Truncate table“ werden alle Da...

So laden Sie das JAR-Paket über die Webseite auf Nexus hoch

Wie lädt man das JAR-Paket in ein privates Lager ...

HTML-Auszeichnungssprache - Tabellen-Tag

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...