Wiederherstellung der MySQL Bin-Protokolldaten: versehentliches Löschen der Datenbank Vorwort: Da ich auf der Testmaschine versehentlich ein komplettes MySQL-Datenbankschema gelöscht habe, habe ich kein Backup erstellt, da es sich um eine Testmaschine handelte. Jetzt verwende ich die Bin-Log-Methode von MySQL, um die Datenbank vor dem Löschen wiederherzustellen. Voraussetzung für die Wiederherstellung von Bin-Log-Daten ist natürlich, dass die Bin-Log-Funktion aktiviert wurde. Wenn Sie die Daten nicht gesichert und das Bin-Log nicht aktiviert haben, müssen Sie möglicherweise andere Methoden wie Snapshots in Betracht ziehen, um die Wiederherstellung aus Systemperspektive durchzuführen. Das Binärprotokoll wird häufig für die inkrementelle Datensicherung und -wiederherstellung sowie für die Master-Slave-Replikation von Datenbanken verwendet. Falls es nicht aktiviert ist, können Sie es wie folgt aktivieren: 1. Öffnen Sie die Binlog-Funktion von MySQL MySQL unterstützt inkrementelle Sicherungen, aber die MySQL-Bin-Log-Funktion muss aktiviert sein. Ändern Sie die MySQL-Konfigurationsdatei. Linux ist /etc/my.cnf, Windows ist MySQL-Installationsverzeichnis/my.ini # Replikationsmasterserver (Standard) # Binäre Protokollierung ist für die Replikation erforderlich log-bin=mysql-bin # Binäres Protokollierungsformat – gemischt empfohlen binlog_format=gemischt. 2. Überprüfen Sie den Status des Binärprotokolls folgendermaßen: Ist es aktiviert? mysql> Variablen wie „log_%“ anzeigen; 3. Alle Binärprotokolldateien anzeigen: mysql> Bibliotheksprotokolle anzeigen; mysql> Binärprotokolle anzeigen; +------------------+------------+ | Protokollname | Dateigröße | +------------------+------------+ |mysql-bin.000001 | 201 | |mysql-bin.000002 | 351 | | mysql-bin.000003 | 276 | |mysql-bin.000004 | 201 | |mysql-bin.000005 | 16509 | 4. MySQL zeigt das Betriebsprotokoll der Binärprotokolldatei an #mysqlbinlog --start-position=0 /mydata/data/mysql-bin.000089 [root@test mysql]# mysqlbinlog --start-position=0 --stop-position=500 mysql-bin.000091 Warnung: Option „Startposition“: vorzeichenloser Wert 0 auf 4 angepasst /*!50530 SETZEN @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SETZEN @@session.max_insert_delayed_threads=0*/; /*!50003 SETZEN @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; TRENNUNGSZEICHEN /*!*/; # bei 4 #151022 18:00:43 Server-ID 1 end_log_pos 107 Start: Binlog v 4, Server v 5.5.38-Log erstellt 151022 18:00:43 beim Start # Warnung: Dieses Binärprotokoll wird entweder verwendet oder wurde nicht ordnungsgemäß geschlossen. ROLLBACK/*!*/; BINLOG ' y7MoVg8BAAAAZwAAAGsAAAABAAQANS41LjM4LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADLsyhWEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA== '/*!*/; # bei 107 #151022 23:27:50 Server-ID 1 End-Log-Pos 198 Abfrage Thread-ID = 2 Exec-Zeit = 0 Fehlercode = 0 ZEITSTEMPEL FESTLEGEN=1445527670/*!*/; SETZEN @@session.pseudo_thread_id=2/*!*/; SETZEN Sie @@session.foreign_key_checks=0, @@session.sql_auto_is_null=0, @@session.unique_checks=0, @@session.autocommit=1/*!*/; SETZEN Sie @@session.sql_mode=1608515584/*!*/; SETZEN Sie @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; SETZEN @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; SETZEN @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; SCHEMA LÖSCHEN, WENN `pandora` VORHANDEN ist<pre name="code" class="sql">/*!*/; # bei 198 #151022 23:27:50 Server-ID 1 End-Log-Pos 346 Abfrage Thread-ID = 2 Exec-Zeit = 0 Fehlercode = 0 5. Daten über das Bin-Protokoll wiederherstellen. Da ich das gesamte Schema gelöscht und nicht gesichert habe und das Bin-Protokoll zufällig aktiviert war, habe ich alle historischen Bin-Protokolle erneut ausgeführt und sie auf die Version vor dem versehentlichen Löschen zurückgesetzt (ich habe hier insgesamt 91 Dateien, die in Stapeln verarbeitet werden): (9999999999999: Dies erspart Ihnen die Mühe, die Start- und Endpositionen jeder Bin-Protokolldatei zu finden, und legt eine unendliche Zahl fest, um den Vorgang zu vereinfachen.) #mysqlbinlog /var/lib/mysql/mysql-bin.000001 --start-position=0 --stop-position=9999999999999 | mysql -uroot -p123456 #mysqlbinlog /var/lib/mysql/mysql-bin.000002 --start-position=0 --stop-position=9999999999999 | mysql -uroot -p123456 #mysqlbinlog /var/lib/mysql/mysql-bin.000003 --start-position=0 --stop-position=9999999999999 | mysql -uroot -p123456 ... ... Die Schlussfolgerung lautet also:
andere: 1. Es gibt auch ein sql_log mysql> Variablen wie „sql_log_%“ anzeigen; Mysql schaltet das SQL-Binärprotokoll ein und aus: 2. Suchen Sie den Speicherort der Datei: finde / -name my.cnf 3. Linux Zeigen Sie den vollständigen Pfad des aktuellen Verzeichnisses an pwd-Befehl: 4. Überprüfen Sie den aktuellen Status des Binärprotokolls: mysql>Masterstatus anzeigen; 5. Legen Sie in my.cnf/my.ini die Anzahl der Tage für das Rollback der Binärprotokolle fest: Ablaufdatum der Protokolle: 7 6. Sehen Sie sich das Master-Bin-Protokoll an mysql> Master-Protokolle anzeigen; +-----------------+------------+ | Protokollname | Dateigröße | +-----------------+------------+ | log-bin.000001 | 98 | +-----------------+------------+ 1 Zeile im Satz (0,00 Sek.) --------------------- Oben finden Sie die ausführliche Erklärung und Integration der MySQL Binlog-Datenwiederherstellung, die vom Herausgeber vorgestellt wurde. Ich hoffe, dass sie für alle hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: js+canvas realisiert Code-Regeneffekt
>>: Installationsschritte von Docker-CE auf dem Raspberry Pi 4b Ubuntu19-Server
Wenn Sie unter Linux eine Anwendung herunterladen...
Inhaltsverzeichnis 1. Zweck 2. Grammatik 3. Üben ...
1. Aktivieren Sie den Remotezugriff auf den Docke...
Inhaltsverzeichnis Was ist ein Skelettsieb? Demo ...
Bevor Sie diesen Artikel lesen, hoffe ich, dass S...
Vorwort In diesem Artikel erfahren Sie hauptsächl...
1. ROW_NUMBER() Definition: Die Funktion ROW_NUMB...
Inhaltsverzeichnis 1. Einführung in Slow Log 2. L...
Null, Hintergrund Ich habe diesen Donnerstag viel...
Inhaltsverzeichnis nächstesTick Syntaxvereinfachu...
Inhaltsverzeichnis Erste Schritte mit MySQL MySQL...
[LeetCode] 196.Doppelte E-Mails löschen Schreiben...
Inhaltsverzeichnis 1. Einführung in die Priorität...
Dieser Artikel beschreibt einen Digitaluhreffekt,...
Heute habe ich eine Aktivität für einen roten Ums...