中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行MYSQL MGR崩潰后的修復和問題查找

發布時間:2021-10-25 10:20:28 來源:億速云 閱讀:151 作者:柒染 欄目:大數據

這篇文章給大家介紹如何進行MYSQL  MGR崩潰后的修復和問題查找,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

MYSQL 的 GROUP REPLICATION 估計大多數的公司都沒有用,即使用也不是在主要的項目和關鍵的地方。所以網上相關MYSQL  Group Replicaiton 的的修復的東西也不多。趕巧,最近我們的測試系統的 MGR  崩潰了。

我們的MGR 的測試系統是三臺MYSQL 5.7.23 + Proxysql 組成的,曾經壞過一臺機器(網絡原因),但MGR 穩穩的提供數據庫服務,這次的崩潰和上次比,沒有那么簡單。三臺機器掛了兩臺。其實和監控不到位有關,但因為是測試機,也都沒有上什么監控,才有了本次的探索)

從第二臺機器上(Secondary)上看primary 機器無法訪問,三號機根本就不在member list 中, 三號機,在本機看是ERROR 的狀態,主庫雖然看似活著,但是已經無法登陸了。

project manager 和  開發都要用這個測試系統,所以分析,解決問題只能要一個字,快。(其實我是想詳細的分析一下到底哪里出了問題)。

在保存了錯誤日志后,我嘗試恢復,主庫,重啟啟動后可以登錄,并且再次重新運行命令,一般你要重新來過,最好要知道,崩潰中的那個庫時最后的主庫,然后在那個主庫上操作下面的命令。(這點是很重要的和后面的恢復有關)

SET GLOBAL group_replication_bootstrap_group=ON;

start group_replication;

SET GLOBAL group_replication_bootstrap_group=OFF;

在操作命令后主庫已經啟動了,生成了下面的日志

如何進行MYSQL  MGR崩潰后的修復和問題查找

到第二臺機器上進行恢復,

重新執行

CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';

SET GLOBAL group_replication_allow_local_disjoint_gtids_join=ON;  (此命令在MYSQL 8不在存在)

start group_replication;

SET GLOBAL group_replication_allow_local_disjoint_gtids_join=OFF;

執行完畢后,稍等片刻 

如何進行MYSQL  MGR崩潰后的修復和問題查找

兩臺機器已經恢復了,應該可以正常對外工作了,從proxysql 上已經可以訪問到集群了。

如何進行MYSQL  MGR崩潰后的修復和問題查找

目前還差一臺機器,但這臺機器著實是恢復的過程沒有那么簡單,在重新將第三臺機器添加進集群的過程中,發現問題,

[ERROR] Error reading packet from server for channel 'group_replication_recovery': The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. (server_errno=1236)

如何進行MYSQL  MGR崩潰后的修復和問題查找

通過這個錯誤,我至少可以推斷出兩件事 

1 這個服務器想直接加入到集群中,大概率是不大可能了,日志已經跟不上了

2  這個服務器和集群脫離的時間,一定早于集群出現故障的時間。

后面在分析錯誤日志的過程中,證明了我上面的猜測。

怎么進行恢復這第三臺機器,最快速的就是備份后再恢復了,XTRABACKUP 備份了主庫后,發現在perpare 的時候非常慢,并且備份的時候,在日志的備份顯示中,也是非常的慢,估計里面必有蹊蹺。

在恢復的過程中,很奇怪的是,將備份文件恢復到了第三臺機器后,提示

如何進行MYSQL  MGR崩潰后的修復和問題查找

在回來翻看曾經的primary 的一號機,的確是crash了

如何進行MYSQL  MGR崩潰后的修復和問題查找

并且 doublewrite 也有問題,有部分數據可能是沒有寫進去,這也就導致后面恢復第三號機的時候,使用主機的備份導致三號機還是起不來的問題。

后面因為2號機的數據庫還是正常的,所以直接resetart 1號MYSQL,下面的圖也就是后邊備份1號機在備份的時候,和XTRABACKUP  PERPARE 的時候異常慢的一個原因。大部分數據要進行UNDO

如何進行MYSQL  MGR崩潰后的修復和問題查找

目前的狀況是  1  2 號機都正常啟動的情況下,這里還是根據當時的狀態,來還讓 1號機作為primary (在配置文件中已經設置了MGR的權重), 這里重新操作MGR 初始化的操作就略去了(之前寫過MGR 安裝的文字),

很快1 和 2 號機,恢復了正常,集群也恢復正常,對外的訪問也正常了。

下面回到了最后的3號機怎么恢復的問題,通過備份和恢復,3號機已經正常了,在啟動后,3號機自動開始接入到集群中,但結果是失敗的,最后在經過10次的嘗試,被集群提了出來,錯誤原因也很簡單,就是數據有沖突,我們直接根據備份時候 XTRABAKCUP 文件中的  GTID 信息,直接將

這段GTID PURGED 掉就OK了

如何進行MYSQL  MGR崩潰后的修復和問題查找

再次將三號機加入到集群當中,OK 

如何進行MYSQL  MGR崩潰后的修復和問題查找

整體的集群就恢復了。

通過錯誤日志和相關一些指導來看,大致問題是 3號機由于網絡原因已經有一段時間和集群脫離了,而集群不可用的問題,大致是測試人員對系統進行了壓測,上面圖上也貼出來,清理線程無法將內存的臟頁及時刷新到磁盤導致的。但當時具體執行了什么語句,估計是查不到了,后期會考慮安裝audit  功能,記錄相關的語句,為問題的處理提供更多的信息。

關于如何進行MYSQL  MGR崩潰后的修復和問題查找就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家港市| 离岛区| 土默特右旗| 汉源县| 濮阳市| 五大连池市| 神农架林区| 江北区| 天镇县| 廉江市| 通道| 惠来县| 哈巴河县| 通榆县| 盐源县| 和硕县| 历史| 台安县| 曲阜市| 罗城| 红原县| 天等县| 德保县| 当阳市| 卢湾区| 北辰区| 中卫市| 偃师市| 丰镇市| 剑河县| 安阳县| 叶城县| 会昌县| 九寨沟县| 鄢陵县| 抚宁县| 勐海县| 平和县| 思南县| 黔西| 闽清县|