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

mysql?強(qiáng)制InnoDB恢復(fù)innodb_force_recovery詳解

 更新時間:2026年07月29日 09:20:29   作者:yangydq  
MySQL5.7中若InnoDB數(shù)據(jù)頁面損壞導(dǎo)致崩潰,可通過設(shè)置innodb_force_recovery參數(shù)強(qiáng)制啟動并導(dǎo)出數(shù)據(jù),本文詳解6個恢復(fù)級別的使用,教你安全使用SELECT?INTO?OUTFILE轉(zhuǎn)儲表,避免永久性數(shù)據(jù)文件損壞

mysql5.7 強(qiáng)制 InnoDB 恢復(fù)

要調(diào)查數(shù)據(jù)庫頁面損壞,您可以使用 SELECT … INTO OUTFILE. 通常,通過這種方式獲得的大部分?jǐn)?shù)據(jù)都是完整的。嚴(yán)重的損壞可能導(dǎo)致語句或 后臺操作意外退出或斷言,甚至導(dǎo)致 前滾恢復(fù)崩潰。在這種情況下,您可以使用該 選項來強(qiáng)制啟動存儲引擎,同時阻止后臺操作運(yùn)行,以便您可以轉(zhuǎn)儲表。例如,您可以在重新啟動服務(wù)器之前將以下行添加到選項文件的部分:

[mysqld]
innodb_force_recovery = 1

有關(guān)使用選項文件的信息,請參閱 第 4.2.2.2 節(jié),“使用選項文件”。

警告
僅innodb_force_recovery 在緊急情況下設(shè)置為大于 0 的值,以便您可以啟動InnoDB和轉(zhuǎn)
儲您的表。在這樣做之前,請確保您擁有數(shù)據(jù)庫的備份副本,以防需要重新創(chuàng)建它。4 或
更大的值可能會永久損壞數(shù)據(jù)文件。僅 innodb_force_recovery在您在數(shù)據(jù)庫的單獨(dú)物理副
本上成功測試設(shè)置后,才能在生產(chǎn)服務(wù)器實(shí)例上使用 4 或更高的設(shè)置。強(qiáng)制InnoDB恢復(fù)
時,您應(yīng)該始終從該值開始, innodb_force_recovery=1并且只在必要時逐步增加該值。

innodb_force_recovery默認(rèn)為0(正常啟動,不強(qiáng)制恢復(fù))。允許的非零值為 innodb_force_recovery1 到 6。較大的值包括較小值的功能。例如,值 3 包括值 1 和 2 的所有功能。

如果您能夠以 innodb_force_recovery 3 或更小的值轉(zhuǎn)儲您的表,那么您相對安全,只有損壞的單個頁面上的一些數(shù)據(jù)會丟失。4 或更大的值被認(rèn)為是危險的,因為數(shù)據(jù)文件可能會永久損壞。值 6 被認(rèn)為是極端的,因為數(shù)據(jù)庫頁面處于過時狀態(tài),這反過來可能會給B 樹 和其他數(shù)據(jù)庫結(jié)構(gòu)帶來更多損壞。

作為安全措施,InnoDB防止 INSERT、 UPDATE、 或 大于 0DELETE時的操作 。只讀模式下 4 位或更多位的設(shè)置。

1 (SRV_FORCE_IGNORE_CORRUPT)

讓服務(wù)器即使檢測到損壞的 頁面也能運(yùn)行。嘗試 跳過損壞的索引記錄和頁面,這有助于轉(zhuǎn)儲表。 SELECT * FROM tbl_name

2 (SRV_FORCE_NO_BACKGROUND)

阻止主線程和任何清除線程運(yùn)行。如果在清除操作期間發(fā)生意外退出,此恢復(fù)值會阻止它。

3 (SRV_FORCE_NO_TRX_UNDO)

崩潰恢復(fù)后 不運(yùn)行事務(wù) 回滾。

4 (SRV_FORCE_NO_IBUF_MERGE)

防止插入緩沖區(qū)合并操作。如果它們會導(dǎo)致崩潰,請不要這樣做。不計算表 統(tǒng)計信息。此值可能會永久損壞數(shù)據(jù)文件。使用此值后,準(zhǔn)備刪除并重新創(chuàng)建所有二級索引。設(shè)置 InnoDB為只讀。

5 (SRV_FORCE_NO_UNDO_LOG_SCAN)

啟動數(shù)據(jù)庫時 不查看撤消日志InnoDB:甚至將不完整的事務(wù)視為已提交。此值可能會永久損壞數(shù)據(jù)文件。設(shè)置InnoDB為只讀。

6 (SRV_FORCE_NO_LOG_REDO)

不執(zhí)行與恢復(fù)相關(guān)的重做日志 前滾。此值可能會永久損壞數(shù)據(jù)文件。使數(shù)據(jù)庫頁面處于過時狀態(tài),這反過來可能會給 B 樹和其他數(shù)據(jù)庫結(jié)構(gòu)帶來更多損壞。設(shè)置 InnoDB為只讀。

您可以SELECT從表中轉(zhuǎn)儲它們。innodb_force_recovery值為 3 或更少時,您可以或 DROP表格 CREATE。DROP TABLE也支持 innodb_force_recovery大于 3 的值,直到 MySQL 5.7.17。從 MySQL 5.7.18 開始, DROP TABLE不允許使用 innodb_force_recovery大于 4 的值。

如果您知道給定表導(dǎo)致回滾時意外退出,則可以將其刪除。如果遇到由于批量導(dǎo)入失敗而導(dǎo)致的失控回滾ALTER TABLE,您可以終止 mysqld 進(jìn)程并設(shè)置 innodb_force_recovery為 3在不回滾的情況下啟動數(shù)據(jù)庫,然后DROP是導(dǎo)致失控回滾的表。

如果表數(shù)據(jù)中的損壞阻止您轉(zhuǎn)儲整個表內(nèi)容,則帶有子句的查詢可能能夠轉(zhuǎn)儲損壞部分之后的表部分。 ORDER BY primary_key DESC

innodb_force_recovery 如果start 需要 一個高值InnoDB,則可能存在損壞的數(shù)據(jù)結(jié)構(gòu),這可能導(dǎo)致復(fù)雜查詢(包含WHERE、ORDER BY或其他子句的查詢)失敗。在這種情況下,您可能只能運(yùn)行基本SELECT * FROM t 查詢。

到此這篇關(guān)于mysql 強(qiáng)制InnoDB恢復(fù)innodb_force_recovery詳解的文章就介紹到這了,更多相關(guān)mysql InnoDB恢復(fù)innodb_force_recovery內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

泽库县| 四川省| 大姚县| 怀安县| 建瓯市| 郎溪县| 克什克腾旗| 安岳县| 丰顺县| 剑河县| 太康县| 西乌珠穆沁旗| 长白| 五原县| 瑞丽市| 井研县| 温州市| 沙湾县| 普安县| 诸城市| 承德县| 榆林市| 阳谷县| 雷州市| 黑山县| 贵州省| 绥滨县| 盐亭县| 辽阳市| 大厂| 昌乐县| 石楼县| 花垣县| 鄂温| 天长市| 萨迦县| 探索| 鄂州市| 龙胜| 乐昌市| 高陵县|