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

MySQL有壞快后drop表就crash了的解決方案

 更新時(shí)間:2025年07月24日 09:20:35   作者:喝醉酒的小白  
直接DROP可能因磁盤壞塊觸發(fā)I/O錯(cuò)誤導(dǎo)致MySQL崩潰重啟,而TRUNCATE先清空數(shù)據(jù)再DROP可規(guī)避風(fēng)險(xiǎn)(邏輯操作不直接訪問文件),推薦方法:TRUNCATE+DROP或手動(dòng)刪除.ibd文件,確保數(shù)據(jù)完整性

MySQL 內(nèi)部的處理機(jī)制和磁盤壞塊導(dǎo)致的異常行為。

為什么直接 DROP 會(huì)導(dǎo)致 MySQL 自動(dòng)重啟?

原因:文件系統(tǒng)或磁盤壞塊導(dǎo)致的崩潰

DROP TABLE 會(huì)觸發(fā)物理文件刪除

  • DROP 會(huì)直接嘗試刪除 .ibd(獨(dú)立表空間)或表在共享表空間中的元數(shù)據(jù)和數(shù)據(jù)頁(yè)。
  • 如果這個(gè)物理文件所在磁盤存在壞塊(bad sector),系統(tǒng)級(jí) unlink() 操作(刪除文件)可能觸發(fā)內(nèi)核級(jí) I/O 錯(cuò)誤。

InnoDB 崩潰保護(hù)機(jī)制觸發(fā)

  • InnoDB 遇到不能處理的 I/O 錯(cuò)誤時(shí)(如文件系統(tǒng)異常),為了保護(hù)數(shù)據(jù)完整性,會(huì)觸發(fā) crash recovery,即讓 MySQL 實(shí)例自動(dòng)崩潰、重啟,以避免進(jìn)一步破壞數(shù)據(jù)頁(yè)或 redo log。

為什么先 TRUNCATE 再 DROP 可以?

TRUNCATE 是邏輯操作,不會(huì)立即刪除物理文件,而是清空數(shù)據(jù)并重置表的結(jié)構(gòu)。

TRUNCATE 做了什么?

  • InnoDB 通過撤銷表空間的數(shù)據(jù)元信息,將表置空;
  • 這個(gè)過程可能并不會(huì)立即訪問壞塊處的 .ibd 文件內(nèi)容或不觸發(fā) I/O 操作。

隨后 DROP 才真正刪除表結(jié)構(gòu).ibd 文件;

  • 此時(shí)因?yàn)?TRUNCATE 操作可能“清理”了一些元數(shù)據(jù)或觸發(fā)了延遲刪除,使得系統(tǒng)避開了立即接觸壞塊,從而成功執(zhí)行 DROP。

如何處理該類問題?

 方法一:“溫和繞過法”

執(zhí)行:

TRUNCATE TABLE your_table;
DROP TABLE your_table;
  • 讓文件內(nèi)容清空后再 DROP,降低觸發(fā)底層 I/O 錯(cuò)誤的概率。

方法二:修改表空間定義,繞過壞塊

如果你使用的是 innodb_file_per_table=1,可以嘗試:

先 RENAME 表到一個(gè)臨時(shí)名字

RENAME TABLE your_table TO temp_table;

避免 DROP 時(shí)直接訪問原路徑,可嘗試刪除 .ibd 文件前先 detach(需要慎用)

方法三:使用操作系統(tǒng)級(jí)工具手動(dòng)處理壞塊

如果問題持續(xù),可使用:

  • smartctl / badblocks 檢查磁盤健康;
  • 嘗試用 dd 命令強(qiáng)制讀取并隔離壞塊(高危操作);
  • 考慮在掛載磁盤時(shí)使用 errors=continue 之類選項(xiàng)(不推薦生產(chǎn)使用);

方法四:使用 ibd 文件方式強(qiáng)制剝離表

如果你能接受丟棄該表:

  1. 停止 MySQL;
  2. 手動(dòng)刪除表對(duì)應(yīng)的 .ibd 文件;
  3. 啟動(dòng) MySQL;
  4. DROP TABLE your_table;(不會(huì)報(bào)錯(cuò)因?yàn)槲募巡淮嬖冢?/li>

強(qiáng)刪文件前請(qǐng)確保該表無(wú)數(shù)據(jù)可恢復(fù)需求!否則可能影響 InnoDB 一致性!

附加建議

