某线上业务数据库admin表内容误删除后的恢复数据库操作

某线上业务数据库admin表内容误删除后的恢复数据库操作

首先要确认能否停掉线上的服务,如果不可以,尽量做lock表的操作,避免写入脏数据
mysql -uroot -p
use wzmj
lock tables admin write;
在执行恢复操作时,解锁;
unlock tables;

一、线上服务器导出待还原的备份数据。

1.导出数据库表头
mysqldump -uroot -p -d wzmj >/tmp/wzmj-d.sql

2.提取binlog日志异常事件时间点
进入binlog日志,通过 ll /www/data命令,查看binlog日志时间点对应的binlog日志,本例是11点30误操作引起,对应binlog日志mysql-bin.000221。
mysqlbinlog /www/data/mysql-bin.000221 --start-datetime='2017-11-21 04:00:00' --stop-datetime='2017-11-21 11:30:00' >/tmp/mysqlbinlog.sql

3.将备份的数据库/www/backup_mysql/wzmj_20171121_041001.tar.gz、数据表头/tmp/wzmj-d.sql和binlog数据库/tmp/mysqlbinlog.sql导出本地电脑桌面待用。


二、在本地虚拟机还原数据到本地数据库中。

1.在本地虚拟机中的数据库中建立wzmj数据库,并将表头导入,关闭虚拟机防火墙。将/www/backup_mysql/wzmj_20171121_041001.tar.gz 解包待用(tar -xvf wzmj_20171121_041001.tar.gz)。
a.create database if not exists wzmj default character set utf8mb4 collate utf8mb4_general_ci;
b.mysqldump -uroot -p wzmj </tmp/wzmj-d.sql(或者利用Navicat工具在本地的虚拟机数据库wzmj中的导入数据库表头);

2.进入本地虚拟机数据库
a. mysql -uroot -p
b.use wzmj;
c.source /tmp/wzmj_20171121_041001.sql
d.source /tmp/mysqlbinlog.sql

 

3.在Navicat中打开wzmj数据库的admin表,确认内容为需要的内容。右击admin表“转储sql文件”,在本地生成待用的admin.sql文件。

三、还原线上的误操作的数据库表

连接在线的某线上业务数据库,右击选择“运行sql文件”,运行admin.sql.点开admin表确认已经还原。解锁表。

posted on 2017-11-21 16:18  永恒的力量  阅读(227)  评论(0)    收藏  举报

导航