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

解決MySQL數(shù)據(jù)庫(kù)意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無(wú)法啟動(dòng)的問(wèn)題

 更新時(shí)間:2020年07月20日 10:46:41   作者:liucx  
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無(wú)法啟動(dòng)的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

問(wèn)題故障:

MySQL數(shù)據(jù)庫(kù)意外崩潰,一直無(wú)法啟動(dòng)數(shù)據(jù)庫(kù)。

報(bào)錯(cuò)日志:

啟動(dòng)報(bào)錯(cuò):service mysqld restart

ERROR! MySQL server PID file could not be found!
Starting MySQL. ERROR! The server quit without updating PID file (/www/wdlinux/mysql/var/iZ2358oz5deZ.pid).

數(shù)據(jù)庫(kù)error日志:

200719 22:07:43 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Error: trying to add tablespace 840 of name './ob_wp/ob_termmeta.ibd'
InnoDB: to the tablespace memory cache, but tablespace
InnoDB: 840 of name './dev_nss/dg_queue.ibd' already exists in the tablespace
InnoDB: memory cache!
200719 22:07:43 mysqld_safe mysqld from pid file /www/wdlinux/mysql/var/iZ2358oz5deZ.pid ended

提示:數(shù)據(jù)庫(kù)啟動(dòng)時(shí)讀取表空間信息時(shí),ob-wp庫(kù)中的表ob_users.ibd表數(shù)據(jù)文件已存在于表空間中。

拓展:

存儲(chǔ)引擎是myisam, 在數(shù)據(jù)庫(kù)目錄下會(huì)看到3類文件:.frm、.myi、.myd
(a) *.frm--表定義,是描述表結(jié)構(gòu)的文件。
(b) *.MYD--"D"數(shù)據(jù)信息文件,是表的數(shù)據(jù)文件。
(c) *.MYI--"I"索引信息文件,是表數(shù)據(jù)文件中任何索引的數(shù)據(jù)樹
存儲(chǔ)引擎是InnoDB, 在data目錄下會(huì)看到2類文件:.frm、.ibd
(a) *.frm--表結(jié)構(gòu)的文件。
(b) *.ibd--表數(shù)據(jù)文件

出處:https://www.cnblogs.com/liucx/

方法一:

根據(jù)提示信息判定該InnoDB表?yè)p壞,于是嘗試將dev_nss庫(kù)目錄中的表結(jié)構(gòu)和表數(shù)據(jù)文件備份
mv ob_termmeta.ibd ob_termmeta.ibd,bak
mv ob_termmeta.frm ob_termmeta.frm.bak
然后重啟了下mysql,發(fā)現(xiàn)還是無(wú)法啟動(dòng),提示其他表數(shù)據(jù)文件已存在,連續(xù)3次將已損壞的文件備份,還是無(wú)法啟動(dòng)。故放棄此方法。

方法二:

1.查閱官網(wǎng)文檔,在mysql配置文件中/etc/my.cnf添加配置,成功啟動(dòng)
[mysqld]
innodb_force_recovery = 1

2.備份數(shù)據(jù)庫(kù)
mysqldump -h172.168.2.100 -uroot -p -A > mysql_all_bak.sql
如遇報(bào)表不存在,mysqldump可以添加參數(shù):--force ,跳過(guò)錯(cuò)誤

3.刪除數(shù)據(jù)庫(kù)
drop database hxdb; 或者將數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)目錄 mv hxdb hxdb_bak (保險(xiǎn))

4.去掉參數(shù) innodb_force_recovery
將之前設(shè)置的參數(shù)去掉后,重新啟動(dòng)數(shù)據(jù)庫(kù)

5.導(dǎo)入數(shù)據(jù)
mysql -uroot -p < mysql_all_bak.sql
Warning: Using a password on the command line interface can be insecure.
ERROR 1050 (42S01) at line 25: Table '`hxdb`.`tb_info`' already exists

如果提示表已經(jīng)存在,這是因?yàn)閷nnodb_force_recovery參數(shù)去掉后,數(shù)據(jù)庫(kù)會(huì)進(jìn)行回滾操作,會(huì)生成相應(yīng)的ibd文件,所以需要將該文件刪除掉,刪除后重新導(dǎo)入
mysql -uroot -p < mysql_all_bak.sql

注:

innodb_force_recovery參數(shù)解釋:崩潰恢復(fù)模式,通常只有在嚴(yán)重故障排除情況下才會(huì)改變??梢缘闹凳菑?到6。

只有在緊急情況下才將這個(gè)變量設(shè)置為大于0的值,這樣你才能啟動(dòng)InnoDB并轉(zhuǎn)儲(chǔ)你的表。作為一種安全措施,當(dāng)innodb_force_recovery大于0時(shí),InnoDB可以防止插入、更新或刪除操作。
在5.6.15,innodb_force_recovery設(shè)置為4或更大,將InnoDB設(shè)置為只讀模式。由于relay_log_info_repository=TABLE和master_info_repository=TABLE在InnoDB表中存儲(chǔ)信息,這些限制可能導(dǎo)致復(fù)制管理命令失敗并出現(xiàn)錯(cuò)誤。

innodb_force_recovery默認(rèn)情況下為0(正常啟動(dòng)而不強(qiáng)制恢復(fù))。允許的非零值 innodb_force_recovery是1到6。較大的值包括較小值的功能。例如,值3包含值1和2的所有功能。
如果能夠轉(zhuǎn)儲(chǔ) innodb_force_recovery值為3或更小的表,則相對(duì)安全的是,僅丟失損壞的單個(gè)頁(yè)面上的某些數(shù)據(jù)。4或更大的值被認(rèn)為是危險(xiǎn)的,因?yàn)閿?shù)據(jù)文件可能會(huì)永久損壞。值6被認(rèn)為是過(guò)分的,因?yàn)閿?shù)據(jù)庫(kù)頁(yè)面處于過(guò)時(shí)狀態(tài),這反過(guò)來(lái)可能會(huì)使B樹 和其他數(shù)據(jù)庫(kù)結(jié)構(gòu)遭受更多破壞。

