mysql通过master-bin恢复表

本教程可恢复master-bin记录开始的所有(或单表)数据(后续将完善恢复某个节点区间的数据的流程)。

1、先把master-bin转成sql(存储位置自行定义)

mysqlbinlog --no-defaults /mnt/mysql/master-bin.000001 > /master1.sql
mysqlbinlog --no-defaults /mnt/mysql/master-bin.000002 > /master2.sql
mysqlbinlog --no-defaults /mnt/mysql/master-bin.000003 > /master3.sql

2、将几个sql合并成1个

cat master1.sql master2.sql master3.sql master4.sql master5.sql master6.sql master7.sql master8.sql > masterAll.sql

3、此处得到的就是自日志备份一来的所有sql执行记录。如果要恢复某个表,需执行以下命令提取指定的表xx(xx为你的数据库表)
grep -B0 -A0 -wi ‘xx’ /masterAll.sql >/recover.sql

提取出来的命令sql语句没带分号,且每行会出现–
故需要将–替换成分号
sed -i ‘s/--/;/g’ ls | grep -E 'recover.sql'

4、登录数据库
mysql -uroot -p
输入密码
use database(database是你的数据库)
source /recover.sql(执行后即恢复该表数据)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值