1 Einleitung Das Binärprotokoll zeichnet SQL-Anweisungen auf, die Daten enthalten oder ändern können, und speichert sie in binärer Form auf der Festplatte. 2. Die Rolle von Binlog Hauptfunktionen: Replikation, Wiederherstellung und Auditing. 3 Binlog aktivieren 3.1 Überprüfen Sie, ob das aktuelle MySQL Binlog unterstützt Das folgende OFF bedeutet nicht unterstützt 3.2 Ändern Sie die Datei my.cnf, um Binlog zu unterstützen my.cnf-Pfad anzeigen mysql --help --verbose | grep my.cnf Erstellen Sie eine neue Datei my.cnf in /etc und fügen Sie den folgenden Inhalt hinzu. Hinweis: Fügen Sie die mysqld-Gruppe hinzu Starten Sie MySQL neu Überprüfen Sie erneut, ob Binlog unterstützt wird 3 Binlog-Verwaltungsbefehle Master-Protokolle anzeigen Zeigen Sie die Liste aller Binlog-Protokolle an. Masterstatus anzeigen. Zeigen Sie den Binlog-Status an. Zeigen Sie den Nummernnamen des letzten Binlog-Protokolls und die Position (pos) an, an der das letzte Ereignis endet Protokolle leeren Aktualisieren Sie die Binlog-Protokolldatei. Nach der Aktualisierung wird eine neue Binlog-Protokolldatei erstellt. Master zurücksetzen Alle Binlog-Protokolldateien löschen Binlog-Protokolldateien anzeigen mysqlbinlog mysql-bin.000002 4 Binlog-bezogene Variablen log_bin Binlog-Schalter. Variablen wie „log_bin“ anzeigen; Zeigen Sie die Variable an: Variablen wie „log_bin“ anzeigen; binlog_format Binlog-Protokollformat. Variablen anzeigen: Variablen wie „binlog_format“ anzeigen; 5 Binlog-Protokollformat REIHE Es werden nur die geänderten Datensatzdetails gespeichert, die kontextbezogenen Informationen zur SQL-Anweisung werden nicht aufgezeichnet. Vorteil Das Binärprotokoll muss die kontextbezogenen Informationen der ausgeführten SQL-Anweisung nicht aufzeichnen. Es muss nur aufzeichnen, wie der Datensatz geändert wurde. Daher zeichnet der Protokollinhalt auf Zeilenebene die Details jeder Datenänderungszeile klar auf. Und es wird kein Problem geben, dass die gespeicherte Prozedur, Funktion oder der Triggeraufruf und der Trigger in bestimmten Situationen nicht korrekt kopiert werden können Mangel Wenn alle ausgeführten Anweisungen im Protokoll aufgezeichnet werden, werden sie als Änderungen an jeder Datensatzzeile aufgezeichnet. Dies kann eine große Menge an Protokollinhalten erzeugen. Wenn beispielsweise eine Aktualisierungsanweisung mehrere Datensätze ändert, wird jede Änderung im Binärprotokoll aufgezeichnet, was zu einer großen Menge an Binärprotokollen führt. Insbesondere beim Ausführen von Anweisungen wie „Alter Table“ wird jeder Datensatz aufgrund der Änderung der Tabellenstruktur geändert, sodass jeder Datensatz der Tabelle im Protokoll aufgezeichnet wird. STELLUNGNAHME Jede SQL-Anweisung, die Daten ändert, wird im Binlog aufgezeichnet. Vorteil Es ist nicht erforderlich, jede Zeilenänderung aufzuzeichnen. Dadurch wird die Menge der Binlog-Protokolle reduziert, E/A gespart und die Leistung verbessert. Wie viel Leistung und Protokollvolumen im Vergleich zu Zeilen eingespart werden kann, hängt von der SQL-Situation der Anwendung ab. Normalerweise ist die Menge an Protokoll, die durch Ändern oder Einfügen desselben Datensatzes im Zeilenformat generiert wird, geringer als die Menge an Protokoll, die durch eine Anweisung generiert wird. Wenn jedoch Aktualisierungsvorgänge mit Bedingungen, das Löschen der gesamten Tabelle, das Ändern der Tabelle und andere Vorgänge berücksichtigt werden, generiert das ROW-Format eine große Menge an Protokollen. Wenn Sie also überlegen, ob Sie Protokolle im ROW-Format verwenden möchten, sollten Sie die tatsächliche Situation der Anwendung berücksichtigen, wie stark die Menge der generierten Protokolle ansteigt und welche IO-Leistungsprobleme damit einhergehen. Mangel Da nur die ausgeführten Anweisungen aufgezeichnet werden, müssen, damit diese Anweisungen auf dem Slave ordnungsgemäß ausgeführt werden können, auch einige relevante Informationen zu jeder Anweisung während der Ausführung aufgezeichnet werden, um sicherzustellen, dass alle Anweisungen auf dem Slave dieselben Ergebnisse erzielen wie bei der Ausführung auf dem Master. Darüber hinaus kann es bei der MySQL-Replikation, beispielsweise bei einigen spezifischen Funktionen, dazu kommen, dass der Slave mit dem Master übereinstimmt, was zu vielen damit verbundenen Problemen führt (beispielsweise bei der sleep()-Funktion, last_insert_id() und benutzerdefinierten Funktionen (udf)). GEMISCHT Eine Kombination der beiden oben genannten Ebenen. Allgemeine Anweisungsänderungen verwenden das Anweisungsformat, um Binärprotokolle zu speichern. Beispielsweise können einige Funktionen und Anweisungen den Master-Slave-Replikationsvorgang nicht abschließen, sodass das Zeilenformat zum Speichern von Binärprotokollen verwendet wird. MySQL unterscheidet das aufzuzeichnende Protokollformat je nach ausgeführter SQL-Anweisung, d. h. es wird zwischen Anweisung und Zeile gewählt. Der Zeilenebenenmodus der neuen Version von MySQL wurde ebenfalls optimiert. Nicht alle Änderungen werden auf Zeilenebene aufgezeichnet. Wenn sich beispielsweise die Tabellenstruktur ändert, wird dies im Anweisungsmodus aufgezeichnet. Bei Anweisungen, die Daten ändern, wie etwa Aktualisieren oder Löschen, werden Änderungen an allen Zeilen weiterhin aufgezeichnet. Auswahl des Binlog-Protokollformats Mysql verwendet standardmäßig das Statement-Log-Format und MIXED wird empfohlen. Aufgrund einiger spezieller Verwendungszwecke können Sie die Verwendung von ROWED in Betracht ziehen, z. B. das Synchronisieren von Datenänderungen über Binlog-Protokolle, wodurch viele damit verbundene Vorgänge eingespart werden. Die Verarbeitung von Binlog-Daten wird sehr einfach, und im Vergleich zu gemischten Daten ist auch das Parsen sehr einfach (vorausgesetzt natürlich, dass der durch das erhöhte Protokollvolumen verursachte IO-Overhead im tolerierbaren Bereich liegt). Auswahl des MySQL-Binlog-Formats MySQL-Auswahlprinzip für das Protokollformat: Wenn Sie INSERT, UPDATE, DELETE und andere direkte Tabellenoperationen verwenden, wird das Protokollformat gemäß der Einstellung von binlog_format aufgezeichnet. Wenn Sie Verwaltungsanweisungen wie GRANT, REVOKE, SET PASSWORD verwenden, wird ohnehin der SBR-Modus zum Aufzeichnen verwendet. 6 Binlog-bezogenes SQL anzeigen Binlog-Ereignisse anzeigen [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count] Sehen Sie sich das erste Binlog-Protokoll an Binlog-Ereignisse anzeigen; Zeigen Sie das angegebene Binlog-Protokoll an Binlog-Ereignisse in „mysql-bin.000001“ anzeigen; Beginnen Sie am angegebenen Ort und zeigen Sie das angegebene Binlog-Protokoll an. Binlog-Ereignisse in „mysql-bin.000001“ ab 666 anzeigen; Beginnen Sie am angegebenen Ort, zeigen Sie das angegebene Binlog-Protokoll an und begrenzen Sie die Anzahl der Abfragen Binlog-Ereignisse in „mysql-bin.000001“ ab 666, Limit 2 anzeigen; Beginnen Sie an der angegebenen Position mit einem Offset, zeigen Sie das angegebene Binlog-Protokoll an und begrenzen Sie die Anzahl der abzufragenden Einträge Binlog-Ereignisse in „mysql-bin.000001“ ab 666 Limit 1, 2 anzeigen; 7 Binlog-Spaltenbeschreibung Ereignistyp
siehe https://www.jb51.net/article/197048.htm Zusammenfassen Dies ist das Ende dieses Artikels mit der ausführlichen Erklärung des Binlogs in MySQL 8.0. Weitere relevante Erklärungen zum Binlog von MySQL 8.0 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Codebeispiel für die Linux-SSH-Serverkonfiguration
>>: Lösung für die verstümmelte Anzeige von Linux SecureCRT
Da ich derzeit zum Erlernen von Deep Learning die...
Als mir diese Frage gestellt wurde, war ich unwis...
Die einfache Installationskonfiguration von mysql...
Inhaltsverzeichnis Bereitstellung mehrerer Anwend...
In manchen Vorstellungsgesprächen werden häufig F...
Vorwort Während des Vorstellungsgesprächs erwähne...
In diesem Artikelbeispiel wird der spezifische Co...
MySQL Zeile zu Spalte, Spalte zu Zeile Der Satz i...
Kontrollkästchen sind auf Webseiten sehr verbreit...
Wenn Sie einen neuen Linux-Server bekommen, müsse...
Null, Hintergrund Ich habe diesen Donnerstag viel...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis 1. Was ist eine Unterabfrage? ...
Heute hatte ich etwas Freizeit, um eine Website f...
Vorwort Aus Kostengründen kaufen die meisten Webm...