千家信息网

mysql 通过备份和binlog恢复数据

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,模拟数据库被×××,导致数据库被删除后的恢复操作。1.先来个全备:mysqldump -uroot -pgq266566 -A --master-data=2 > all.sql2.模拟线上生产环境。
千家信息网最后更新 2026年11月02日mysql 通过备份和binlog恢复数据

模拟数据库被×××,导致数据库被删除后的恢复操作。


1.先来个全备:

mysqldump -uroot -pgq266566 -A --master-data=2 > all.sql

2.模拟线上生产环境。备份完后会有新的修改。

3.然后模拟数据库被×××。chain_web被删除了。

4.上线发现被删除,先用备份恢复chain_web库 。mysql -uroot -p123456 -o chain_web < all.sql

只恢复chain_web库。

恢复到备份时候的状态。

5.根据备份时候的--master-data=2 找到 position位置 在all.sql备份文件中。

6.从备份位置解析binlog

mysqlbinlog --no-defaults -v -v --base64-output=decode-rows --start-position=194 mysql-bin.000009 > test.sql

--base64-output参数用来控制binlog部分是否显示出来的,指定为decode-rows表示不显示binglog部分

找到drop时候的位置点。

可以看到是8029

然后再根据这俩位置 解析binlog:

mysqlbinlog --start-position=194 --stop-position=8029 mysql-bin.000009 --database=chain_web > test4.sql

(解析binlog的时候加--no-defaults -v -v --base64-output=decode-rows参数可以看到比较直观的sql,但是会出现无法导入数据库的现象.可以先加参数解析出来 查看解析结果确认没问题后,再不加参数进行解析,然后导入相应的库中。如果开了GTID的话,在解析时候加参数--skip-gtids=true )

(--datebase=chain_web 意思是只解析chain_web库的操作 因为只删除了chain_web库 chain库没有操作 不需要解析binlog 否则导入会报主键冲突)

vim test4.sql 可以看到没有drop语句了。然后就可以导入数据库中

mysql -uroot -p123456 chain_web < test4.sql


备份 数据 参数 数据库 时候 位置 部分 直观 再不 意思 文件 状态 环境 现象 结果 语句 问题 上生 会报 先来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伟宏互联网科技 科技互联网产品 互联网科技公司税收优惠 没上市的科技互联网公司 与互联网科技公司 为想互联网科技 互联网前沿科技 中盈科技互联网信息有限公司 互联网科技博主是什么意思 移动互联网科技股 互联网软件和科技 速维有品互联网信息科技(苏州)有限公司 燊美集互联网科技有限公司 浙南科技城互联网大厦建设工程 晋城互联网科技 伍佰万互联网科技怎么赚钱 产业互联网科技服务公司 数字互联网科技有限公司 北京品多多互联网科技有限公司 保山浩联互联网科技有限公司 互联网科技公司 互联网科技公司排名 互联网 的科技创新 天下捷融互联网科技 甘肃拓世互联网科技有限公司 深圳卡尔迅互联网科技有限公司怎么样 晓花互联网科技有限公司网址 特约风豹互联网科技为什么扣费 黑科技 体验场景 互联网大会 同城互联网络科技
0