欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年04月07日 10:53:48   作者:DBA隨筆  
這篇文章主要介紹了MySQL主從復(fù)制斷開(kāi)的常用修復(fù)方法,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下

01 問(wèn)題描述

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

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

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

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

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

02 解決問(wèn)題的方法

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

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

1、找到其他從庫(kù),快速替換

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

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

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

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

    在GTID模式下,可以通過(guò)下面的命令來(lái)解決:

mysql> STOP SLAVE;
mysql> SET GTID_NEXT='xxxxxx:yyy'; ----- 設(shè)置需要跳過(guò)的gtid event
mysql> BEGIN;COMMIT;
mysql> SET GTID_NEXT='AUTOMATIC';
mysql> START SLAVE;

   在非GTID模式下,可以通過(guò)下面的命令來(lái)解決:

stop slave;
set sql_slave_skip_counter=1;
start slave;

方法二:(指定新位置)

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

GTID模式下:

mysql>  STOP SLAVE;
mysql>  RESET MASTER;
mysql>  SET @@GLOBAL.GTID_PURGED ='xxxxxxx:yyyyyy'  ----- 表示這些gtid event已經(jīng)執(zhí)行過(guò)了
mysql>  START SLAVE;

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

非GTID模式下:

stop slave;
change master to master_log_file='mysql-bin.001360',master_log_pos=676383371;
start slave;

方法三:pt-slave-restart工具

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

    它的使用方法如下:

pt-slave-restart -h 10.xxx.xxx.xxx -P port -u user -p password

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

pt-slave-restart工具

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

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

set global slave_exec_mode = idempotent

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

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

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

3、利用備份重建從庫(kù)

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

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

相關(guān)文章

  • 銀河麒麟V10安裝MySQL5.7的詳細(xì)過(guò)程

    銀河麒麟V10安裝MySQL5.7的詳細(xì)過(guò)程

    這篇文章主要介紹了銀河麒麟V10安裝MySQL5.7,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • mysql的XA事務(wù)恢復(fù)過(guò)程詳解

    mysql的XA事務(wù)恢復(fù)過(guò)程詳解

    XA事務(wù)支持限于InnoDB存儲(chǔ)引擎,本文將詳細(xì)介紹mysql的XA事務(wù)恢復(fù)過(guò)程
    2012-11-11
  • 利用MySQL統(tǒng)計(jì)一列中不同值的數(shù)量方法示例

    利用MySQL統(tǒng)計(jì)一列中不同值的數(shù)量方法示例

    這篇文章主要給大家介紹了利用MySQL統(tǒng)計(jì)一列中不同值的數(shù)量的幾種解決方法,每種方法都給了詳細(xì)的示例代碼供大家參考學(xué)習(xí),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面跟隨小編一起來(lái)看看吧。
    2017-04-04
  • mysql-8.0.15-winx64 使用zip包進(jìn)行安裝及服務(wù)啟動(dòng)后立即關(guān)閉問(wèn)題

    mysql-8.0.15-winx64 使用zip包進(jìn)行安裝及服務(wù)啟動(dòng)后立即關(guān)閉問(wèn)題

    這篇文章主要介紹了mysql 使用zip包進(jìn)行安裝以及服務(wù)啟動(dòng)后立即關(guān)閉問(wèn)題 ,本實(shí)例使用的mysql版本為mysql-8.0.15-winx64,需要的朋友可以參考下
    2019-05-05
  • Windows下MySQL服務(wù)無(wú)法停止和刪除的解決辦法

    Windows下MySQL服務(wù)無(wú)法停止和刪除的解決辦法

    我在 Windows 操作系統(tǒng)上,使用解壓壓縮包的方式安裝 MySQL。遇到一點(diǎn)問(wèn)題,下面通過(guò)本文給大家分享Windows下MySQL服務(wù)無(wú)法停止和刪除的解決辦法,需要的朋友可以參考下
    2017-02-02
  • 查看修改mysql編碼方式讓它支持中文(gbk或者utf8)

    查看修改mysql編碼方式讓它支持中文(gbk或者utf8)

    MySQL的默認(rèn)編碼是Latin1,不支持中文,要支持中文需要把數(shù)據(jù)庫(kù)的默認(rèn)編碼修改為gbk或者utf8,真的是很麻煩啊,不過(guò)本文提供了詳細(xì)的修改教程,感興趣的你可不要走開(kāi)啊,希望本文對(duì)你有所幫助
    2013-01-01
  • 解決MySQL中IN子查詢會(huì)導(dǎo)致無(wú)法使用索引問(wèn)題

    解決MySQL中IN子查詢會(huì)導(dǎo)致無(wú)法使用索引問(wèn)題

    這篇文章主要介紹了MySQL中IN子查詢會(huì)導(dǎo)致無(wú)法使用索引問(wèn)題,文章給大家介紹了兩種子查詢的寫法,需要的朋友可以參考下
    2017-06-06
  • mysql數(shù)據(jù)庫(kù)隔離級(jí)別詳解

    mysql數(shù)據(jù)庫(kù)隔離級(jí)別詳解

    SQL標(biāo)準(zhǔn)定義了4類隔離級(jí)別,包括了一些具體規(guī)則,用來(lái)限定事務(wù)內(nèi)外的哪些改變是可見(jiàn)的,哪些是不可見(jiàn)的,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫(kù)隔離級(jí)別的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • MySQL5.7免安裝版配置圖文教程

    MySQL5.7免安裝版配置圖文教程

    Mysql是一個(gè)比較流行且很好用的一款數(shù)據(jù)庫(kù)軟件,如下記錄了我學(xué)習(xí)總結(jié)的mysql免安裝版的配置經(jīng)驗(yàn),感興趣的的朋友參考下吧
    2017-09-09
  • MySQL中join語(yǔ)句怎么優(yōu)化

    MySQL中join語(yǔ)句怎么優(yōu)化

    本文主要介紹了MySQL中join語(yǔ)句怎么優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評(píng)論