Maison > base de données > tutoriel mysql > le corps du texte

Mysql combine sauvegarde + binlog pour restaurer les données d'opération supprimées accidentellement

php是最好的语言
Libérer: 2018-08-07 11:23:18
original
2131 Les gens l'ont consulté

Combinez sauvegarde + binlog pour restaurer les données.

Scénario : Tous les préparatifs ont été effectués hier soir, mais ce matin, l'utilisateur a accidentellement supprimé une table.

Solution : Il n'est pas recommandé de restaurer directement dans l'environnement de production d'origine. Il est recommandé de restaurer l'intégralité de la base de données + les logs sur une autre machine puis de l'importer dans l'environnement de production.

Mysql combine sauvegarde + binlog pour restaurer les données dopération supprimées accidentellement

1) Créer une table

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;
Copier après la connexion

2) Faire une sauvegarde logique

mysqldump -uroot -p -F -R --all-databases > alldb_bak.sql
Copier après la connexion

3) Simuler les opérations commerciales dans le matin

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
Copier après la connexion

4) Suppression accidentelle à midi

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

5) Restaurer sur une autre machine (mon cas est local, la production ne doit pas être locale)

afficher l'état du maître ; utilisez ce nom de fichier pour sauvegarder le journal binlog requis

--n'oubliez pas de copier le journal binlog

afficher les événements du journal binlog dans 'itpuxdb-binlog.000003';

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

mysqlbinlog itpuxdb-binlog.000003 |grep "itpuxfg1" (Veuillez faire la distinction entre deux versions différentes du journal )

Mysql combine sauvegarde + binlog pour restaurer les données dopération supprimées accidentellement

Mysql combine sauvegarde + binlog pour restaurer les données dopération supprimées accidentellement

Démo :

Supprimer la base de données de suppression de la bibliothèque itpux itpux ;

Restaurer :

Créez d'abord la base de données :

mysql> create database itpux default Character Set utf8 -- Si les conditions ne sont pas claires, il est recommandé d'interroger la base de données d'origine show create; base de données mysql;

mysql -uroot -p -o itpux

-- Après récupération, les enregistrements mis à jour ce matin sont introuvables

mysql> tables;

Mysql combine sauvegarde + binlog pour restaurer les données dopération supprimées accidentellement

-- Avant la récupération incrémentielle de la suppression de table via le journal binlog

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

--Restaurer cette table dans la base de données d'origine

Sauvegarder cette table à partir d'une autre base de données d'abord

mysqldump -uroot -p itpux itpuxfg1 > sa.sql

Restaurer directement la bibliothèque de production (les tables de la bibliothèque d'origine ont été supprimées)

mysql - uroot -p itpux

mysql> select * from itpuxfg1;

1) Restaurer cette table dans la base de données source

mysqldump -uroot - p itpux itpuxfg1 >sa.sql

Recommandations associées :

Comment restaurer une base de données supprimée MySQL sans sauvegarde

Réplication MySQL + récupération d'instantané Test expérimental de suppression accidentelle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal