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
Inhaltsverzeichnis Zweck npm init und package.jso...
Vorwort Wenn Sie RabbitMQ verwenden und für einen...
Spezifische Methode: Schritt 1: Stoppen Sie den M...
1. Einleitung Wenn ein Webprojekt auf unserem Lin...
Während des Entwicklungsprozesses stoße ich häufi...
Wenn Sie die Wahl haben, sollten Sie UTF-8 verwen...
In diesem Artikelbeispiel wird der spezifische Co...
max_allowed_packet ist ein Parameter in MySQL, de...
Ich habe bereits einige grundlegende CSS-Selektor...
<br />Hallo zusammen! Es ist mir eine Ehre, ...
dl: Definitionsliste Definitionsliste dt: Definiti...
Quelle des Problems: Wenn der Slave-Server der ge...
Inhaltsverzeichnis Erstellen Sie ein einfaches Sp...
Natives js-gekapseltes nahtloses Karussell-Plug-I...
In diesem Artikel wird kurz beschrieben, wie Sie ...