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