Heim Datenbank MySQL-Tutorial Binärprotokoll für MySQL-Betrieb und -Wartung

Binärprotokoll für MySQL-Betrieb und -Wartung

Jun 01, 2020 am 10:40 AM
mysql

Das MySQL-Binärprotokoll speichert SQL-Anweisungen, die Datenänderungen verursachen oder verursachen können. Funktionen wie Echtzeit-Remote-Disaster-Recovery-Backup, Lese-/Schreibtrennung und Datenwiederherstellung können über Binärprotokolle durchgeführt werden. Schauen wir uns als Nächstes das MySQL-Binärprotokoll an.

Bin-Log-Protokoll aktivieren

Mysql aktiviert das Bin-Log-Protokoll standardmäßig nicht, wir müssen die Konfiguration selbst hinzufügen.

log-bin=mysql-bin
binlog_format=mixed
server-id   = 1
expire_logs_days = 10
Nach dem Login kopieren

log-bin Nach der Konfiguration dieses Elements ist die Binärprotokollfunktion aktiviert. mysql-bin ist der Name der bin-log-Protokolldatei.

expire_logs_days = 10 gibt an, dass nur die Bin-Log-Protokolle der letzten 10 Tage gespeichert werden.

Im Allgemeinen werden Bin-Log-Protokolle unter dem MySQL-Installationspfad /var/ gespeichert.

Betriebs- und Wartungstipps: Es ist am besten, keine binären Protokolldateien und Datenbankdatendateien abzulegen Wenn die Festplatte, auf der die Datendateien gespeichert sind, defekt ist, können Sie das Binärprotokoll einer anderen Festplatte verwenden, um die Daten wiederherzustellen

Mehrere nützliche Befehle

  • Flush-Protokolle: Neue Bin-Log-Protokolle erstellen

  • Master-Status anzeigen: Den letzten Bin-Log-Protokollstatus anzeigen.

  • Master zurücksetzen: Alle Bin-Log-Dateien löschen

MySQL > Master-Status anzeigen

Binärprotokoll für MySQL-Betrieb und -Wartung

Mysql-Protokoll anzeigen

Da es sich bei dem Protokoll um ein Binärprotokoll handelt, führt die Anzeige mit dem allgemeinen Befehl cat oder vim zu verstümmeltem Code . . MySQL stellt uns das Tool mysqlbinlog zur Verfügung. Verwenden Sie es, um es anzuzeigen.

./mysqlbinlog ../var/mysql-bin.000015
……
# at 123
#200601  8:35:19 server id 1  end_log_pos 154 CRC32 0xd25b404e  Previous-GTIDs
# [empty]
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
……
Nach dem Login kopieren
  • at: POS-Knoten, wenn SQL startet

  • server_id: die Dienstnummer des Datenbankhosts

  • end_log_pos 154: POS-Knoten am Ende von SQL

Die allgemeinen Optionen von MySQL sind wie folgt:

  • --start-datetime : Lies die angegebene Zeit aus dem Binärprotokoll, die dem Zeitstempel des lokalen Computers entspricht oder später liegt

  • --stop-datetime: Lies die angegebene Zeit aus dem Binärprotokoll, die kleiner ist als der Zeitstempel oder gleich dem lokalen Computer. Der Zeitwert ist derselbe wie oben

  • --start-position: Lesen Sie die angegebene Positionsereignisposition aus dem Binärprotokoll als Start.

  • --stop-position: Lesen Sie die angegebene Positionsereignisposition aus dem Binärprotokoll als Ereignis ab

  • -d,-- Datenbank = Name: Nur Protokollvorgänge der angegebenen Datenbank anzeigen

Bin-Log-Protokolle verwenden, um Daten wiederherzustellen

  • SQL-Datei exportieren Befehl: mysqldump-Datenbankname [Datentabellenname 1 [Datentabellenname 2...]] > Externes Dateiverzeichnis (empfohlen die Verwendung von .sql)

  • SQL-Dateiimport Datenbank: mysql - u** -p** Datenbankname < Verzeichnis der Sicherungsdatei

Simulieren Sie nun ein Szenario: Eine Datenbank wird regelmäßig jede Nacht um 15 Uhr gesichert und Am nächsten Tag läuft die Website einen halben Tag lang normal. Plötzlich um 17 Uhr hat Programmierer A beim DELETE versehentlich keine WHERE-Bedingung hinzugefügt, und dann gingen alle Daten in einer der Tabellen verloren. Dann suchte Xiao A den technischen Direktor Dasheng auf und bat ihn, bei der Wiederherstellung der Daten zu helfen.

Die binlog_test-Datenbank hat nur eine Benutzertabelle

Die Daten vor der Sicherung um drei Uhr morgens lauten wie folgt:

+---------+----------+---------------------+
| user_id | username | add_time            |
+---------+----------+---------------------+
|       1 | gwx      | 2018-07-05 13:00:31 |
|       2 | snn      | 2018-07-05 14:00:00 |
|       3 | zy       | 2018-07-05 15:00:00 |
+---------+----------+---------------------+
Nach dem Login kopieren

Um 3 Uhr in am Morgen, die Sicherungsdaten

mysqldump binlog_test -l -F > /root/sql_backup/20180706.sql
ll /root/sql_backup/
总用量 4
-rw-r--r-- 1 root root 2149 7月   6 13:42 20180706.sql
=======数据备份完成=========
Nach dem Login kopieren

