線上加索引出現MySQL與InnoDB索引數量不相同報錯

dbinsight發表於2013-09-30
環境:MySQL 5.5.24 on Linux
描述:凌晨未停機實施新增索引的變更,add key的sql正常執行完成,但變更後收到下面的告警,在err log有以下記錄:
13093007:26:38 [ERROR] Table db.tbl contains 2 indexes inside InnoDB, which is different from
the number of indexes 1 defined in the MySQL .

登入mysql,show create table db.tbl顯示確實是2個索引,說明現在frm中記錄也是正常的。

根據博主的描述,出現這種問題,應該是MySQL新特性“Fast index creation in Innodb”所導致的問題。在MySQL上層及InnoDB底層增加索引的操作是非同步的,在Innodb已經完成變更,MySQL上層frm還沒有更新,如果有新的連線來開啟表,都可能出現MySQL與InnoDB表物件資訊不一致的情況。

這個錯誤可以正常忽略。
如果後續訪問該表還存在類似的報錯,可以使用aler table engine=innodb進行修復。

延伸:儘量選擇在業務停機時再進行DDL操作!




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29154652/viewspace-773646/,如需轉載,請註明出處,否則將追究法律責任。

相關文章