最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案

 更新時(shí)間:2024年08月07日 10:11:44   作者:LOVE_DDZ  
在使用FlinkSQL的mysql-cdc連接器來監(jiān)聽MySQL數(shù)據(jù)庫時(shí),通常需要將MySQL的binlog模式設(shè)置為ROW模式,當(dāng)我們將MySQL主庫的binlog模式從STATEMENT切換為ROW并重啟MySQL服務(wù)后,MySQL從庫在同步時(shí)可能會(huì)報(bào)錯(cuò),所以本文介紹了MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案

在使用FlinkSQL的mysql-cdc連接器來監(jiān)聽MySQL數(shù)據(jù)庫時(shí),通常需要將MySQL的binlog模式設(shè)置為ROW模式。然而,在實(shí)際項(xiàng)目中,可能會(huì)遇到如下問題:

當(dāng)我們將MySQL主庫的binlog模式從STATEMENT切換為ROW并重啟MySQL服務(wù)后,MySQL從庫在同步時(shí)可能會(huì)報(bào)錯(cuò),錯(cuò)誤信息如下:

Could not execute Update_rows event on table ddz.ddz_mlfl; 
Can't find record in 'ddz_mlfl', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; 
the event's master log ddzmysql-bin.002729, end_log_pos 801362189

這個(gè)錯(cuò)誤表示在執(zhí)行Update_rows事件時(shí),找不到目標(biāo)記錄,具體錯(cuò)誤代碼為1032,對(duì)應(yīng)的處理器錯(cuò)誤為HA_ERR_KEY_NOT_FOUND。這是因?yàn)樵谇袚Qbinlog模式后,主從庫之間的數(shù)據(jù)可能不一致。

錯(cuò)誤原因分析

MySQL主庫的binlog模式分為STATEMENT、ROW和MIXED三種:

  • STATEMENT模式:記錄的是每一條SQL語句。
  • ROW模式:記錄的是每一行數(shù)據(jù)的變更。
  • MIXED模式:結(jié)合了STATEMENT和ROW模式,通常根據(jù)具體情況自動(dòng)選擇。

在從STATEMENT模式切換到ROW模式時(shí),可能會(huì)因?yàn)橐韵略驅(qū)е聫膸焱绞。?/p>

  1. 數(shù)據(jù)不一致:在切換binlog模式并重啟主庫后,主庫和從庫之間可能存在數(shù)據(jù)不一致的情況。ROW模式下,每一行的變化都會(huì)記錄在binlog中,而STATEMENT模式下則只記錄SQL語句的執(zhí)行。因此,切換模式后,從庫在應(yīng)用ROW格式的binlog事件時(shí),可能找不到相應(yīng)的記錄。
  2. 日志不一致:STATEMENT模式和ROW模式記錄的日志格式不同,切換模式后可能會(huì)導(dǎo)致日志解析錯(cuò)誤。
  3. 從庫延遲:從庫在同步主庫的數(shù)據(jù)時(shí),可能會(huì)出現(xiàn)延遲。如果在切換模式的過程中,主庫進(jìn)行了大量數(shù)據(jù)修改操作,從庫未能及時(shí)同步,導(dǎo)致數(shù)據(jù)不一致。
  4. 應(yīng)用binlog事件失敗:從庫在應(yīng)用ROW格式的binlog事件時(shí),可能因?yàn)槟承┰颍ㄈ缰麈I沖突、索引問題等)而無法正確應(yīng)用,從而導(dǎo)致找不到記錄的錯(cuò)誤。

解決方案

為了解決上述問題,可以按照以下步驟操作:

1. 確保主從庫數(shù)據(jù)一致

在切換binlog模式之前,確保主從庫數(shù)據(jù)完全一致,可以通過以下方式操作:

  • 停止寫操作:在切換模式前,停止所有寫操作,確保數(shù)據(jù)不再變化。
  • 完全同步:確保主庫的所有數(shù)據(jù)已經(jīng)完全同步到從庫,執(zhí)行以下命令檢查同步狀態(tài):
SHOW SLAVE STATUS;

2. 切換binlog模式

在確保數(shù)據(jù)一致后,按照以下步驟切換binlog模式:

停止從庫同步

STOP SLAVE;

切換主庫binlog模式

SET GLOBAL binlog_format = 'ROW';

重啟MySQL主庫,以確保配置生效:

service mysql restart

啟動(dòng)從庫同步

START SLAVE;

3. 重建從庫

如果在切換模式后依然報(bào)錯(cuò),建議重建從庫:

停止從庫

STOP SLAVE;

重新備份主庫數(shù)據(jù),并導(dǎo)入到從庫:

mysqldump -u root -p --all-databases --single-transaction --master-data > backup.sql
mysql -u root -p < backup.sql

重新配置從庫同步,確保從庫的master_log_filemaster_log_pos與主庫一致:

CHANGE MASTER TO MASTER_HOST='master_ip',
MASTER_USER='replication_user', 
MASTER_PASSWORD='replication_user_password',
MASTER_LOG_FILE='recorded_log_file', 
MASTER_LOG_POS=recorded_log_position;
START SLAVE;

4. 跳過異常錯(cuò)誤

跳過報(bào)錯(cuò)是以上方法都解決不了不得已使用的。

跳過指定錯(cuò)誤代碼在從服務(wù)器,編輯 /etc/my.cnf:

 [mysqld]
 slave-skip-errors=1032,1033

跳過所有錯(cuò)誤在從服務(wù)器,編輯 /etc/my.cnf:

 [mysqld]
 slave-skip-errors=all

重啟mysql從庫服務(wù)

