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< alldb20220801.sql
等了几分钟后,进行检查,对应的数据库恢复。
参考链接地址: https://www.rootop.org/pages/4772.html
标签:一例,数据库,sql,alldb20220801,mysql,db01,root,localhost From: https://www.cnblogs.com/yygy/p/18239392