Mysql報錯:Tablespace is missing for table ‘db_rsk/XXX」

硬盤空間滿致使mysql ibd文件被刪後提示Tablespace is missing for table ‘db_rsk/XXX「html

昨天一早,開發人員反饋說一個測試環境報Tablespace is missing for table ‘db_rsk/XXX「,週末剛升級過,特意讓開發回去查了下,說腳本中確定沒有drop table的操做。datadir下檢查了下,發現frm文件在的ibd文件沒有了,bing了下,沒發現相似異常。因而先回到mysql.err往回搜索,半天后發現上週五下午mysql出現了一次異常宕機,說是磁盤空間不足了,看日誌該文件被損壞了,以下:mysql

171128 10:09:29  InnoDB: cannot calculate statistics for table gadmobe/cpi_partner
InnoDB: because the .ibd file is missing.  For help, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
171128 10:09:29 [ERROR] MySQL is trying to open a table handle but the .ibd file for
table gadmobe/cpi_partner does not exist.
Have you deleted the .ibd file from the database directory under
the MySQL datadir, or have you used DISCARD TABLESPACE?
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html

隨後後臺就一直報 ibd file is missing。sql

找到問題了,解決就方便了,找個備份,把這張表從新導入進去就能夠了。oracle

補充:若是從新建立的時候出現相似「 「db_rsk」.」tb_rsk_compliancecalcservice」」已存在的提示,drop的時候又出現unkown table 「db_rsk」.」tb_rsk_compliancecalcservice」的狀況,則先刪除data目錄下對應表的ibd和frm文件,而後使用mysqladmin shutdown, mysqld_safe乾淨的重啓,不要kill -9。不然,該錯誤可能會一直存在。測試

這說回來,mysql的容錯程度比oracle好多了,oracle異常後恢復的時候常常要resetlogs,有些時候連resetlogs也會失敗。spa

相關文章
相關標籤/搜索