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

Implementierung des Docker-Buildings für Maven+Tomcat-Basisimages

Vorwort In der Java-Programmierung werden die mei...

Eine kurze Diskussion über die Magie von parseInt() in JavaScript

Ursache Der Grund für das Schreiben dieses Blogs ...

Vue-Grundlagen MVVM, Vorlagensyntax und Datenbindung

Inhaltsverzeichnis 1. Vue-Übersicht Offizielle Vu...

So umgehen Sie unbekannte Feldnamen in MySQL

Vorwort Dieser Artikel stellt die fünfte Frage vo...

So deinstallieren Sie MySQL 5.7.19 unter Linux

1. Finden Sie heraus, ob MySQL zuvor installiert ...

Lösung für MySQL-Fehler beim Ändern des SQL-Modus

Inhaltsverzeichnis Ein Mord verursacht durch ERR ...

Analyse von MySQL-Parallelitätsproblemen und -Lösungen

Inhaltsverzeichnis 1. Hintergrund 2. Langsame Abf...

Tutorial: Nginx-Reverse-Proxy-Konfiguration zum Entfernen von Präfixen

Wenn Sie nginx als Reverse-Proxy verwenden, könne...

Der Unterschied zwischen HTML, XHTML und XML

Entwicklungstrends: html (Hypertext-Markup-Sprache...

IIS und APACHE implementieren die HTTP-Umleitung auf HTTPS

IIS7 Laden Sie das HTTP Rewrite-Modul von der off...

MySQL 8.0.11 Installations-Tutorial unter Windows

Dieser Artikel zeichnet das Installationstutorial...

Bedingtes Rendering von Vue (v-if und v-show)

Inhaltsverzeichnis 1. v-wenn 2. Verwenden Sie v-i...