Heim  >  Artikel  >  Datenbank  >  Ausführliche Erklärung zum Wiederherstellen von Datenbankdaten über das MySQL-Binärprotokoll (Bild und Text)

Ausführliche Erklärung zum Wiederherstellen von Datenbankdaten über das MySQL-Binärprotokoll (Bild und Text)

黄舟
黄舟Original
2017-04-18 09:20:561081Durchsuche

In diesem Artikel wird hauptsächlich ausführlich beschrieben, wie Datenbankdaten über das Binärprotokoll von MySQL wiederhergestellt werden. Interessierte können mehr darüber erfahren.

Oft löschen Website-Administratoren aus verschiedenen Gründen und bei verschiedenen Vorgängen versehentlich Website-Daten und führen keine Website-Sicherung durch. Dadurch sind sie ratlos und führen sogar zu Problemen beim Website-Betrieb und Rentabilität. In diesem Artikel zeigen wir Ihnen, wie Sie Daten mithilfe des zweiten Mechanismusprotokolls (Binlog) von MySQL wiederherstellen.

Systemumgebung:

Betriebssystem: CentOS 6.5 X64 (virtuelle Maschine);

WEB-Dienst: PHP+Mysql+Apache;

Website: Erstellen Sie der Einfachheit halber direkt lokal eine DEMO-Site

Bedienungsschritte:

1 ;

2. Daten zur Site hinzufügen

4 5. Analyse des Binlog-Protokollinhalts;

6. Stellen Sie die Binlog-Funktion und grundlegende Operationen wieder her Verwenden Sie MySQL verwenden zu können, müssen Sie diese Funktion zunächst in der MySQL-

-Konfigurationsdatei aktivieren. Suchen Sie die MySQL-Konfigurationsdatei und fügen Sie der Datei die Zeile „log_bin = mysql-bin“ hinzu. Tatsächlich ist diese Funktion in den verschiedenen MySQL-Umgebungen, in denen ich installiert

habe, normalerweise standardmäßig aktiviert.

Nach dem Aktivieren der Binlog-Funktion befinden sich Dateien wie mysql-bin.000001, mysql-bin.000002 und andere im MySQL-Datenbankverzeichnis. Dies ist die binäre Protokolldatei von MySQL. Bei jedem Start von MySQL oder bei jeder manuellen Aktualisierung des Protokolls wird eine neue binäre Protokolldatei erstellt.

Verwenden Sie zunächst in unserer MySQL-Befehlszeile den Befehl „show master logs“, um die vorhandene Binlog-Datei anzuzeigen.

2. Daten zur Website hinzufügen Im Hintergrundartikelmodul der Website habe ich mehrere Testdaten hinzugefügt .

3. Aktualisieren Sie das Binlog-Protokoll

Zuvor war die Binlog-Datei von MySQL mysql-bin.000001, und das war es auch im Hintergrund der Website an die Datenbank gesendet. Drei Artikel wurden hinzugefügt. Jetzt aktualisieren wir das Binlog-Protokoll und eine neue mysql-bin.000002-Datei wird wie folgt generiert:

4 .Daten löschen

Hier lösche ich alle drei Artikel, die ich gerade hinzugefügt habe.

5. Binlog-Protokollinhaltsanalyse


Die binäre Protokolldatei von MySQL zeichnet MySQL-Vorgänge auf, z. B. den Löschvorgang gerade Protokolldatei.
flush logs;

show master logs;

Verwenden Sie den mysqlbinlog-Befehl von MySQL:

Hinweis: Da mein lokales MySQLbinlog das Standardzeichen-set=utf8 in der Binlog-Konfiguration nicht erkennen kann, also Hier I. Es funktioniert nur, nachdem dem Befehl „--no-defaults“ hinzugefügt wurde, und jeder kann daraus lernen.

Das Folgende ist ein Teil-Screenshot des Protokollinhalts:

6. Stellen Sie die angegebenen Daten wieder her ;
 mysqlbinlog /data/mysql/mysql-bin.000002

Beim Wiederherstellen von Daten über das Binlog-Protokoll von MySQL können wir die Wiederherstellung auf einen bestimmten Zeitpunkt festlegen, was ein bisschen wie die Server-Snapshot-Verwaltung ist. Jetzt möchten wir den gerade gelöschten Artikel wiederherstellen. Wir können einen Zeitpunkt vor dem Löschen finden und ihn auf diesen Zeitpunkt wiederherstellen.

Was die Verwendung des mysqlbinlog-Befehls betrifft, können wir ihn über den mysqlbinlog-Hilfebefehl wie folgt anzeigen:

Wie in der Hilfe gezeigt Dokument können Sie Daten durch Angabe von Zeit oder Ort wiederherstellen. Hier werde ich es Ihnen am Beispiel der angegebenen Zeit demonstrieren.

Überprüfen wir die Protokolldatei mysql-bin.000001 wie folgt:

mysqlbinlog –no-defaults –help
Durch das vorherige Operationsschritte Wir wissen, dass wir vor dem Löschen der Daten die Protokolldatei mysql-bin.000002 generiert haben, sodass wir nur diesen Zeitpunkt wiederherstellen müssen, den ich im Bild oben gefunden habe.

Der Befehl lautet wie folgt:

复制代码 代码如下:

mysqlbinlog –no-defaults –stop-datetime='2017-04-11 09:48:48'/data/mysql/mysql-bin.000001 |mysql –uroot –p123456

这时我们在看后台,发现刚才删除的三篇文章都已恢复回来了,从而到达我们期望的目的。

 总结:

本文和大家分享了如何通过mysql的二进制日志文件恢复数据。但还是要提醒大家,在平时要做好网站数据备份,现在的一些主流CMS建站系统都会内置数据库备份功能,比如这里我用的蝉知系统,数据是网站的命脉,做好数据备份以避免后期不必要的麻烦或损失。

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Wiederherstellen von Datenbankdaten über das MySQL-Binärprotokoll (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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