So unterscheiden Sie MySQLs innodb_flush_log_at_trx_commit und sync_binlog

So unterscheiden Sie MySQLs innodb_flush_log_at_trx_commit und sync_binlog

Die beiden Parameter innodb_flush_log_at_trx_commit und sync_binlog sind Schlüsselparameter zur Steuerung der MySQL-Festplattenschreibstrategie und Datensicherheit.

Variablen wie „innodb_flush_log_at_trx_commit“ anzeigen;

innodb_flush_log_at_trx_commit:

0: Der Hauptthread von MySQL schreibt das Redo-Protokoll jede Sekunde im Protokollpuffer der Speicher-Engine in die Protokolldatei und ruft den Synchronisierungsvorgang des Dateisystems auf, um das Protokoll auf der Festplatte zu aktualisieren.

1: Bei jedem Festschreiben einer Transaktion wird das Redo-Protokoll im Protokollpuffer der Speicher-Engine in die Protokolldatei geschrieben und der Synchronisierungsvorgang des Dateisystems wird aufgerufen, um das Protokoll auf der Festplatte zu aktualisieren.

2: Bei jedem Festschreiben einer Transaktion wird das Redo-Protokoll im Protokollpuffer der Speicher-Engine in die Protokolldatei geschrieben und der Haupt-Thread der Speicher-Engine schreibt das Protokoll jede Sekunde auf die Festplatte.

Variablen wie „sync_binlog“ anzeigen;

sync_binlog:

0: Die Speicher-Engine schreibt das Binärprotokoll nicht auf die Festplatte und das Dateisystem des Betriebssystems steuert die Cache-Leerung.

1: Bei jeder Übermittlung einer Transaktion ruft die Speicher-Engine den Synchronisierungsvorgang des Dateisystems auf, um den Cache zu aktualisieren. Diese Methode ist die sicherste, weist aber eine geringere Leistung auf.

n: Wenn die übermittelte Protokollgruppe = n ist, ruft die Speicher-Engine den Synchronisierungsvorgang des Dateisystems auf, um den Cache zu aktualisieren.

sync_binlog=0 oder sync_binlog ist größer als 1, die Transaktion wurde festgeschrieben, aber noch nicht mit der Festplatte synchronisiert. Daher ist es im Falle eines Stromausfalls oder Betriebssystemabsturzes möglich, dass der Server einige Transaktionen festgeschrieben hat, die noch nicht mit dem Binärprotokoll synchronisiert wurden. Daher ist es nicht möglich, diese Transaktionen routinemäßig wiederherzustellen, da sie im Binärprotokoll verloren gehen würden.

Am sichersten ist es, wenn sowohl innodb_flush_log_at_trx_commit als auch sync_binlog 1 sind. Im Falle eines Absturzes des MySQLD-Dienstes oder des Serverhosts kann im Binärprotokoll höchstens eine Anweisung oder eine Transaktion verloren gehen. Allerdings kann man nicht alles haben und gleichzeitig essen. Doppelt 1, 1 führt zu häufigen IO-Operationen, daher ist dieser Modus auch der langsamste Weg.

Bei der tatsächlichen Verwendung müssen die geschäftlichen Anforderungen an Leistung und Sicherheit berücksichtigt und die Einstellungen der beiden Parameter umfassend bedacht werden. Das obige Bild zeigt die Parameter unserer Online-Maschine.

Oben finden Sie Einzelheiten zur Unterscheidung von MySQLs innodb_flush_log_at_trx_commit und sync_binlog. Weitere Informationen zu MySQLs innodb_flush_log_at_trx_commit und sync_binlog finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Zusammenfassung der MySQL InnoDB-Architektur
  • Eine kurze Einführung in MySQL InnoDB ReplicaSet
  • Detaillierte Erläuterung der Speicherverwaltung der MySQL InnoDB-Speicher-Engine
  • Hauptfunktionen von MySQL Innodb: Einfügepuffer
  • Zusammenfassung der MySQL InnoDB-Sperren
  • Detailliertes Beispiel des MySQL InnoDB-Sperrmechanismus
  • Ausführliche Erläuterung der InnoDB-Sperren in der MySQL-Technologie
  • Ändern Sie die MySQL-Datenbank-Engine in InnoDB
  • Beschreiben Sie kurz die MySQL InnoDB-Speicher-Engine
  • Ausführliche Erläuterung zum Beispiel der MySQL InnoDB-Tablespace-Verschlüsselung
  • MySQL InnoDB-Quellcodeanalyse für Transaktionssperren

<<:  Detaillierte Analyse der Unterschiede zwischen break und last in Nginx

>>:  HTML-Hyperlinks im Detail erklärt

Artikel empfehlen

Detaillierte Erklärung des Parameters slave_exec_mode in MySQL

Heute habe ich zufällig den Parameter slave_exec_...

Implementierung einer Fuzzy-Abfrage wie %% in MySQL

1, %, steht für beliebige 0 oder mehr Zeichen. Es...

HTML-Sprachenzyklopädie

123WORDPRESS.COM--HTML超文本标记语言速查手册<!-- --> !D...

Vue Grundlagen Listener Detaillierte Erklärung

Inhaltsverzeichnis Was ist ein Listener in Vue? V...

HTML-Tabellen-Markup-Tutorial (43): VALIGN-Attribut der Tabellenüberschrift

In vertikaler Richtung können Sie die Ausrichtung...

Detaillierte Erklärung der Rolle des Schlüssels in React

Inhaltsverzeichnis Frage: Wird die Farbe des Bere...

Tutorial zur Installation von MySQL 5.7.18 auf Mac OS 10.12

Ich habe das ganze Internet durchsucht und bin au...

Lösung für den Fehler beim Starten von MySQL

Lösung für den Fehler beim Starten von MySQL MySQ...

Vue implementiert Countdown-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

8 Tipps für Vue, die Sie nach dem Lesen lernen werden

1. Verwenden Sie immer :key in v-for Die Verwendu...

Übersicht über die Zeitkonfiguration unter Linux-System

1. Zeitarten werden unterteilt in: 1. Netzwerkzei...

Docker-Bereitstellungs- und Installationsschritte für Jenkins

Zuerst benötigen wir einen Server mit installiert...