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

MySQL磁盤(pán)壞塊處理的全流程

 更新時(shí)間:2025年07月22日 09:58:01   作者:喝醉酒的小白  
當(dāng) MySQL 所在磁盤(pán)出現(xiàn)壞塊(Bad Sector),可能導(dǎo)致數(shù)據(jù)庫(kù)實(shí)例異常重啟、表?yè)p壞、數(shù)據(jù)無(wú)法讀取或?qū)懭氲葒?yán)重問(wèn)題,此類(lèi)問(wèn)題不僅涉及 MySQL 層處理,還需配合操作系統(tǒng)和硬件層面進(jìn)行綜合判斷與修復(fù),所以本文給大家介紹了MySQL磁盤(pán)壞塊處理的全流程

MySQL 磁盤(pán)壞塊問(wèn)題的處理總體流程

下面是推薦的分階段處理流程,適用于生產(chǎn)環(huán)境,強(qiáng)調(diào)數(shù)據(jù)保護(hù)、風(fēng)險(xiǎn)評(píng)估、逐步推進(jìn):

第一階段:?jiǎn)栴}確認(rèn)與隔離

1.1 檢查 MySQL 日志確認(rèn)癥狀

查看 mysqld.err 或 MySQL 日志是否存在以下關(guān)鍵詞:

  • InnoDB: Operating system error number 5
  • InnoDB: Unable to read page
  • InnoDB: corruption
  • Got error -1 from storage engine
  • IO error 5 / IO error 13
  • 實(shí)例崩潰、自動(dòng)重啟堆棧信息(signal 11)

1.2 確認(rèn)是否磁盤(pán) I/O 層問(wèn)題

使用如下工具:

dmesg | grep -i error
dmesg | grep -i sda  # 根據(jù)你使用的磁盤(pán)設(shè)備

重點(diǎn)關(guān)注如:

Buffer I/O error on device /dev/sda3, logical block 123456
EXT4-fs error (device sda3): ...

第二階段:應(yīng)急保護(hù)與備份

2.1 立即備份其他健康數(shù)據(jù)

  • 使用 mysqldumpxtrabackup、cp 等方式備份未受影響的庫(kù)/表。
  • 防止壞塊擴(kuò)大損害。

2.2 停止寫(xiě)入請(qǐng)求

可通過(guò) FLUSH TABLES WITH READ LOCK; 鎖定全局讀??;

或直接將 MySQL 實(shí)例切換為只讀:

SET GLOBAL read_only = ON;

第三階段:診斷壞塊位置與影響

3.1 使用 badblocks 工具檢測(cè)磁盤(pán)壞塊

badblocks -sv /dev/sda > badblocks.txt
  • 可配合 fsck、e2fsck 使用映射壞塊文件排查表空間損壞。

3.2 確認(rèn)受損數(shù)據(jù)文件位置(特別是 .ibd 文件)

ls -lh /var/lib/mysql/databasename/
file /var/lib/mysql/databasename/table.ibd

可配合 strace -f -p $(pidof mysqld) 跟蹤是否某個(gè) .ibd 文件訪(fǎng)問(wèn)時(shí)報(bào)錯(cuò)。

第四階段:修復(fù)受影響表或表空間

4.1 若只影響單表,可嘗試以下修復(fù)操作:

方法A:導(dǎo)出可導(dǎo)出的數(shù)據(jù)后刪除表

SELECT * FROM problem_table INTO OUTFILE '/tmp/backup.csv';
TRUNCATE TABLE problem_table;
DROP TABLE problem_table;

方法B:將表移出數(shù)據(jù)目錄再?lài)L試 DROP

systemctl stop mysqld
mv /var/lib/mysql/dbname/problem_table.ibd /tmp/
systemctl start mysqld

# 然后登錄 MySQL 執(zhí)行:
DROP TABLE dbname.problem_table;

注意這樣會(huì)讓 InnoDB 報(bào)告表空間文件不存在,但通??商^(guò) DROP 階段的 crash。

方法C:使用 innodb_force_recovery 修復(fù)

編輯 my.cnf 添加:

[mysqld]
innodb_force_recovery=1

數(shù)值從 1 到 6 逐級(jí)遞增(數(shù)值越高風(fēng)險(xiǎn)越大,建議從 1 開(kāi)始測(cè)試)

然后重啟 MySQL,再?lài)L試導(dǎo)出或 DROP 表。

第五階段:系統(tǒng)層修復(fù)或替換磁盤(pán)

5.1 標(biāo)記/屏蔽壞塊(臨時(shí)措施,不推薦長(zhǎng)期使用)

e2fsck -l badblocks.txt /dev/sda3

5.2 若壞塊不可控,推薦更換磁盤(pán)

  • 使用 ddrescue 拷貝數(shù)據(jù)至新磁盤(pán);
  • 全量備份 + 恢復(fù)到新設(shè)備是最終手段。

附:innodb_force_recovery 參數(shù)說(shuō)明

含義風(fēng)險(xiǎn)級(jí)別
1跳過(guò) insert buffer 的恢復(fù)安全
2跳過(guò) redo log 的應(yīng)用
3跳過(guò) undo log 恢復(fù)
4不執(zhí)行 purge 操作
5不執(zhí)行 insert buffer 合并
6禁止雙寫(xiě)緩沖,跳過(guò)一切恢復(fù)流程極高