為了安全起見,請(qǐng)InnoDB防止 INSERT, UPDATE或 DELETE在innodb_force_recovery大于0 時(shí)進(jìn)行操作 。從MySQL 5.6.15開始, 在只讀模式下innodb_force_recovery設(shè)置4個(gè)或更多位置InnoDB。
1 (SRV_FORCE_IGNORE_CORRUPT)
讓服務(wù)器運(yùn)行,即使它檢測(cè)到一個(gè)損壞的頁(yè)面。嘗試讓SELECT * FROM tbl_name跳過(guò)損壞的索引記錄和頁(yè)面,這有助于轉(zhuǎn)儲(chǔ)表。
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ū)合并操作。如果它們會(huì)導(dǎo)致崩潰,就不要做。不計(jì)算表統(tǒng)計(jì)信息。此值可能永久損壞數(shù)據(jù)文件。使用此值后,準(zhǔn)備刪除并重新創(chuàng)建所有二級(jí)索引。在MySQL 5.6.15中,將InnoDB設(shè)置為只讀。
5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
啟動(dòng)數(shù)據(jù)庫(kù)時(shí)不要查看撤銷日志:InnoDB甚至?xí)⑽赐瓿傻氖聞?wù)視為已提交。此值可能永久損壞數(shù)據(jù)文件。在MySQL 5.6.15中,將InnoDB設(shè)置為只讀。
6 (SRV_FORCE_NO_LOG_REDO)
在恢復(fù)時(shí)不執(zhí)行重做日志前滾。此值可能永久損壞數(shù)據(jù)文件。使數(shù)據(jù)庫(kù)頁(yè)面處于過(guò)時(shí)狀態(tài),這反過(guò)來(lái)可能會(huì)給b -樹和其他數(shù)據(jù)庫(kù)結(jié)構(gòu)帶來(lái)更多損壞。在MySQL 5.6.15中,將InnoDB設(shè)置為只讀。

出處:https://www.cnblogs.com/liucx/

參閱官網(wǎng):
https://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_force_load_corrupted

希望能幫到你

到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無(wú)法啟動(dòng)的問(wèn)題解決的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)庫(kù)意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無(wú)法啟動(dòng)的問(wèn)題解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • CentOS 6、7下mysql 5.7 詳細(xì)安裝教程

    CentOS 6、7下mysql 5.7 詳細(xì)安裝教程

    這篇文章主要為大家介紹了CentOS 6、7下mysql 5.7 詳細(xì)安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • MySql中modify、rename、change的使用及區(qū)別

    MySql中modify、rename、change的使用及區(qū)別

    這篇文章主要介紹了MySql中modify、rename、change的使用及區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • MySQL中的時(shí)區(qū)設(shè)置方式

    MySQL中的時(shí)區(qū)設(shè)置方式

    這篇文章主要介紹了MySQL中的時(shí)區(qū)設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理

    MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理

    這篇文章主要介紹了MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理,MVCC多版本并發(fā)控制,MySQL中一種并發(fā)控制的方法,他主要是為了提高數(shù)據(jù)庫(kù)的讀寫性能,用更好的方式去處理讀寫沖突
    2022-08-08
  • 聊一聊MyISAM和InnoDB的區(qū)別

    聊一聊MyISAM和InnoDB的區(qū)別

    這篇文章主要介紹了聊一聊MyISAM和InnoDB的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 詳解mysql 組合查詢

    詳解mysql 組合查詢

    這篇文章主要介紹了詳解mysql 組合查詢的的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-12-12
  • mysql 觸發(fā)器用法實(shí)例詳解

    mysql 觸發(fā)器用法實(shí)例詳解

    這篇文章主要介紹了mysql 觸發(fā)器用法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • navicat不能創(chuàng)建函數(shù)解決方法分享

    navicat不能創(chuàng)建函數(shù)解決方法分享

    這篇文章主要介紹了navicat不能創(chuàng)建函數(shù)解決方法分享,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • MySQL數(shù)據(jù)庫(kù)的一次死鎖實(shí)例分析

    MySQL數(shù)據(jù)庫(kù)的一次死鎖實(shí)例分析

    本文主要給大家通過(guò)一個(gè)實(shí)例來(lái)具體介紹MySQL死鎖問(wèn)題的相關(guān)知識(shí),接下來(lái)我們就來(lái)一一介紹這部分內(nèi)容,希望能夠?qū)δ兴鶐椭?/div> 2016-11-11
  • MySQL 8.0.19安裝詳細(xì)教程(windows 64位)

    MySQL 8.0.19安裝詳細(xì)教程(windows 64位)

    這篇文章主要介紹了MySQL 8.0.19安裝詳細(xì)教程(windows 64位),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

交城县| 明星| 嘉义市| 韶山市| 图木舒克市| 宾阳县| 漾濞| 襄汾县| 辽中县| 五大连池市| 桂平市| 宾川县| 年辖:市辖区| 西贡区| 陇川县| 深圳市| 长顺县| 广州市| 龙井市| 甘南县| 虞城县| 北票市| 嘉义市| 犍为县| 勃利县| 广灵县| 延吉市| 曲水县| 北票市| 平江县| 阿鲁科尔沁旗| 合水县| 龙川县| 漾濞| 徐汇区| 合山市| 麻阳| 永嘉县| 连平县| 泾阳县| 枣强县|