Schritt 1: Stellen Sie sicher, dass MySQL Binlog aktiviert hatVariablen wie „%log_bin%“ anzeigen; Wenn log_bin eingeschaltet ist, wird es aktiviert. Schritt 2: Rufen Sie das Binlog-Dateiverzeichnis auf und suchen Sie die Binärprotokolldateimysql> show binary logs; #Liste der Binärprotokolldateien abrufenmysql> show master status; #Aktuell geschriebene Binärprotokolldatei anzeigenmysql> reset master; Binärprotokoll zurücksetzen 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 anBeispiel 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 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 1. Master zurücksetzen; Binlog zurücksetzen und Protokolle neu generieren 2. Testen Sie eine Tabelle, indem Sie Daten einfügen und diese dann versehentlich löschen. 3. Befehl „Bin-Log anzeigen“: Binlog-Ereignisse in „mysql-bin.000001“ anzeigen; 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. /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. 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:
/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:
|
<<: Facebooks nahezu perfekte Neugestaltung aller Internetdienste
>>: Detaillierte Erläuterung des Datenproxys und der Ereignisse von VUE
Vorwort In der Java-Programmierung werden die mei...
Ursache Der Grund für das Schreiben dieses Blogs ...
Softwareversion Windows: Windows 10 MySQL: mysql-...
Inhaltsverzeichnis 1. Vue-Übersicht Offizielle Vu...
Vorwort Dieser Artikel stellt die fünfte Frage vo...
Inhaltsverzeichnis 1 Einleitung 2 Voraussetzungen...
Ich habe vor, eine Reihe von Haftnotizwänden zu r...
1. Finden Sie heraus, ob MySQL zuvor installiert ...
Inhaltsverzeichnis Ein Mord verursacht durch ERR ...
Inhaltsverzeichnis 1. Hintergrund 2. Langsame Abf...
Wenn Sie nginx als Reverse-Proxy verwenden, könne...
Entwicklungstrends: html (Hypertext-Markup-Sprache...
IIS7 Laden Sie das HTTP Rewrite-Modul von der off...
Dieser Artikel zeichnet das Installationstutorial...
Inhaltsverzeichnis 1. v-wenn 2. Verwenden Sie v-i...