记一次误删数据的恢复过程

情况描述:

625日在做盲期数据时,将101下的trademarknew48张表复制到50下的trademarknew库时,误操作复制到了trademark库,导致trademark库中表被覆盖。

恢复思路:

为保证50不停机,必须热恢复。今天是周一,可以将周日的全备份传输到52机器上(5.7),在52上使用xtrabackup工具恢复数据。恢复后,将48张表使用mysqldump方式备份,再将备份传输到50上 ,执行热恢复操作。

恢复过程:

  1. 先将备份传输到52

Scp -r /backup/2018-06-24/ 172.16.1.52:/backup

  1. 将原数据文件删除

Rm -rf /var/lib/mysql/*

  1. 关闭数据库

Service mysqld stop

  1. 将备份文件恢复(14.20开始恢复)

Innobackup --apply-log /backup/2018-06-24

Innobackup --copy-back /backup/2018-06-24

  1. 恢复完成后开启数据库(16点多恢复完成)

Service mysqld start

  1. 45张表中被修改的使用mysqldump备份出来

mysqldump -uroot -p trademark tm_goods_trans1 > /backup/1.sql

报错,因为多了gtid-mode参数

重新执行

mysqldump  --set-gtid-purged=off -uroot -pswtm_8%-sIN trademark tm_goods_trans1 > /backup/1.sql

报错,执行以下语句

mysql_upgrade -u root -pswtm_8%-sIN --force

出现所有表状态为 ok

重启数据库

再次备份

mysqldump  --set-gtid-purged=off -uroot -pswtm_8%-sIN trademark tm_goods_trans1 > /backup/1.sql

成功!

  1. 将备份传输到50

 scp -r /backup/1.sql 172.16.1.50:/backup/

  1. 50数据库现清空相关表,再执行source操作恢复数据库

Mysql> source /backup/1.sql;

猜你喜欢

转载自www.cnblogs.com/xiaoerlaigeshao/p/10968005.html