Einführung Binlog-Protokolle, also binäre Protokolldateien, werden verwendet, um SQL-Anweisungsinformationen zu Benutzervorgängen in der Datenbank aufzuzeichnen. Wenn Daten versehentlich gelöscht werden, können wir die gelöschten Daten über Binlog-Protokolle wiederherstellen. Die Methoden zur Wiederherstellung von Daten werden in die traditionelle Wiederherstellung binärer Dateien und die GTID-basierte Wiederherstellung binärer Dateien unterteilt. Vorbereitende Vorbereitung Bereiten Sie eine virtuelle Centos7-Maschine vor, schalten Sie die Firewall und Selinux aus, konfigurieren Sie die IP-Adresse, synchronisieren Sie die Systemzeit und installieren Sie die MySQL-Datenbank Herkömmliche binäre Protokolldaten wiederherstellen Ändern der Konfigurationsdatei [root@localhost ~]# vi /etc/my.cnf Server-ID = 1 log-bin=Binlog #Starten Sie den Datenbankdienst neu [root@localhost ~]# systemctl restart mysqld Betriebsdatenbank mysql> Datenbank mydb erstellen, Zeichensatz utf8mb4; mysql> verwende mydb; mysql> Tabelle erstellen Test(ID int)Engine=innodb Zeichensatz=utf8mb4; mysql> in Testwerte einfügen (1); mysql> in Testwerte einfügen (2); mysql> in Testwerte einfügen (3); mysql> in Testwerte einfügen (4); mysql> festschreiben; mysql> Testsatz-ID aktualisieren=10, wobei ID=4; mysql> festschreiben; mysql> wähle * aus Test; +------+ |Ich würde| +------+ | 1 | | 2 | | 3 | | 10 | +------+ 4 Zeilen im Satz (0,00 Sek.) mysql> Datenbank mydb löschen; Binärprotokollinformationen anzeigen mysql> Masterstatus anzeigen\G; *************************** 1. Reihe *************************** Datei: binlog.000001 Position: 1960 Binlog_Do_DB: Binlog_Ignore_DB: Ausgeführtes_Gtid_Set: 1 Zeile im Satz (0,00 Sek.) #Finden Sie die Punkte zum Erstellen und Löschen von Datenbanken, nämlich 219 und 1868 mysql> Binlog-Ereignisse in „binlog.000001“ anzeigen; +---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+ | Logname | Pos | Ereignistyp | Server-ID | End_log_pos | Info | +---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+ | binlog.000001 | 219 | Abfrage | 1 | 329 | Datenbank mydb charset utf8mb4 erstellen | | binlog.000001 | 1868 | Abfrage | 1 | 1960 | Datenbank mydb löschen | +---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+ Informationen als Binärprotokoll speichern [root@localhost ~]# mysqlbinlog --start-position=219 --stop-position=1868 /var/lib/mysql/binlog.000001 > /tmp/binlog.sql Daten wiederherstellen #Deaktivieren Sie die Binärprotokollierung vorübergehend, um doppelte Protokollierung zu vermeiden mysql> set sql_log_bin=0; #Daten wiederherstellenmysql> Quelle /tmp/binlog.sql #Binäres Protokollieren neu starten mysql> set sql_log_bin=1; Überprüfen Sie den Datenwiederherstellungsstatus mysql> Datenbanken anzeigen; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | | meinedb | |mysql | | Leistungsschema | |System| +--------------------+ 5 Zeilen im Satz (0,00 Sek.) mysql> verwende mydb; Datenbank geändert mysql> wähle * aus Test; +------+ |Ich würde| +------+ | 1 | | 2 | | 3 | | 10 | +------+ 4 Zeilen im Satz (0,00 Sek.), Wiederherstellen von Daten basierend auf dem GTID-Binärprotokoll Ändern der Konfigurationsdatei [root@localhost ~]# vi /etc/my.cnf Server-ID = 1 log-bin=Binlog gtid_mode=EIN enforce_gtid_consistency=true log_slave_updates=1 #Starten Sie den Datenbankdienst neu [root@localhost ~]# systemctl restart mysqld Betriebsdatenbank mysql> Datenbank mydb1 erstellen; mysql> verwende mydb1; Datenbank geändert mysql> Tabelle erstellen t1(id int)engine=innodb charset=utf8mb4; mysql> in t1-Werte einfügen (1); mysql> in t1-Werte einfügen (2); mysql> in t1-Werte einfügen (3); mysql> in t1-Werte einfügen (11); mysql> in t1-Werte einfügen (12); mysql> festschreiben; mysql> wähle * aus t1; +------+ |Ich würde| +------+ | 1 | | 2 | | 3 | | 11 | | 12 | +------+ 5 Zeilen im Satz (0,00 Sek.) mysql> Datenbank mydb1 löschen; Binärprotokollinformationen anzeigen mysql> Masterstatus anzeigen\G; *************************** 1. Reihe *************************** Datei: binlog.000003 Position: 1944 Binlog_Do_DB: Binlog_Ignore_DB: Ausgeführtes_Gtid_Set: 51d3db57-bf69-11ea-976c-000c2911a022:1-8 1 Zeile im Satz (0,00 Sek.) mysql> Binlog-Ereignisse in „binlog.000003“ anzeigen; +---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+ | Logname | Pos | Ereignistyp | Server-ID | End_log_pos | Info | +---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+ | binlog.000003 | 154 | Gtid | 1 | 219 | SET @@SESSION.GTID_NEXT= '51d3db57-bf69-11ea-976c-000c2911a022:1' | | binlog.000003 | 219 | Abfrage | 1 | 316 | Datenbank mydb1 erstellen | | binlog.000003 | 1784 | Gtid | 1 | 1849 | SET @@SESSION.GTID_NEXT= '51d3db57-bf69-11ea-976c-000c2911a022:8' | | binlog.000003 | 1849 | Abfrage | 1 | 1944 | Datenbank mydb1 löschen | +---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+ Informationen als Binärprotokoll speichern #Transaktionsdatensatz 8 dient zum Löschen der Datenbank, daher müssen nur die Transaktionsdatensätze 1-7 wiederhergestellt werden [root@localhost ~]# mysqlbinlog --skip-gtids --include-gtids='51d3db57-bf69-11ea-976c-000c2911a022:1-7' /var/lib/mysql/binlog.000003 > /tmp/gtid.sql Parameterbeschreibung: Daten wiederherstellen mysql> setze sql_log_bin=0; mysql> Quelle /tmp/gtid.sql mysql> setze sql_log_bin=1; Überprüfen Sie den Datenwiederherstellungsstatus mysql> Datenbanken anzeigen; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | | meinedb | | meinedb1 | |mysql | | Leistungsschema | |System| +--------------------+ 6 Zeilen im Satz (0,00 Sek.) mysql> verwende mydb1; Datenbank geändert mysql> wähle * aus t1; +------+ |Ich würde| +------+ | 1 | | 2 | | 3 | | 11 | | 12 | +------+ 5 Zeilen im Satz (0,00 Sek.) Dies ist das Ende dieses Artikels über den Beispielcode zur Implementierung der MySQL-protokollbasierten Datenwiederherstellung auf Centos7. Weitere Informationen zu Centos7 MySQL-Protokollwiederherstellungsdaten 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:
|
>>: JavaScript Snake-Implementierungscode
1. Die proxy_pass -Direktive des Moduls 1.ngx_str...
Verwenden Sie den folgenden Befehl, um zu überprü...
Inhaltsverzeichnis 1. Hilfeinformationen nutzen 2...
Vorwort Die Standarddatenbankdatei der MySQL-Date...
Standardmäßig werden Breite und Höhe der Zelle au...
Ergebnisse erzielen Implementierungscode html <...
1. Laden Sie MySql herunter und installieren Sie ...
Ursprüngliche Konfiguration: http { ...... Verbin...
Vorwort: Im MySQL-System gibt es viele verschiede...
Das Ziel von Google mit Flutter bestand immer dar...
Gerade HTML-Anfänger stehen häufig vor dem Problem...
Die Indizierung ähnelt dem Erstellen bibliografis...
Laden Sie zuerst die Abhängigkeiten herunter: cnp...
Inhaltsverzeichnis 1. Zwei-Wege-Bindung 2. Wird d...
Inhaltsverzeichnis Wirkungsdemonstration:Hauptimp...