So stellen Sie Daten mit Binlog in MySQL 5.7 wieder her

So stellen Sie Daten mit Binlog in MySQL 5.7 wieder her

Schritt 1: Stellen Sie sicher, dass MySQL Binlog aktiviert hat

Variablen wie „%log_bin%“ anzeigen;
Wenn log_bin eingeschaltet ist, wird es aktiviert.

Bildbeschreibung hier einfügen

Schritt 2: Rufen Sie das Binlog-Dateiverzeichnis auf und suchen Sie die Binärprotokolldatei

Bildbeschreibung hier einfügen

mysql> show binary logs; #Liste der Binärprotokolldateien abrufenmysql> show master status; #Aktuell geschriebene Binärprotokolldatei anzeigenmysql> reset master; Binärprotokoll zurücksetzen 

Bildbeschreibung hier einfügen

Schritt 3: Verwenden Sie den Toolbefehl mysqlbinlog, um die Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfragedatensätze anzuzeigen (Sie müssen in das Verzeichnis mysqlbinlog wechseln, um wirksam zu sein) oder geben Sie binlog direkt an

Beispiel 1 : Abfrage des Betriebsprotokolls vom 12.03.2021 14:00:00 bis 12.03.2021 14:03:00. Die Datenbank ist g_xinxiangshop. Geben Sie den folgenden Befehl ein, um die Daten in eine freie TXT-Datei zu schreiben.

/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime="2021-3-12 14:00:00" --stop-datetime="2021-3-12 14:03:00" /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt

Beispiel 2 : Abfrage des Betriebsprotokolls der Datenbank g_xinxiangshop vom 12.03.2021 14:00:00 bis 12.03.2021 14:03:00 und Filtern der Betriebsaufzeichnungen, die nur die Daten in der Tabelle g_user enthalten. Geben Sie den folgenden Befehl ein, um die Daten in eine freie txt-Datei zu schreiben

/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime="2021-3-12 14:00:00" --stop-datetime="2021-3-12 14:03:00" /usr/local/mysql/data/mysql-bin.000001 | grep g_user > /tmp/binlog.txt

Beispiel 3 : Abfrage des Betriebsprotokolls der Datenbank g_shoptest vom 15.03.2021 15:25:00 bis 15.03.2021 15:35:00 und Ausgabe auf dem Bildschirm
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_shoptest --start-datetime="2021-3-15 15:25:00" --stop-datetime="2021-3-15 15:35:00" /data/mysql/mysql-bin.000001 |mehr

Bildbeschreibung hier einfügen

Das Bild ist dasselbe wie in Beispiel 1 und Beispiel 2. Sie können den Wiederherstellungsvorgang durchführen, nachdem Sie den Kürzungsvorgang und den Aufzeichnungspunkt gesehen haben!

Schritt 4: Testen Sie die Datenwiederherstellung mit bin_log

Melden Sie sich bei MySQL an
prüfen :

1. Master zurücksetzen; Binlog zurücksetzen und Protokolle neu generieren

Bildbeschreibung hier einfügen

2. Testen Sie eine Tabelle, indem Sie Daten einfügen und diese dann versehentlich löschen.

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

3. Befehl „Bin-Log anzeigen“: Binlog-Ereignisse in „mysql-bin.000001“ anzeigen;

Bildbeschreibung hier einfügen

Wie in der Abbildung oben zu sehen ist, liegen die Löschpunkte zwischen 928 und 1294; die zuvor hinzugefügten Daten liegen zwischen 154 und 520.

Bildbeschreibung hier einfügen

/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 154 --stop-position 520 | mysql -uroot -p g_shoptest

Überprüfen Sie nach Abschluss der Ausführung, ob die Daten, die Sie gelöscht haben, wieder vorhanden sind.

Bildbeschreibung hier einfügen

Binlog-Befehl

1. Die am häufigsten verwendete Methode besteht darin, die Daten am angegebenen Datenende wiederherzustellen, sodass sie direkt in der Datenbank wiederhergestellt werden können:

mysqlbinlog --start-date="2021-3-12 14:00:00" --stop-date="2021-3-12 14:03:00" mysql_bin.000001 |mysql -uroot -p123456

