Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte der relationalen MySQL-Datenbank MariaDB-Serverinstallation der MySQL-Reihe MySQL Series II-Konfiguration für mehrere Instanzen MySQL Serie 3 Grundlagen MySQL Serie 4 SQL-Syntax MySQL-Serie fünf Ansichten, gespeicherte Funktionen, gespeicherte Prozeduren, Trigger MySQL Series 6-Benutzer und Autorisierung MySQL Series 7 MySQL-Speicher-Engine MySQL Serie 8 MySQL Server-Variablen MySQL-Serie 9 MySQL-Abfrage-Cache und -Index MySQL Series 10 MySQL-Transaktionsisolierung zur Implementierung der Parallelitätskontrolle MySQL Series 11-Protokollierung MySQL Serie 12 Backup und Wiederherstellung MySQL Serie 13 MySQL-Replikation MySQL Serie 14 MySQL Hochverfügbarkeitsimplementierung MySQL-Serie 15: Allgemeine MySQL-Konfiguration und Leistungsstresstest 1. SQL-Befehlsverlauf ~/.mysql_history zeichnet den in MySQL ausgeführten Befehlsverlauf auf Transaktionsprotokoll Transaktionsprotokoll: Die transaktionale Speicher-Engine verwaltet und nutzt sich selbst Wenn eine Transaktion festgeschrieben, aber noch nicht auf der Festplatte gespeichert wurde, wird sie im Transaktionsprotokoll aufgezeichnet. Wenn das System zu diesem Zeitpunkt die Stromversorgung verliert, wird die festgeschriebene Transaktion automatisch wiederholt (Redo-Protokoll) und nach dem Neustart auf die Festplatte geschrieben. Wenn die Transaktion nicht festgeschrieben wurde, wird der Rückgängig-Vorgang (Rückgängig-Protokoll) nach dem Stromausfall und Neustart ausgeführt.
Zugehörige Variablen
MariaDB [Schule]> VARIABLEN WIE 'innodb_log%' ANZEIGEN;
+-----------------------------+---------+
| Variablenname | Wert |
+-----------------------------+---------+
| innodb_log_block_size | 512 | -- Blockgröße | innodb_log_buffer_size | 8388608 | -- Cachegröße | innodb_log_file_size | 1073741824 | -- Größe jeder Protokolldatei | innodb_log_files_in_group | 3 | -- Anzahl der Protokollgruppenmitglieder, d. h. wie viele Dateien | innodb_log_group_home_dir | ./ | -- Transaktionsdateipfad relativ zum Datenverzeichnis +---------------------------+------------+ Der Standardwert von innodb_log_file_size beträgt 5 M und der Standardwert von innodb_log_files_in_group beträgt 2. Es wird dringend empfohlen, diese beiden Werte zu erhöhen. Wenn die Daten des Transaktionsvorgangs größer sind als die Gesamtgröße der Transaktionsprotokolldatei, kann beim Ausführen von ROLLBACK Folgendes rückgängig gemacht werden: Die Ausführung kann zwar rückgängig gemacht werden, die Datendatei wird jedoch belegt und der Befehl OPTIMIZE TABLE muss verwendet werden, um Datenspeicherplatz freizugeben. Durch das Löschen von Tabellendatensätzen mit TRUNCATE kann der belegte Speicherplatz reduziert werden. Der Befehl DELETE gibt keinen Speicherplatz frei. Wenn Sie Speicherplatz freigeben müssen, müssen Sie den Befehl OPTIMIZE verwenden, um durch Defragmentieren Speicherplatz freizugeben.
Hinweis: Wenn Sie innodb_log_file_size ändern, müssen Sie zuerst die ursprüngliche Protokolldatei löschen. 3. Fehlerprotokoll Im Fehlerprotokoll wird Folgendes aufgezeichnet: - Ausgabe von Ereignisinformationen beim Starten und Herunterfahren von mysqld
- Während des mysqld-Vorgangs generierte Fehlermeldungen
- Protokollinformationen, die generiert werden, wenn der Ereignisplaner ein Ereignis ausführt
- Beim Starten eines Slave-Threads auf einem Slave in einer Master-Slave-Replikationsarchitektur wird eine Meldung generiert
Zugehörige Variablen
MariaDB [Schule]> GLOBALE VARIABLEN WIE 'log_error' ANZEIGEN; #Pfad der Fehlerprotokolldatei+---------------+-------------------------------+
| Variablenname | Wert |
+-----------------+------------------------------+
| log_fehler | /var/log/mariadb/mariadb.log |
+-----------------+-------------------------------+ log_warnings=1|0 0Standardwert 1 (ja): Ob Warninformationen in die Fehlerprotokolldatei protokolliert werden sollen 4. Abfrageprotokoll Protokolliert Benutzeroperationsprotokolle. Es wird im Allgemeinen nicht empfohlen,
MariaDB [Schule]> VARIABLEN WIE 'general_log%' ANZEIGEN;
+------------------+-------------+
| Variablenname | Wert |
+------------------+-------------+
| general_log | OFF | – Allgemeines Protokoll ein- und ausschalten, standardmäßig deaktiviert | general_log_file | centos7.log | – Dateiname der allgemeinen Protokolldatei, /var/lib/mysql/HOSTNAME.log
+------------------+-------------+
MariaDB [Schule]> VARIABLEN WIE 'log_output' ANZEIGEN;
+---------------+-------+
| Variablenname | Wert |
+---------------+-------+
| log_output | DATEI | -- So speichern Sie Protokolle (TABELLE|DATEI|KEINE)
+---------------+-------+ mysql.general_log: Die Tabelle speichert Abfrageprotokolle, sofern diese in einer Tabelle gespeichert sind
5. Langsames Abfrageprotokoll Zeichnet Vorgänge auf, deren Ausführung von Abfragen länger als die angegebene Zeit dauert. 1. Langsame abfragebezogene Variablen
MariaDB [Schule]> VARIABLEN WIE 'slow_query%' ANZEIGEN;
+---------------------+------------------+
| Variablenname | Wert |
+---------------------+------------------+
| slow_query_log | OFF | -- Aktivieren oder deaktivieren Sie das Protokoll für langsame Abfragen | slow_query_log_file | centos7-slow.log | -- Protokolldatei für langsame Abfragen+---------------------+------------------+
MariaDB [Schule]> VARIABLEN WIE 'long_query_time' ANZEIGEN;
+-----------------+------------+
| Variablenname | Wert |
+-----------------+------------+
| long_query_time | 10.000000 | -- Der Schwellenwert für langsame Abfragen in Sekunden. Wenn die Abfragezeit 10 überschreitet, wird dies im Protokoll für langsame Abfragen aufgezeichnet. +-----------------+-----------+
MariaDB [Schule]> VARIABLEN WIE 'log_slow%' ANZEIGEN;
+---------------------+--------+
| Variablenname | Wert |
+---------------------+--------+
| log_slow_rate_limit | 1 | -- Wie viele Abfragen werden protokolliert? MariaDB-spezifisch | log_slow_verbosity | | -- Der Detaillierungsgrad des protokollierten Inhalts (Query_plan, Explain)
+---------------------+--------+
MariaDB [Schule]> VARIABLEN WIE 'log_queries_not_using_indexes' ANZEIGEN;
+-------------------------------+----------+
| Variablenname | Wert |
+-------------------------------+----------+
| log_queries_not_using_indexes | OFF | -- Protokollanweisungen, die keine Indexabfragen, sondern Volltextscans verwenden; standardmäßig deaktiviert, Aktivierung empfohlen +-------------------------------+----------+ log_slow_filter : Filter basierend auf Abfrageergebnissen - Administrator
- Dateisortierung
- Dateisortierung auf der Festplatte
- Vollständig beitreten
- Vollscan
- Abfrage-Cache
- query_cache_miss
- temporäre Tabelle
- temporäre_Tabelle_auf_der_Festplatte
2. Ergänzung: Verwenden Sie profiling , um die von Abfrageanweisungen verbrauchte Zeit detailliert zu verfolgen
MariaDB [Schule]> VARIABLEN WIE „Profiling“ ANZEIGEN;
+---------------+-------+
| Variablenname | Wert |
+---------------+-------+
| Profilerstellung | AUS | -- Aktivieren oder deaktivieren, standardmäßig deaktiviert+---------------+---------+
MariaDB [Schule]> SET Profiling=ON; #Aktivieren Sie die Funktion zur Verfolgung von Abfrageanweisungen. MariaDB [Schule]> SHOW Profiles; #Zeitliste der Ausführung von Abfrageanweisungen+----------+------------+---------------------------------------------------------+
| Abfrage-ID | Dauer | Abfrage |
+----------+------------+---------------------------------------------------------+
| 1 | 0,00024497 | AUSWÄHLEN * VON Studenten |
| 2 | 0,00038528 | SELECT stuid,name,age FROM students WHERE stuid = 2 |
+----------+------------+---------------------------------------------------------+
MariaDB [Schule]> SHOW-Profil für Abfrage 2; #Frage den detaillierten Ausführungsprozess der SQL-Anweisung mit der angegebenen Nummer ab+----------------------+----------+
| Status | Dauer |
+----------------------+----------+
| beginnt | 0,000035 |
| Eröffnungstabellen | 0,000003 |
| Nach dem Öffnen der Tabellen | 0,000006 |
| Abfrageende | 0,000003 |
| Tabellen schließen | 0,000002 |
| Elemente freigeben | 0,000011 |
| Status wird aktualisiert | 0,000006 |
| aufräumen | 0,000001 |
+----------------------+----------+ 6. Binäres Protokoll Zeichnet SQL-Anweisungen auf, die Datenänderungen verursacht haben oder möglicherweise Datenänderungen in festgeschriebenen Transaktionen verursacht haben, und generiert Datenkopien durch „Wiedergeben“ von Ereignissen in Protokolldateien, unabhängig vom Typ der Speicher-Engine. Binäres Logging aktivieren. Es ist standardmäßig deaktiviert. Binäres Logging und Daten werden getrennt gespeichert.
Aktivieren Sie die Funktion zum Protokollieren von Binärdateien : Fügen Sie og_bin[=/path/somefile] unter [mysqld] in my.cnf hinzu Das Standard-Binärprotokoll befindet sich im Datenbankverzeichnis. mariadb-bin.000001 ist die Binärprotokolldatendatei mariadb-bin.index ist die Binärprotokollindexdatei. 1. Drei Möglichkeiten zum Aufzeichnen von Binärprotokollen:- Basierend auf der Methode zur Aufzeichnung von Anweisungen wird jede Anweisung, die Daten ändert, als Anweisung aufgezeichnet, um Platz zu sparen. Das System verwendet standardmäßig diesen Modus, es wird jedoch nicht empfohlen, ihn zu verwenden, da versteckte Risiken bestehen.
- Basierend auf der Zeilenaufzeichnungsmethode wird bei jeder Änderung einer Zeile die Anweisung, die sie ändert, als Anweisung aufgezeichnet. Das Protokollvolumen ist groß, aber der Sicherheitsschutz der Daten ist sehr hoch.
- Gemischter Modus: gemischt, das System entscheidet, welche Methode verwendet werden soll
MariaDB [(keine)]> VARIABLEN WIE 'binlog_format' ANZEIGEN;
+---------------+-----------+
| Variablenname | Wert |
+---------------+-----------+
| binlog_format | STATEMENT | -- Protokollierungsmodus, das System verwendet standardmäßig den anweisungsbasierten Modus+---------------+-----------+
SET binlog_format='ROW|STATEMENT|MIXED'; -- Ändern Sie den Aufzeichnungsmodus des Binärprotokolls 2. Mit dem Binärprotokoll verbundene Variablen
MariaDB [(keine)]> SHOW MASTER|BINARY LOGS; -- Liste der von MariaDB verwalteten Binärprotokolldateien anzeigen. +--------------------+-----------+
| Protokollname | Dateigröße |
+--------------------+-----------+
| mariadb-bin.000002 | 290 |
| mariadb-bin.000003 | 264 |
| mariadb-bin.000004 | 529038 |
| mariadb-bin.000005 | 245 |
+--------------------+-----------+
MariaDB [(keine)]> SHOW MASTER STATUS; -- Die verwendeten Binärprotokolldateien anzeigen +--------------------+----------+--------------+------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000005 | 245 | | |
+--------------------+----------+--------------+------------------+
MariaDB [(keine)]> SHOW BINLOG EVENTS IN 'mariadb-bin.000004' FROM 1 LIMIT 2,3\G -- Den angegebenen Inhalt in der Binärdatei anzeigen
MariaDB [(keine)]> VARIABLEN ANZEIGEN WIE 'sql_log_bin'; -- Gibt an, ob Binärprotokolle aufgezeichnet werden sollen. Die Standardeinstellung ist EIN.
MariaDB [(keine)]> SHOW VARIABLES LIKE 'log_bin'; --Geben Sie den Dateispeicherort an; der Standardwert ist OFF, was bedeutet, dass die Binärprotokollfunktion nicht aktiviert ist. Beide der oben genannten Elemente müssen aktiviert sein. MariaDB [(keine)]> SHOW VARIABLES LIKE 'max_binlog_size';
+-----------------+------------+
| Variablenname | Wert |
+-----------------+------------+
| max_binlog_size | 1073741824 | -- Die maximale Größe einer einzelnen binären Protokolldatei. Wenn der Maximalwert erreicht ist, wird er automatisch erhöht. Der Standardwert ist 1 GB
+-----------------+------------+
MariaDB [(keine)]> VARIABLEN WIE 'sync_binlog' ANZEIGEN;
+---------------+-------+
| Variablenname | Wert |
+---------------+-------+
| sync_binlog | 0 | -- Legen Sie fest, ob die Funktion zur sofortigen Synchronisierung des Binärprotokolls auf der Festplatte aktiviert werden soll. Der Standardwert ist 0. Das Betriebssystem ist für die Synchronisierung des Protokolls mit der Festplatte verantwortlich. +---------------+----------+
MariaDB [(keine)]> VARIABLEN WIE 'expire_logs_days' ANZEIGEN;
+------------------+--------+
| Variablenname | Wert |
+------------------+--------+
| expire_logs_days | 0 | – Anzahl der Tage, nach denen Binärprotokolle automatisch gelöscht werden können. Der Standardwert ist 0, was bedeutet, dass keine automatische Löschung erfolgt. +-------+--------+ 3.mysqlbinlog-Befehl- Client-Befehlstool für Binärprotokoll
- --start-position=# Startposition angeben
- --stop-position=# Geben Sie die Endposition an
- --start-datetime=(JJJJ-MM-TT hh:mm:ss) gibt die Startzeit an
- --stop-datetime=(JJJJ-MM-TT hh:mm:ss) gibt die Endzeit an
- --base64-output=Zeile dekodieren
- -v |-vv |-vvv |-vvvv detaillierte Informationen anzeigen
[root@centos7 mysql]# mysqlbinlog --start-position=528864 --stop-position=529019 mariadb-bin.000004 --base64-output=decode-row -v
# bei 528864
#180611 20:59:46 Server-ID 1 end_log_pos 528992 Abfrage Thread_ID=29 exec_time=0 error_code=0
benutze „Schule“/*!*/;
ZEITSTEMPEL FESTLEGEN=1528721986/*!*/;
INSERT students(StuID,Name,Age,Gender) VALUES (26,'Tom',22,'M') #SQL-Anweisung zum Ändern der Daten /*!*/;
Datum und Uhrzeit des Vorfalls: 180611 20:59:46
Die Server-ID, auf der das Ereignis aufgetreten ist: Server-ID 1
Endposition des Ereignisses: end_log_pos 528992
Ereignistyp: Abfrage
Die ID des Threads, der dieses Ereignis auf dem Server ausgeführt hat, als das Ereignis auftrat: thread_id=29
Die Differenz zwischen dem Zeitstempel der Anweisung und dem Zeitpunkt, zu dem sie in die Binärdatei geschrieben wurde: exec_time=0
Fehlercode: error_code=0
Veranstaltungsinhalt:
GTID: Global Transaction ID, ein eindeutiges Attribut von MySQL 5.6 und MariaDB 10 oder höher: GTID Verwenden Sie mysqlbinlog mariadb-bin.000001 > file.sql um zur SQL-Datei umzuleiten, und verwenden Sie dann mysql -uroot -p < file.sql um die Daten direkt zu importieren und die Sicherungs- und Wiederherstellungsfunktion zu realisieren 4. Binäres Protokollmanagement
MariaDB [(keine)]> BINÄRPROTOKOLLE LÖSCHEN NACH „mariadb.000002“; – Löschen bis 02, Hinweis: 02 wird nicht gelöscht. MariaDB [(keine)]> BINÄRPROTOKOLLE LÖSCHEN VOR „2018-01-23“; – Protokolle vor dem 2018-01-23 löschen. MariaDB [(keine)]> BINÄRPROTOKOLLE LÖSCHEN VOR „2017-03-22 09:25:30“;
MariaDB [(keine)]> RESET MASTER; -- Alle Binärprotokolle löschen und Indexdateien zurücksetzen. MariaDB [(keine)]> FLUSH LOGS; -- Protokoll-Rolling manuell auslösen 7. Relais-Protokoll relay log : In einer Master-Slave-Replikationsarchitektur wird der Slave-Server zum Speichern von Ereignissen verwendet, die aus dem Binärprotokoll des Master-Servers gelesen werden. Zusammenfassen Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können! Das könnte Sie auch interessieren:- So aktivieren Sie die Protokollierung langsamer Abfragen in MySQL
- mysql langsame Abfrage aktivieren So aktivieren Sie die Protokollierung langsamer MySQL-Abfragen
- MySQL-Protokolleinstellungen und Anzeigemethoden
- Details zur MySQL-Protokolldatei
|