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

Zusammenfassung der Verwendung von MySQL-Datums- und Uhrzeitfunktionen

Dieser Artikel basiert auf MySQL 8.0 Dieser Artik...

Front-End-JavaScript-Funktionsprinzip

Inhaltsverzeichnis 1. Was ist eine JavaScript-Eng...

So lösen Sie das Problem, dass Seata die MySQL 8-Version nicht verwenden kann

Mögliche Gründe: Der Hauptgrund, warum Seata MySQ...

Anweisungen zur verschachtelten Verwendung von MySQL ifnull

Verschachtelte Verwendung von MySQL ifnull Ich ha...

Lösung für das Problem der Werteübergabe zwischen HTML-Seiten

Als ich den Aufsatz zum ersten Mal verwendete, füh...

UDP DUP-Timeout UPD-Portstatus-Erkennungscodebeispiel

Ich habe bereits zuvor ein Beispiel geschrieben, ...

Tipps zum Mischen von OR und AND in SQL-Anweisungen

Heute gibt es eine solche Anforderung. Wenn die a...

Detaillierte Analyse der MySQL-Sperrblockierung

Bei der täglichen Wartung werden Threads häufig b...

So schreiben Sie ein MySQL-Sicherungsskript

Vorwort: Die Bedeutung einer Datenbanksicherung l...

js-Code, der den Button mit der Eingabetaste verknüpft

Code kopieren Der Code lautet wie folgt: <html...