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
Da ich Sicherheitsprodukte testen musste, wollte ...
Vorab geschrieben: In den folgenden Schritten müs...
Inhaltsverzeichnis 1. Entpacken 2. Erstellen Sie ...
Inhaltsverzeichnis Methode 1: Der einfachste Weg,...
Inhaltsverzeichnis 1 Einführung in den neuen Oper...
Phänomen Starten Sie den Docker-Container docker ...
Nachdem die Quelle des Iframes auf „about:blank“ g...
Inhaltsverzeichnis 1. Docker installieren 2. Inst...
Inhaltsverzeichnis 1. Einführung in die PID-Datei...
Ich weiß nicht, ob Ihnen beim Erstellen einer Webs...
1. Grundlegende Spezifikationen (1) Es muss die I...
Inhaltsverzeichnis Tutorial-Reihe 1. MySQL-Archit...
Wie lassen sich Kompatibilitätsprobleme mit virtu...
Es gibt häufig Szenarien, in denen das Bild an di...
CSS stimmt mit mehreren Klassen überein Das folge...