總結(jié):MySQL 磁盤(pán)壞塊處理建議

步驟行動(dòng)目的
1確認(rèn)日志、dmesg、壞塊位置確認(rèn)是否真為磁盤(pán)故障
2備份健康數(shù)據(jù)防止壞塊擴(kuò)散影響
3使用 TRUNCATE 或 rename + DROP規(guī)避觸發(fā) I/O 錯(cuò)誤
4啟用 innodb_force_recovery 修復(fù)數(shù)據(jù)導(dǎo)出和表結(jié)構(gòu)清理
5標(biāo)記壞塊或更換磁盤(pán)根除問(wèn)題源頭

如果你能提供 mysqld.errdmesg 日志中具體的報(bào)錯(cuò)信息,我可以幫你進(jìn)一步診斷。需要我協(xié)助你寫(xiě)具體的修復(fù)操作腳本也可以。

到此這篇關(guān)于MySQL磁盤(pán)壞塊處理的全流程的文章就介紹到這了,更多相關(guān)MySQL磁盤(pán)壞塊處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux下MySQL 5.5.8 源碼編譯安裝記錄分享

    Linux下MySQL 5.5.8 源碼編譯安裝記錄分享

    Linux下MySQL 5.5.8 源碼編譯安裝記錄分享,需要的朋友可以參考下。
    2011-10-10
  • IDEA連接不上MySQL端口號(hào)占用的解決

    IDEA連接不上MySQL端口號(hào)占用的解決

    這篇文章主要介紹了IDEA連接不上MySQL端口號(hào)占用的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • mysql 判斷記錄是否存在方法比較

    mysql 判斷記錄是否存在方法比較

    把數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)的時(shí),常常會(huì)碰到先要檢測(cè)要插入的記錄是否存在,然后決定是否要寫(xiě)入。
    2011-08-08
  • mysql連續(xù)聚合原理與用法實(shí)例分析

    mysql連續(xù)聚合原理與用法實(shí)例分析

    這篇文章主要介紹了mysql連續(xù)聚合原理與用法,結(jié)合實(shí)例形式分析了mysql連續(xù)聚合的原理、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • MySQL導(dǎo)入數(shù)據(jù)權(quán)限問(wèn)題的解決

    MySQL導(dǎo)入數(shù)據(jù)權(quán)限問(wèn)題的解決

    本文主要介紹了MySQL導(dǎo)入數(shù)據(jù)權(quán)限問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • MySQL表操作及查詢(xún)功能詳解

    MySQL表操作及查詢(xún)功能詳解

    在MySQL中,表操作主要包括創(chuàng)建表、修改表結(jié)構(gòu)、刪除表以及查詢(xún)表數(shù)據(jù)等,本文給大家介紹MySQL表操作及查詢(xún)功能,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • MySQL多表查詢(xún)內(nèi)連接外連接詳解(使用join、left?join、right?join和full?join)

    MySQL多表查詢(xún)內(nèi)連接外連接詳解(使用join、left?join、right?join和full?join)

    這篇文章主要給大家介紹了關(guān)于MySQL多表查詢(xún)內(nèi)連接外連接的相關(guān)資料,文中主要介紹的是使用join、left?join、right?join和full?join,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • MySQL進(jìn)行JSON復(fù)雜查詢(xún)的完全指南

    MySQL進(jìn)行JSON復(fù)雜查詢(xún)的完全指南

    這篇文章主要為大家詳細(xì)介紹了MySQL中進(jìn)行JSON復(fù)雜查詢(xún)的相關(guān)知識(shí),包括從等值判斷到深度搜索,文中的示例代碼講解詳細(xì),感興趣的喜歡可以了解下
    2025-07-07
  • windows10安裝mysql5.7.18教程

    windows10安裝mysql5.7.18教程

    windows10安裝mysql5.7.18是這樣安裝的嗎?這篇文章主要為大家詳細(xì)介紹了win10下mysql5.7.18安裝配置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • MySQL中復(fù)制數(shù)據(jù)表中的數(shù)據(jù)到新表中的操作教程

    MySQL中復(fù)制數(shù)據(jù)表中的數(shù)據(jù)到新表中的操作教程

    這篇文章主要介紹了MySQL中復(fù)制數(shù)據(jù)表中的數(shù)據(jù)到新表中的操作教程,文中分為新表存在和新表不存在兩種情況來(lái)講,需要的朋友可以參考下
    2016-03-03

最新評(píng)論

航空| 集安市| 临漳县| 南昌市| 瑞安市| 青阳县| 永善县| 东平县| 普兰县| 平舆县| 江门市| 弥渡县| 林周县| 鹤岗市| 虞城县| 栖霞市| 廊坊市| 博白县| 和田县| 阿拉善左旗| 北海市| 通化市| 广元市| 乐亭县| 方正县| 平远县| 金阳县| 芦山县| 成都市| 安庆市| 晋江市| 榆树市| 洛隆县| 治县。| 伊金霍洛旗| 桐柏县| 得荣县| 馆陶县| 西充县| 多伦县| 宁远县|