2. Geben Sie die Start- und Endpositionen an. Aus dem oben generierten Binärprotokoll können wir die Start- und Endpositionen eines Protokolls ermitteln. Wir können das Protokoll während des Wiederherstellungsprozesses von Position A bis Position B angeben. Die folgenden beiden Parameter müssen angegeben werden:

  • --start-position="50" //Angabe ab Position 50
  • --stop-position="100"//Angeben, dass bei Position 100 enden soll

/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 7903538 --stop-position 7904498|mysql -uroot -p123456

**Allgemeiner FehlerFEHLER: Fehler in Log_event::read_log_event(): „Ungültiges Ereignis im Binärprotokoll gefunden“, data_len: 31, event_type: 35

*Das Problem wird durch die mysqlbinlog-Version verursacht

Zeigen Sie das vom aktuellen Betriebssystem verwendete mysqlbinlog an

Shell> welches mysqlbinlog
/usr/bin/mysqlbinlog

Sehen Sie sich das aktuell von MySQL verwendete mysqlbinlog an

±--------------±------------------+
| Variablenname | Wert |
±--------------±------------------+
| Basisverzeichnis | /usr/local/mysql/ |
±--------------±------------------+

mysql> Variablen wie „basedir“ anzeigen;

Vergleich der beiden Versionen

shell> /usr/bin/mysqlbinlog --version
shell> /usr/local/mysql/bin/mysqlbinlog --version

Um dieses Problem zu lösen, geben Sie einfach den mysqlbinlog-Pfad an

/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime="2021-3-12 14:00:00" --stop-datetime="2021-3-12 14:03:00" /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt

Dies ist das Ende dieses Artikels über die Verwendung von Binlog zur Wiederherstellung von Daten in MySQL 5.7. Weitere Informationen zur MySQL-Binlog-Wiederherstellung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Wiederherstellung der MySQL-Datenbank (mit dem Befehl mysqlbinlog)
  • Binlog-bezogene Befehle und Wiederherstellungstechniken in MySQL
  • MySQL Binlog-Datenwiederherstellung: Detaillierte Erklärung zum versehentlichen Löschen einer Datenbank
  • So verwenden Sie Binlog zur Datenwiederherstellung in MySQL
  • Bringen Sie Ihnen bei, die Protokolldatei (binlog) der MySQL-Datenbank automatisch wiederherzustellen
  • Detaillierte Schritte zum Wiederherstellen der MySQL-Datenbank über Binlog-Dateien unter Linux
  • Erläutern Sie das Binlog-Protokoll von MySQL und wie Sie das Binlog-Protokoll zum Wiederherstellen von Daten verwenden
  • MySQL verwendet mysqldump + binlog, um die Prinzipanalyse der gelöschten Datenbank vollständig wiederherzustellen
  • MySQL verwendet Binlog-Protokolle zur Implementierung der Datenwiederherstellung
  • So verwenden Sie MySQL Binlog zum Wiederherstellen versehentlich gelöschter Datenbanken

<<:  Facebooks nahezu perfekte Neugestaltung aller Internetdienste

>>:  Detaillierte Erläuterung des Datenproxys und der Ereignisse von VUE

Artikel empfehlen

MariaDB unter Linux startet mit dem Root-Benutzer (empfohlen)

Da ich Sicherheitsprodukte testen musste, wollte ...

Ubuntu 18.04 erhält Root-Berechtigungen und meldet sich als Root-Benutzer an

Vorab geschrieben: In den folgenden Schritten müs...

Lösung für unvollständige Textanzeige im El-Tree

Inhaltsverzeichnis Methode 1: Der einfachste Weg,...

Handschriftliche Implementierung von new in JS

Inhaltsverzeichnis 1 Einführung in den neuen Oper...

Details nach dem Setzen des src des Iframes auf about:blank

Nachdem die Quelle des Iframes auf „about:blank“ g...

Detaillierte Erklärung von PID und Socket in MySQL

Inhaltsverzeichnis 1. Einführung in die PID-Datei...

Lösung zum Einfügen eines Formulars mit einer Leerzeile oben und unten

Ich weiß nicht, ob Ihnen beim Erstellen einer Webs...

Detaillierte Erklärung der MySQL 30-Militärregeln

1. Grundlegende Spezifikationen (1) Es muss die I...

MySQL-Serie 9 MySQL-Abfrage-Cache und -Index

Inhaltsverzeichnis Tutorial-Reihe 1. MySQL-Archit...

Beispielcode, wie CSS mehrere Klassen abgleicht

CSS stimmt mit mehreren Klassen überein Das folge...