檢查 error.log 中是否出現(xiàn)如下信息:

InnoDB: Operating system error number 5 in a file operation.
InnoDB: The error means MySQL doesn't have the access rights to the directory.

InnoDB: IO error 5 writing page ...

這些都能進(jìn)一步驗(yàn)證是 I/O 層問題導(dǎo)致重啟。

結(jié)論總結(jié)

操作是否訪問磁盤壞塊是否高危是否推薦
DROP是(高概率)?高危?若磁盤有壞塊
TRUNCATE通常不會(huì)?較安全?推薦先做
TRUNCATE + DROP?可能成功規(guī)避?中等風(fēng)險(xiǎn)?推薦
手動(dòng)刪除 .ibd?系統(tǒng)級(jí)操作??高危?需慎用

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL 常用函數(shù)總結(jié)

    MySQL 常用函數(shù)總結(jié)

    這篇文章主要介紹了一些MySQL 常用函數(shù)的總結(jié),文中講解非常細(xì)致,幫助大家更好的學(xué)習(xí)mysql,感興趣的朋友可以了解下
    2020-08-08
  • MySQL配置文件my.cnf中文版對(duì)照

    MySQL配置文件my.cnf中文版對(duì)照

    MySQL配置文件my.cnf中文版,使用mysql的朋友可以參考下,了解每個(gè)參數(shù)的重要性。
    2011-09-09
  • CentOS7 通過YUM安裝MySQL5.7的步驟詳解

    CentOS7 通過YUM安裝MySQL5.7的步驟詳解

    這篇文章主要介紹了CentOS7 通過YUM安裝MySQL5.7的步驟詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • MySQL高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn)

    MySQL高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn)

    這篇文章主要介紹了MySQL高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 解析MySQL binlog

    解析MySQL binlog

    我們都知道,binlog可以說是MySQL中比較重要的日志了,在日常學(xué)習(xí)及運(yùn)維過程中,也經(jīng)常會(huì)遇到。不清楚你對(duì)binlog了解多少呢?本篇文章將從binlog作用、binlog相關(guān)參數(shù)、解析binlog內(nèi)容三個(gè)方面帶你了解binlog
    2021-06-06
  • MySQL 權(quán)限控制詳解

    MySQL 權(quán)限控制詳解

    這篇文章主要介紹了MySQL 權(quán)限控制詳解的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • MySQL主鍵和外鍵詳細(xì)的解釋和操作步驟

    MySQL主鍵和外鍵詳細(xì)的解釋和操作步驟

    主鍵是表中的一列或一組列,用于唯一標(biāo)識(shí)表中的每一行數(shù)據(jù),每個(gè)表只能有一個(gè)主鍵,并且主鍵的值不能重復(fù),這篇文章主要介紹了MySQL主鍵和外鍵詳細(xì)的解釋和操作步驟,需要的朋友可以參考下
    2025-12-12
  • SQL計(jì)算timestamp的差值的方法

    SQL計(jì)算timestamp的差值的方法

    這篇文章主要介紹了SQL計(jì)算timestamp的差值的方法的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • mysql query browser中文亂碼的解決方法

    mysql query browser中文亂碼的解決方法

    在網(wǎng)上也搜看了一下再mysql query browser中解決中文亂碼的問題,答案各不相同
    2010-09-09
  • 關(guān)于MySQL的存儲(chǔ)函數(shù)(自定義函數(shù))的定義和使用方法詳解

    關(guān)于MySQL的存儲(chǔ)函數(shù)(自定義函數(shù))的定義和使用方法詳解

    本文主要講解了關(guān)于MySQL的存儲(chǔ)函數(shù)(自定義函數(shù))的定義和使用方法詳解與存儲(chǔ)函數(shù)與存儲(chǔ)過程的區(qū)別
    2018-03-03

最新評(píng)論

小金县| 达日县| 邹平县| 武汉市| 宽城| 山东省| 香格里拉县| 陆河县| 秭归县| 偏关县| 湖州市| 临桂县| 闸北区| 贵南县| 马龙县| 宁远县| 宣化县| 临沧市| 福州市| 黄龙县| 南溪县| 庄浪县| 隆回县| 安顺市| 邯郸市| 榆树市| 屏山县| 轮台县| 荃湾区| 壶关县| 临夏市| 门头沟区| 顺昌县| 平利县| 阳新县| 东明县| 鄂托克前旗| 北海市| 神农架林区| 胶南市| 清水县|