service mysqld restart

總結(jié)

在使用FlinkSQL的mysql-cdc連接器監(jiān)聽MySQL數(shù)據(jù)庫時(shí),確保binlog模式為ROW是必要的。但在切換binlog模式時(shí),需要特別注意主從庫的數(shù)據(jù)一致性和同步狀態(tài)。

以上就是MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案的詳細(xì)內(nèi)容,更多關(guān)于MYSQL切換binlog主從同步錯(cuò)誤的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 簡單談?wù)刴ysql左連接內(nèi)連接

    簡單談?wù)刴ysql左連接內(nèi)連接

    這篇文章主要給大家介紹了關(guān)于mysql左連接內(nèi)連接的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 正確使用MySQL update語句

    正確使用MySQL update語句

    今天我們主要向大家講述的是MySQL update 語句的實(shí)際用法,以及在實(shí)際操作中哪些相關(guān)的操作步驟是值得我們大家注意的。
    2015-08-08
  • MySQL中的視圖特性和用戶權(quán)限管理詳解

    MySQL中的視圖特性和用戶權(quán)限管理詳解

    文章詳細(xì)介紹了MySQL視圖和用戶管理與權(quán)限控制,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-05-05
  • MySQL啟動(dòng)報(bào)錯(cuò):InnoDB表空間丟失問題及解決方法

    MySQL啟動(dòng)報(bào)錯(cuò):InnoDB表空間丟失問題及解決方法

    在啟動(dòng)MySQL時(shí),遇到了InnoDB: Tablespace 5975 was not found ,該錯(cuò)誤表明MySQL在啟動(dòng)過程中無法找到指定的 sw_rtu_message_202408.ibd 表空間文件,導(dǎo)致InnoDB存儲(chǔ)引擎無法繼續(xù)操作,本文給大家詳細(xì)介紹了解決方案,需要的朋友可以參考下
    2025-05-05
  • MySQL報(bào)錯(cuò)Lost connection to MySQL server during query的解決方案

    MySQL報(bào)錯(cuò)Lost connection to MySQL server&n

    在確保網(wǎng)絡(luò)沒有問題的情況下,服務(wù)器正常運(yùn)行一段時(shí)間后,數(shù)據(jù)庫拋出了異常"Lost connection to MySQL server during query",本文將給大家介紹MySQL報(bào)錯(cuò)Lost connection to MySQL server during query的解決方案,需要的朋友可以參考下
    2024-01-01
  • MySQL?中的?LIMIT?語句及基本用法

    MySQL?中的?LIMIT?語句及基本用法

    LIMIT?語句用于限制查詢返回的行數(shù),常用于分頁查詢或取部分?jǐn)?shù)據(jù),提高查詢效率,本文給大家介紹MySQL?中的?LIMIT?語句,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-06-06
  • MySQL數(shù)據(jù)庫自動(dòng)化備份腳本的實(shí)踐指南

    MySQL數(shù)據(jù)庫自動(dòng)化備份腳本的實(shí)踐指南

    數(shù)據(jù)是企業(yè)的核心資產(chǎn),定期備份數(shù)據(jù)庫是每個(gè)運(yùn)維和開發(fā)人員的必修課,本文分享一個(gè)生產(chǎn)環(huán)境驗(yàn)證過的 MySQL 自動(dòng)備份腳本,支持多數(shù)據(jù)庫備份、自動(dòng)壓縮、過期清理,并詳細(xì)解讀每一處細(xì)節(jié),幫助你快速搭建可靠的備份體系,需要的朋友可以參考下
    2026-04-04
  • mysql技巧:提高插入數(shù)據(jù)(添加記錄)的速度

    mysql技巧:提高插入數(shù)據(jù)(添加記錄)的速度

    這篇文章主要介紹了mysql技巧:提高插入數(shù)據(jù)(添加記錄)的速度,需要的朋友可以參考下
    2014-12-12
  • MySQL觸發(fā)器基本用法詳解【創(chuàng)建、查看、刪除等】

    MySQL觸發(fā)器基本用法詳解【創(chuàng)建、查看、刪除等】

    這篇文章主要介紹了MySQL觸發(fā)器基本用法,結(jié)合實(shí)例形式分析了mysql觸發(fā)器的基本創(chuàng)建、查看、刪除等相關(guān)使用方法與注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • SQL?Server攜程核心系統(tǒng)無感遷移到MySQL實(shí)戰(zhàn)

    SQL?Server攜程核心系統(tǒng)無感遷移到MySQL實(shí)戰(zhàn)

    這篇文章主要介紹了SQL?Server攜程核心系統(tǒng)無感遷移到MySQL實(shí)戰(zhàn),文章通過基于數(shù)據(jù)庫部署架構(gòu)鏡像構(gòu)建了訂單緩存統(tǒng)一管理熱點(diǎn)數(shù)據(jù),解決各端差異,具體詳情需要的小伙伴可以參考下面文章詳細(xì)內(nèi)容
    2022-05-05

最新評(píng)論

汝南县| 丘北县| 平安县| 永宁县| 德化县| 阜新市| 涟水县| 信阳市| 乌兰浩特市| 和田县| 固始县| 固阳县| 新乡市| 木里| 乐清市| 宣恩县| 齐河县| 方城县| 滁州市| 登封市| 桃江县| 龙山县| 永和县| 嘉峪关市| 尖扎县| 黎城县| 临泽县| 安康市| 和田县| 宿迁市| 黄浦区| 锡林浩特市| 兰州市| 翁源县| 寻甸| 广河县| 广平县| 陇川县| 上思县| 阜平县| 叶城县|