Die Website läuft seit einiger Zeit normal und viele Benutzer haben sich registriert

INSERT INTO `user` (username) values(&#39;user1&#39;),(&#39;user2&#39;),(&#39;user3&#39;);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0
select * from user;
+---------+----------+---------------------+
| user_id | username | add_time            |
+---------+----------+---------------------+
|       1 | gwx      | 2018-07-05 13:00:31 |
|       2 | snn      | 2018-07-05 14:00:00 |
|       3 | zy       | 2018-07-05 15:00:00 |
|       4 | user1    | 2018-07-06 15:01:18 |
|       5 | user2    | 2018-07-06 15:01:18 |
|       6 | user3    | 2018-07-06 15:01:18 |
+---------+----------+---------------------+
==============新增了3个用户user1 user2 及user3==============
Nach dem Login kopieren

Um 17 Uhr nachmittags begann Little A, sich dumm zu benehmen

DELETE FROM user;
Query OK, 6 rows affected (0.00 sec)
=========没where条件,数据全没了===========
Nach dem Login kopieren

Der kleine A fand den Großen Weisen, um bei der Wiederherstellung der Daten zu helfen, und der Große Weise stellte zuerst die Daten von gestern wieder her. Die Daten wurden um 3 Uhr morgens wiederhergestellt.

service nginx stop;  # 大圣先关闭了nginx,使网站用户暂时访问不了数据库
Stoping nginx...  done 
MariaDB [binlog_test]> flush logs;  #生成新的binlog日志
MariaDB [binlog_test]> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |     1536 |              |                  |
+------------------+----------+--------------+------------------+
mysql -v -f binlog_test < /root/sql_backup/20180706.sql
Nach dem Login kopieren

Zu diesem Zeitpunkt war der Große Weise wiederhergestellt die Daten um 3 Uhr morgens letzte Nacht

MariaDB [binlog_test]> select * from user;
+---------+----------+---------------------+
| user_id | username | add_time            |
+---------+----------+---------------------+
|       1 | gwx      | 2018-07-05 13:00:31 |
|       2 | snn      | 2018-07-05 14:00:00 |
|       3 | zy       | 2018-07-05 15:00:00 |
+---------+----------+---------------------+
=============昨晚凌晨三点数据恢复完成===============
Nach dem Login kopieren

Als nächstes wurden die Daten zwischen 3 Uhr morgens und DELETE wiederhergestellt

Suchen Sie zuerst den POS-Punkt zum Löschen. Nach der Sicherung lautet das Protokoll 000002. Nach dem Löschen. Flush-Protokolle sind ebenfalls 000003, also suchen Sie einfach den POS-Punkt vor 000002 und löschen Sie ihn.

# /usr/local/mariadb/bin/mysqlbinlog --stop-position=629  >
&#39;mysql-bin.000002&#39; >
| mysql binlog_test;

MariaDB [binlog_test]> select * from user;
+---------+----------+---------------------+
| user_id | username | add_time            |
+---------+----------+---------------------+
|       1 | gwx      | 2018-07-05 13:00:31 |
|       2 | snn      | 2018-07-05 14:00:00 |
|       3 | zy       | 2018-07-05 15:00:00 |
|       4 | user1    | 2018-07-06 15:01:18 |
|       5 | user2    | 2018-07-06 15:01:18 |
|       6 | user3    | 2018-07-06 15:01:18 |
+---------+----------+---------------------+
==============数据都回来了========================
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBinärprotokoll für MySQL-Betrieb und -Wartung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

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: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

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.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

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.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

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

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

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.

So stellen Sie eine Verbindung zur Datenbank von Apache her So stellen Sie eine Verbindung zur Datenbank von Apache her Apr 13, 2025 pm 01:03 PM

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Apr 10, 2025 pm 01:36 PM

Eine effektive Überwachung von Redis -Datenbanken ist entscheidend für die Aufrechterhaltung einer optimalen Leistung, die Identifizierung potenzieller Engpässe und die Gewährleistung der Zuverlässigkeit des Gesamtsystems. Redis Exporteur Service ist ein leistungsstarkes Dienstprogramm zur Überwachung von Redis -Datenbanken mithilfe von Prometheus. In diesem Tutorial führt Sie die vollständige Setup und Konfiguration des Redis -Exporteur -Dienstes, um sicherzustellen, dass Sie nahtlos Überwachungslösungen erstellen. Durch das Studium dieses Tutorials erhalten Sie voll funktionsfähige Überwachungseinstellungen

So sehen Sie sich den SQL -Datenbankfehler an So sehen Sie sich den SQL -Datenbankfehler an Apr 10, 2025 pm 12:09 PM

Die Methoden zum Anzeigen von SQL -Datenbankfehlern sind: 1. Fehlermeldungen direkt anzeigen; 2. Verwenden Sie Showfehler und Warnungsbefehle anzeigen; 3.. Greifen Sie auf das Fehlerprotokoll zu. 4. Verwenden Sie Fehlercodes, um die Ursache des Fehlers zu finden. 5. Überprüfen Sie die Datenbankverbindung und die Abfrage -Syntax. 6. Verwenden Sie Debugging -Tools.

See all articles