Heim  >  Artikel  >  Datenbank  >  MySQL kombiniert Backup + Binlog, um versehentlich gelöschte Betriebsdaten wiederherzustellen

MySQL kombiniert Backup + Binlog, um versehentlich gelöschte Betriebsdaten wiederherzustellen

php是最好的语言
php是最好的语言Original
2018-08-07 11:23:182127Durchsuche

Kombinieren Sie Backup + Binlog, um Daten wiederherzustellen.

Szenario: Nachdem der Benutzer gestern Abend alle Vorbereitungen getroffen hatte, hat er heute Morgen versehentlich eine Tabelle gelöscht.

Lösung: Eine direkte Wiederherstellung in der ursprünglichen Produktionsumgebung wird nicht empfohlen. Es wird empfohlen, die gesamte Datenbank + Protokolle auf einem anderen Computer wiederherzustellen und sie dann in die Produktionsumgebung zu importieren.

MySQL kombiniert Backup + Binlog, um versehentlich gelöschte Betriebsdaten wiederherzustellen

1) Tabelle erstellen

select now(); 
create table itpuxfg1 (
`id` int(10) unsigned not null auto_increment,
`name` varchar(16) not null,
`sex` enum('m','w') not null default 'm',
`age` tinyint(3) unsigned not null,
primary key (`id`)
) engine=innodb default charset=utf8;
insert into itpux.itpuxfg1(`name`,`sex`,`age`) values
('itpux1','w',21),
('itpux2','m',22),
('itpux3','w',23),
('itpux4','m',24),
('itpux5','w',25);
commit;
select * from itpux.itpuxfg1;

2) Logisches Backup erstellen

mysqldump -uroot -p -F -R --all-databases > alldb_bak.sql

3) Geschäftsabläufe am Morgen simulieren

show master status; -- 154
select now(); -- 2018-04-27 06:27:40
update itpux.itpuxfg1 set name='itpux04' where id=4;
commit;
select * from itpux.itpuxfg1;
select now(); -- 2018-04-27 06:28:03
update itpux.itpuxfg1 set name='itpux05' where id=5;
commit;
select * from itpux.itpuxfg1;
show master status; -- 890

4) Versehentliches Löschen mittags

select now(); -- 2018-04-27 06:29:00
drop table itpuxfg1;
select * from itpux.itpuxfg1;
show master status; -- 1078

5) Wiederherstellung auf einer anderen Maschine (in meinem Fall ist es lokal, die Produktion sollte nicht lokal sein)

Master-Status anzeigen ; übergeben Dieser Dateiname, das Binlog, das für die Vorwärtssicherung benötigt wird

-denken Sie daran, das Binlog-Protokoll zu kopieren

Binlog-Ereignisse in „itpuxdb-binlog.000003“ anzeigen;

mysqlbinlog itpuxdb-binlog .000003 |grep "DROP TABLE"

mysqlbinlog itpuxdb-binlog.000003 |grep "itpuxfg1" (Beachten Sie, dass die beiden verschiedenen Versionen des Protokolls bitte unterschieden werden )

MySQL kombiniert Backup + Binlog, um versehentlich gelöschte Betriebsdaten wiederherzustellen

MySQL kombiniert Backup + Binlog, um versehentlich gelöschte Betriebsdaten wiederherzustellen

Demo:

Löschen Sie die itpux-Bibliotheks-Drop-Datenbank itpux;

Wiederherstellen:

Erstellen Sie zuerst die Datenbank:

MySQL> Datenbank erstellen itpux Standardzeichensatz utf8 – Wenn die Bedingungen nicht klar sind, wird empfohlen, die ursprüngliche Datenbank abzufragen ;

mysql -uroot -p - o itpux

-- Nach der Wiederherstellung können die heute Morgen aktualisierten Datensätze nicht gefunden werden

show tables;

MySQL kombiniert Backup + Binlog, um versehentlich gelöschte Betriebsdaten wiederherzustellen

-- Vor dem Löschen der Tabelle durch inkrementelle Wiederherstellung des Binlog-Protokolls

[root@mysqldb binlog]# mysqlbinlog -vv --start-position=219 --stop-position=913 --database=itpux itpuxdb- binlog.000001 >sa.sql

--Diese Tabelle in der Originaldatenbank wiederherstellen

Diese Tabelle aus einer anderen Datenbank sichern zuerst

mysqldump -uroot - p itpux itpuxfg1 > sa.sql

Stellen Sie die Produktionsbibliothek direkt wieder her (die Tabellen in der Originalbibliothek wurden gelöscht)

mysql -uroot -p itpux

mysql> select * from itpuxfg1;

1) Stellen Sie diese Tabelle in der Quellbibliothek wieder her

mysqldump -p itpux itpuxfg1 > ;sa.sql

Verwandte Empfehlungen:

So stellen Sie eine von MySQL gelöschte Datenbank ohne Backup wieder her

MySQL-Replikation + Snapshot-Wiederherstellung bei versehentlichem Löschvorgang experimenteller Test

Das obige ist der detaillierte Inhalt vonMySQL kombiniert Backup + Binlog, um versehentlich gelöschte Betriebsdaten wiederherzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn