人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

MySQL主從復(fù)制斷開的常用修復(fù)方法

發(fā)布日期:2022-02-14 14:06 | 文章來源:gibhub

01 問題描述

在生產(chǎn)環(huán)境中,我們經(jīng)常會(huì)遇見MySQL主從復(fù)制斷開的情況,在遇到主從復(fù)制斷開是,通常情況,解決問題的步驟如下:

1、從庫上show slave status查看復(fù)制斷開的直觀原因,并記錄當(dāng)前的復(fù)制位點(diǎn)

2、查看error log,分析更詳細(xì)的復(fù)制斷開原因

3、修復(fù)主從復(fù)制關(guān)系

4、如果復(fù)制關(guān)系無法修復(fù),則需要重新搭建從庫

02 解決問題的方法

主從復(fù)制關(guān)系斷裂,有各種各樣的原因。有些時(shí)候,我們沒有時(shí)間去客觀分析原因,因?yàn)閼?yīng)用程序處于無法使用狀態(tài),需要立即恢復(fù),這種情況下,我們對復(fù)制斷裂問題和服務(wù)可用性之間必須做一個(gè)權(quán)衡,然后再進(jìn)行相應(yīng)的處理。

常見的解決主從復(fù)制斷裂的方法有以下幾種:

1、找到其他從庫,快速替換

這種方法,需要你的應(yīng)用具有至少一主兩從的架構(gòu),其中一個(gè)從庫發(fā)生問題,可以將另外一個(gè)從庫快速上線,從而恢復(fù)應(yīng)用訪問,后續(xù)再來排查出現(xiàn)故障的從庫的具體問題原因。

2、跳過復(fù)制失敗的錯(cuò)誤

有些情況下,我們可以判斷主從復(fù)制斷裂的原因,例如主庫上比從庫上多一個(gè)數(shù)據(jù)庫db_1,那么當(dāng)我們在主庫上執(zhí)行drop database db_1的時(shí)候,從庫的復(fù)制一定會(huì)斷開。這種情況下,我們可以通過跳過一個(gè)事務(wù)來解決。

方法一:(直接跳過當(dāng)前事務(wù))

在GTID模式下,可以通過下面的命令來解決:

mysql>STOPSLAVE;
mysql>SETGTID_NEXT='xxxxxx:yyy';-----設(shè)置需要跳過的gtidevent
mysql>BEGIN;COMMIT;
mysql>SETGTID_NEXT='AUTOMATIC';
mysql>STARTSLAVE;

在非GTID模式下,可以通過下面的命令來解決:

stopslave;
setsql_slave_skip_counter=1;
startslave;

方法二:(指定新位置)

如果我們通過binlog分析,知道了下一個(gè)事務(wù)的具體點(diǎn)位,也可以指定下一個(gè)事務(wù)具體位置的方法來解決:

GTID模式下:

mysql>STOPSLAVE;
mysql>RESETMASTER;
mysql>SET@@GLOBAL.GTID_PURGED='xxxxxxx:yyyyyy'-----表示這些gtidevent已經(jīng)執(zhí)行過了
mysql>STARTSLAVE;

注意,GTID_PURGED 必須是 GLOBAL,上面的命令也可以寫成set global gtid_purged='xxx:yyy'

非GTID模式下:

stopslave;
changemastertomaster_log_file='mysql-bin.001360',master_log_pos=676383371;
startslave;

方法三:pt-slave-restart工具

如果我們跳過一個(gè)事務(wù)之后,還出現(xiàn)斷開的場景(例如我們在從庫上刪除了100條數(shù)據(jù),但是主庫要更新這100條數(shù)據(jù)),可以使用pt-slave-restart這個(gè)工具,它可以連續(xù)跳過斷開的位置。

它的使用方法如下:

pt-slave-restart-h10.xxx.xxx.xxx-Pport-uuser-ppassword

當(dāng)我們使用并行復(fù)制的時(shí)候,pt-slave-restart可能會(huì)出現(xiàn)報(bào)錯(cuò),這個(gè)時(shí)候我們可以通過將并行復(fù)制修改為單線程復(fù)制,然后再使用pt-slave-restart工具,可以參考這篇文章:

pt-slave-restart工具

方法四:設(shè)置參數(shù)slave_exec_mode

這個(gè)參數(shù)可以修改主從復(fù)制過程中的從庫執(zhí)行模式,如果是strict嚴(yán)格模式,則所有的復(fù)制一旦報(bào)錯(cuò)就會(huì)停止,如果設(shè)置成idempotent冪等模式,則特定錯(cuò)誤號(hào)的錯(cuò)誤將會(huì)被跳過。命令如下:

set global slave_exec_mode = idempotent

具體可以參考之前的文章:

MySQL復(fù)制問題的三個(gè)參數(shù)介紹

這篇文章中還有其他兩種跳過復(fù)制錯(cuò)誤的參數(shù),分別是slave_skip_errors、sql_slave_skip_counter

3、利用備份重建從庫

這種方法的使用場景不多,通常情況下,只有從庫已經(jīng)不可用或者無法從主庫同步的時(shí)候,才會(huì)考慮這種方法,例如主庫上執(zhí)行了reset master操作,導(dǎo)致所有的binlog被清理了,這樣從庫就無法獲取讀取正確的binlog,復(fù)制就會(huì)斷開,這種情況下,重建從庫可能是唯一的辦法了。

以上就是MySQL主從復(fù)制斷開的常用修復(fù)方法的詳細(xì)內(nèi)容,更多關(guān)于MySQL主從復(fù)制斷開修復(fù)的資料請關(guān)注本站其它相關(guān)文章!

美國服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部