Detaillierte Erklärung zum Wiederherstellen von Datenbankdaten über das MySQL-Binärprotokoll

Detaillierte Erklärung zum Wiederherstellen von Datenbankdaten über das MySQL-Binärprotokoll

Website-Administratoren löschen Website-Daten aus verschiedenen Gründen und aufgrund verschiedener Vorgänge häufig versehentlich und erstellen keine Sicherungskopien der Website. Dies führt zu Verlusten und kann sich sogar negativ auf den Betrieb und Gewinn der Website auswirken. In diesem Artikel zeigen wir Ihnen, wie Sie Daten über das Binärprotokoll (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 mit dem Chanzhi-System.

Schritte:

1. Aktivieren Sie die Binlog-Funktion und grundlegende Vorgänge.

2. Fügen Sie der Site Daten hinzu;

3. Binlog-Protokoll aktualisieren;

4. Daten löschen;

5. Analyse des Binlog-Protokollinhalts;

6. Stellen Sie die angegebenen Daten wieder her.

1. Aktivieren Sie die Binlog-Funktion und grundlegende Vorgänge

Um die Binlog-Protokollierungsfunktion von MySQL verwenden zu können, müssen Sie diese Funktion zunächst in der MySQL-Konfigurationsdatei aktivieren. Die Bedienung ist sehr einfach. Suchen Sie die MySQL-Konfigurationsdatei und fügen Sie der Datei eine Zeile „log_bin = mysql-bin“ hinzu. Tatsächlich ist diese Funktion in den verschiedenen von mir installierten MySQL-Umgebungen normalerweise standardmäßig aktiviert.

Nach dem Einschalten der Binlog-Funktion befinden sich im MySQL-Datenbankverzeichnis Dateien wie mysql-bin.000001, mysql-bin.000002 usw. Dies sind die binären Protokolldateien von MySQL. Bei jedem Start von MySQL oder bei jeder manuellen Aktualisierung des Protokolls wird eine neue Binärprotokolldatei erstellt.

Zuerst verwenden wir den Befehl „show master logs“ in der MySQL-Befehlszeile, um die vorhandenen Binlog-Dateien anzuzeigen.

2. Daten zur Site hinzufügen

Im Artikelmodul im Website-Backend habe ich einige Testdaten hinzugefügt.

3. Aktualisieren Sie das Binlog-Protokoll

Zuvor lautete die MySQL-Binlog-Datei mysql-bin.000001 und im Hintergrund der Website wurden der Datenbank drei Artikel hinzugefügt. Jetzt aktualisieren wir das Binlog-Protokoll und eine neue Datei mysql-bin.000002 wird wie folgt generiert:

Protokolle spülen;

Master-Protokolle anzeigen; 

4. Löschung von Daten

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

5. Analyse des Binlog-Protokollinhalts

Die binäre Protokolldatei von MySQL zeichnet MySQL-Operationen auf, wie beispielsweise die Löschoperation gerade eben. Werfen wir einen Blick auf den spezifischen Inhalt der Protokolldatei.

Verwenden Sie den mysqlbinlog-Befehl von MySQL:

 mysqlbinlog /data/mysql/mysql-bin.000002

Hinweis: Da mein lokales mysqlbinlog den Standardzeichensatz „utf8“ in der Binlog-Konfiguration nicht erkennen kann, habe ich dem Befehl hier „--no-defaults“ hinzugefügt, damit es funktioniert. Bitte betrachten Sie dies als Lehre.

Nachfolgend sehen Sie einen Teil-Screenshot des Protokollinhalts:

6. Stellen Sie die angegebenen Daten wieder her.

Beim Wiederherstellen von Daten über das Binlog-Protokoll von MySQL können wir die Wiederherstellung auf einen bestimmten Zeitpunkt festlegen, was ein bisschen der Verwaltung von Server-Snapshots ähnelt. Wenn wir jetzt den gerade gelöschten Artikel wiederherstellen möchten, können wir einen Zeitpunkt vor der Löschung suchen und ihn auf diesen Zeitpunkt wiederherstellen.

Informationen zur Verwendung des Befehls mysqlbinlog können Sie über den Hilfebefehl mysqlbinlog wie folgt einsehen:

mysqlbinlog –no-defaults –help 

Wie in der Hilfedokumentation beschrieben, können Sie Daten durch Angabe einer Zeit oder eines Ortes wiederherstellen. Hier werde ich die Angabe einer Zeit als Beispiel zur Veranschaulichung verwenden.

Lassen Sie uns die Protokolldatei mysql-bin.000001 wie folgt überprüfen:

mysqlbinlog -no--defaults /data/mysql/mysql-bin.000001 

Aus den vorherigen Schritten wissen wir, dass wir vor dem Löschen der Daten die Protokolldatei mysql-bin.000002 generiert haben. Wir müssen also nur bis zu diesem Zeitpunkt wiederherstellen. Diesen Zeitpunkt habe ich in der obigen Abbildung gefunden.

Der Befehl lautet wie folgt:

Kopieren Sie den Code wie folgt:

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

Zu diesem Zeitpunkt haben wir uns den Hintergrund angesehen und festgestellt, dass die drei gerade gelöschten Artikel wiederhergestellt wurden, wodurch wir unser gewünschtes Ziel erreicht hatten.

Zusammenfassen:

In diesem Artikel erfahren Sie, wie Sie Daten über binäre MySQL-Protokolldateien wiederherstellen. Aber ich möchte trotzdem alle daran erinnern, in normalen Zeiten eine gute Datensicherung für die Website durchzuführen. Einige gängige CMS-Website-Erstellungssysteme verfügen mittlerweile über integrierte Datenbank-Backup-Funktionen, wie beispielsweise das Chanzhi-System, das ich hier verwende. Daten sind das Lebensblut der Website. Führen Sie eine gute Datensicherung durch, um später unnötige Probleme oder Verluste zu vermeiden.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • MySQL-Binärprotokolldatei - Datenbank wiederherstellen
  • Bringen Sie Ihnen bei, die Protokolldatei (binlog) der MySQL-Datenbank automatisch wiederherzustellen
  • Erläutern Sie das Binlog-Protokoll von MySQL und wie Sie das Binlog-Protokoll zum Wiederherstellen von Daten verwenden
  • MySQL verwendet Binlog-Protokolle zur Implementierung der Datenwiederherstellung
  • Erfahren Sie, wie Sie MySQL-Daten über Protokolldateien wiederherstellen

<<:  Implementierung einer nicht geheimen SSH-Kommunikation in Linux

>>:  Detaillierte Erklärung inkompatibler Änderungen von Komponenten in vue3

Artikel empfehlen

Einführung in MySQL-Isolationsebene, Sperre und MVCC

Ziel dieses Artikels ist es, die Beziehung zwisch...

HTML-Implementierung eines einfachen Rechners mit detaillierten Ideen

Code kopieren Der Code lautet wie folgt: <!DOC...

Vue implementiert den Download von ZIP-Dateien

In diesem Artikelbeispiel wird der spezifische Co...

Vue-Grundlagen-Tutorial: Bedingtes Rendering und Listen-Rendering

Inhaltsverzeichnis Vorwort 1.1 Funktion 1.2 So st...

CSS-Schreibstandards und -Reihenfolge teilen [für alle empfohlen]

CSS-Schreibreihenfolge 1. Positionsattribute (Pos...

Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux

Wenn Sie Bash beenden möchten, haben Sie zwei Mög...

MySQL InnoDB MRR-Optimierungshandbuch

Vorwort MRR ist die Abkürzung für Multi-Range Rea...

Native JS-Canvas zum Erzielen einer einfachen Schlange

In diesem Artikel wird der spezifische Code von J...

Detaillierte Anweisungen zum Download und Installationsprozess von MySQL 5.7.18

MySql herunterladen 1. Öffnen Sie die offizielle ...

Beispielcode zur Implementierung transparenter Verlaufseffekte mit CSS

Die Titelbilder in den Spalten von Zhihu Discover...

Detaillierte Erläuterung des Lernens von CSS-Zählerattributen

Das CSS-Zählerattribut wird von fast allen Browse...

Detaillierte Erklärung des Grid-Layouts und des Flex-Layouts der Anzeige in CSS3

Das Gitterlayout weist einige Ähnlichkeiten mit d...

Die Hook-Funktion von Vue-Router implementiert Routing Guard

Inhaltsverzeichnis Überblick Globale Hook-Funktio...