


Ausführliche Erläuterung der Probleme im Zusammenhang mit dem MySQL-Binärprotokoll
Quelle dieses Artikels:
(Die Beibehaltung der Quelle stellt keinen Anspruch auf Originalarbeit dar. Meine bescheidene Arbeit ist weit davon entfernt. Es dient nur dazu, auf den Originaltext zu verlinken, da einige Fehler vorliegen Das kann später korrigiert werden Wenn der Testserver sein Testskript zum Schreiben von Daten ausführt, lautet die Fehlermeldung wie folgt:
Nachdem die Größe von binlog_cache_size geändert wurde, wurde das Problem gelöst.
Da die Standard-Innodb-Engine verwendet wird, ist das Binärprotokoll aktiviert.
Wenn ein Ding gestartet wird, wird der Inhaltsspeicherplatz entsprechend dem durch die Systemvariable binlog_cache_size angegebenen Wert zugewiesen. Wenn der angegebene Cachespeicherplatz binlog_cache_size nicht ausreicht, wird der ausgeführte Transaktionsvorgang zurückgesetzt und eine Fehlermeldung angezeigt .
Übrigens fassen wir das Binärprotokoll und die zugehörigen Parameterinformationen zusammen
Was ist ein Binärprotokoll?Wird zum Aufzeichnen von Schreibvorgängen (Hinzufügungen, Löschungen, Änderungen, aber ausgenommen Abfragen) in der MySQL-Datenbank verwendet, was der Transaktionsprotokolldatei im vollständigen Wiederherstellungsmodus in SQL Server entspricht.
Welche Rolle spielt das Binärprotokoll? 1. Wird für die Replikation verwendet. Wenn die Master-Slave-Replikation konfiguriert ist, sendet der Master-Server das von ihm generierte Binärprotokoll an die Slave-Seite. Die Slave-Seite verwendet die Informationen in diesem Binärprotokoll, um es lokal zu wiederholen, um den Master zu erreichen -Slave-Synchronisation
2. Benutzerwiederherstellung: MySQL kann Binärprotokolle verwenden, um Wiederherstellungsvorgänge basierend auf Zeitpunkten oder Transaktions-IDs basierend auf Vollsicherung und Differenzsicherung durchzuführen. Das Prinzip ähnelt dem Log-Redo der Master-Slave-Replikation.
Zugehörige Parameterinformationen des Binärprotokolls
Um das Binärprotokoll zu aktivieren, müssen Sie einen Pfad zum Log-Bin-Parameter angeben. Beispiel: log_bin=/var/lib/mysql/mysql-bin
Nach dem Starten des Binärprotokolls wird automatisch eine log_bin_index-Datei generiert, die das Binärprotokoll verwaltet. Die Option log_bin wird auch als „on“ angezeigt, was bedeutet, dass das Binärprotokoll aktiviert ist.
2. Das Format der Binärprotokolldatei
Das Format des Binärprotokolls wird durch den Parameter binlog_format gesteuert Das Binärprotokoll verfügt über drei Modi: Anweisung (Anweisung), zeilenbasiert (Zeile) und gemischter Modus (gemischt), der die ersten beiden kombiniert.
Die anweisungsbasierte Binärfunktion weist (meiner Meinung nach) einige Mängel auf, z Als aktuelle Verwendung derselben Update-Anweisung erhält der Now-Update-Vorgang auch die aktuelle Zeit auf dem Master-Server und dem Slave-Server. Die durch die Master-Slave-Replikation erzielten Ergebnisse sind unterschiedlich.Der zeilenbasierte Binärprotokollmodus behebt einige der Mängel des anweisungsbasierten Modus, in einigen Fällen wird jedoch eine große Anzahl von Protokollen generiert. Beispielsweise aktualisiert ein Aktualisierungsvorgang 1 Million Datenzeilen Zeilenbasiertes Binärprotokoll, das Ergebnis ist 1 Million Protokolle
Basierend auf dem Hybridmodus, der die Vorteile der beiden oben genannten Methoden kombiniert. Kann in der Konfigurationsdatei eingestellt werden: binlog_format = MIXED
3, binäre Protokollaufzeichnungszeitpunkt
Binäre Protokollaufzeichnung Es kann synchron sein, das heißt, die Transaktion wird nach der Übermittlung in das Binärprotokoll geschrieben, oder es kann asynchron sein, wobei der Festplatten-Cache des Betriebssystems bestimmt, wann auf die Festplatte geschrieben wird.
Es wird durch den Parameter sync_binlog= n gesteuert. Wenn sync_binlog = 1 festgelegt ist, bedeutet dies die höchste Sicherheitsstufe des Schreibens (es gibt jedoch keine Garantie dafür, dass keine Transaktionsprotokolle verloren gehen). Modus, aber es hat einen gewissen Einfluss auf die Leistung.Persönlich denke ich, dass es keinen Grund gibt, sync_binlog nicht auf 1 zu setzen, wenn es sich um eine Transaktions-Engine handelt.
Es heißt, dass durch das Setzen von sync_binlog auf 1 möglicherweise auch ein Transaktionsprotokoll verloren geht, aber ich habe nicht herausgefunden, warum es verloren geht, denn da es sich um eine Transaktions-Engine handelt, gibt es auch eine Ebene von Undo- oder Redo-Protokollen um es zu sichern?
Denken Sie später darüber nach. Aufgrund der Existenz von Redo- und Undo-Protokollen kann die Konsistenz der Dinge auf dem Master-Server gewährleistet werden. Es sollte sein, dass während der Master-Slave-Replikation etwas verloren gehen kann nicht an den Slave-Server übermittelt werden.
4, die Größe einer einzelnen Datei des Binärprotokolls
Die Größe des Binärprotokolls ist die maximale Grenze von Eine einzelne Protokolldatei, unter normalen Umständen wird die festgelegte maximale Dateigröße nicht überschritten. Nach Überschreiten der festgelegten Höchstgrenze erfolgt ein Protokollwechsel, d. h. es wird eine binäre Protokolldatei neu generiert.
max_binlog_size = 100M
Die hier gezeigte Einheit von 104857600 ist Bytes, d , Bereinigung des Binärprotokolls
Nachdem das Binärprotokoll gerollt wurde, wird eine neue Datei zum Speichern des Protokolls generiert. Die Protokolldatei wird nach Ablauf automatisch gelöscht, andernfalls wird ein stetiger Strom von Protokolldateien generiert Sie können beispielsweise die Ablaufzeit auf 2 setzen. Der konfigurierbare Wert ist: Expire_logs_days = 2. Binärprotokolle, die älter als zwei Tage sind, werden automatisch gelöscht.
6, Scrollen der binären Protokolldateien
1) Unter normalen Umständen wird der Datensatz automatisch gescrollt, nachdem er voll ist, und der Suffixname lautet +1 2) Nach dem Neustart des MySQL-Dienstes wird automatisch gescrollt, unabhängig davon, ob die Protokolldatei vorhanden ist ist entsprechend der angegebenen maximalen Kapazität voll
4) Löschen Sie das Binärprotokoll manuell
Sie können den Befehl
Löschen Sie die angegebenen Binärprotokolle löschen Protokolle vor date_sub( now( ), Intervall 7 Tage); Xiaoxiang Master löscht Master-Protokolle vor date_sub( now( ), Intervall 7 Tage), sollte es eine Auswirkung haben (binäre und Master-Schlüsselwörter)?
7. Datenbanken für Binärprotokolle binden (oder ausschließen)
# binlog_do_db: Wird beim Festlegen von Master-Slave verwendet;
# binlog-ignore-db: Legen Sie fest, welche Datenbank keine Protokolle aufzeichnet.
8. Binärprotokoll-Cache und Cache-Größenkonfiguration
Die Einheit des Der hier angezeigte Datensatz besteht ebenfalls aus Bytes, geteilt durch 1024. Dies ist die Kapazität in MB. 20971520/1024/1024 entspricht hier 20 MB. Bei großen Transaktionsvorgängen, z. B. beim Testen, muss der Cache auf eine relativ große Größe eingestellt werden, sonst kann die Anweisung nicht erfolgreich ausgeführt werden
Der Unterschied Der Unterschied zwischen max_binlog_cache_size und binlog_cache_size besteht darin, dass ersterer ein Cache auf Instanzebene und letzterer ein Cache auf Sitzungsebene ist. Wenn die Parallelität groß ist, müssen Sie erwägen, max_binlog_cache_size etwas größer einzustellen.
Die Standardgröße für max_binlog_cache_size beträgt 4 GB, und der Maximalwert beträgt hier zum Testen 100 MB (104857600/1024,0/1024,0)
Die von max_binlog_cache_size festgelegte maximale Speichergröße beträgt 4 GB. Wenn der Serverinhalt groß ist, z. B. 128 GB oder mehr, kann es nicht schaden, max_binlog_cache_size standardmäßig auf das Maximum zu setzen, da dies für ein erfolgreiches gleichzeitiges Schreiben erforderlich ist.
Was die binlog_cache_size auf Sitzungsebene betrifft, können Sie sie an die Geschäftssituation anpassen. Ich persönlich bin der Meinung, dass es kein großes Problem darstellt, zusätzlich zu normalen OLTP-Vorgängen einige Daten zu verwenden Durch das Extrahieren oder Zusammenführen von Daten wie geplante Jobs können große Mengen an Protokollen generiert werden.
Es wird gesagt, dass Sie anhand von binlog_cache_disk_use und binlog_cache_use beurteilen können, ob binlog_cache_size angepasst werden muss.
Aber dieser Parameter wurde in MySQL5.7.18 nicht gefunden
9, andere Parameter des Binärprotokolls
max_binlog_stmt_cache_size ist Für nicht-transaktionale Anweisungen sind nicht-transaktionale Parameter im Moment nicht von Belang.
Ich erinnere mich, dass ich einmal einen Meister sagen sah, dass der Vorteil der Innodb-Engine nicht nur in der Transaktionsunterstützung im Vergleich zur nicht-transaktionalen Myisam-Engine liegt , lesen Die Leistungslücke wird immer kleiner, daher legt MySQL innodb als Standard-Engine fest.
Myisam aufzugeben und zu innodb zu gehen, ist der richtige Weg.
binlog_checksum wird als Master-Slave-Prüfsumme für die Replikation verwendet. Ich habe diesen Parameter noch nicht untersucht, daher werde ich ihn nicht allein lassen
Weitere Informationen finden Sie im Artikel von Xiangxiangshen.
Zusammenfassung:
Das MySQL-Binärprotokoll dient nicht nur der Funktionalität (Master-Slave-Replikation), sondern auch der Sicherheit (Binärprotokoll). ) und Transaktionsvorgänge, wenn das Binärprotokoll aktiviert ist, sodass es als wesentliche Konfiguration für eine Produktionsumgebung angesehen werden kann.
Gleichzeitig wirken sich seine verschiedenen Parameter auf bestimmte Vorgänge aus. Daher sollte den Parametern des Binärprotokolls besondere Aufmerksamkeit gewidmet werden, um sicherzustellen, dass die Funktionalität und Verfügbarkeit der Datenbank bei der Verwendung gewährleistet ist.
Referenz:
„Smear MySQL“
Und verschiedene Daumenkinos, Online-Materialien
Nehmen Handeln kann Ihre Denkmuster und Ängste verändern.
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Probleme im Zusammenhang mit dem MySQL-Binärprotokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Das Erstellen einer SQL -Datenbank umfasst 10 Schritte: Auswählen von DBMs; Installation von DBMs; Erstellen einer Datenbank; Erstellen einer Tabelle; Daten einfügen; Daten abrufen; Daten aktualisieren; Daten löschen; Benutzer verwalten; Sichern der Datenbank.
