mysql数据库恢复一例
1)问题:用户报可能mysql库故障,诊断仪用不了
2)检查:
show databases;发现,其中对应的db01这个数据库不存在了,但其它的库还在。
mysqlbinlog mysql-bin.0000141检查归档日志发现,数据库被drop了。
3)处理:
因做了MHA,找到了一个以前的备份,跟领导确认后,对全库备份中的db01这个单一库,进行恢复。
mysql> create database db01;
[root@localhost ~]# mysql -uroot -pxxx db01< alldb20220801.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.
提示如上错误。
# 清空本地的gtid
mysql> reset master;
Query OK, 0 rows affected (0.04 sec)
如上操作后,再次进行数据库恢复,发现还是报ERROR 1840错误。
[root@localhost ~]$ head -30 alldb20220801.sql
找到GLOBAL.GTID,在24和25行。
SET @@GLOBAL.GTID_PURGED='6822560b-3659-11e8-afba-7cd30adaf22a:1-33310212,
79abd425-3659-11e8-8eeb-7cd30adaf28e:1-36989543';
因为备份有16G,文件太大,用sed把24行和25行清除。
[root@localhost ~]$ sed -i '24d' alldb20220801.sql
[root@localhost ~]$ sed -i '24d' alldb20220801.sql
这个命令运行2次后,才把24和25行删除。再次执行恢复:
[root@localhost ~]# mysql -uroot -pxxx db01 --one-database < alldb20220801.sql
等了几分钟后,进行检查,对应的数据库恢复。
参考链接地址: https://www.rootop.org/pages/4772.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报