| 導購 | 订阅 | 在线投稿
分享
 
 
 

解析:輕松了解 MySQL中損壞的MyISAM表

來源:互聯網  2008-05-31 23:51:50  評論

即使MyISAM表格式非常可靠(SQL語句對表做的所有改變在語句返回之前被寫下),如果下列任何事件發生,你依然可以獲得損壞的表:

· mysqld進程在寫中間被殺掉。

· 發生未預期的計算機關閉(例如,計算機被關閉)。

· 硬件故障。

· 你可以同時在正被服務器修改的表上使用外部程序(如myisamchk)。

· MySQL或MyISAM代碼的軟件缺陷。

一個損壞的表的典型症狀如下:

· 當在從表中選擇數據之時,你得到如下錯誤:

· Incorrect key file for table: '...'. Try to repair it

· 查詢不能在表中找到行或返回不完全的數據。

你可以用CHECK TABLE statement語句來檢查MyISAM表的健康,並用REPAIR TABLE修複一個損壞的MyISAM表。當mysqld不運行之時,你也可以用myisamchk命令檢查或修理一個表。

如果你的表變得頻繁損壞,你應該試著確定爲什麽會這樣的原因。要明白的最重要的事是表變得損壞是不是因爲服務器崩潰的結果。你可以在錯誤日志中查找最近的restarted mysqld消息來早期驗證這個。如果存在這樣一個消息,則表損壞是服務器死掉的一個結果是很有可能的。否則,損壞可能在正常操作中發生。這是一個缺陷。你應該試著創建一個展示這個問題的可重複生成的測試案例。

即使MyISAM表格式非常可靠(SQL語句對表做的所有改變在語句返回之前被寫下),如果下列任何事件發生,你依然可以獲得損壞的表: · mysqld進程在寫中間被殺掉。 · 發生未預期的計算機關閉(例如,計算機被關閉)。 · 硬件故障。 · 你可以同時在正被服務器修改的表上使用外部程序(如myisamchk)。 · MySQL或MyISAM代碼的軟件缺陷。 一個損壞的表的典型症狀如下: · 當在從表中選擇數據之時,你得到如下錯誤: · Incorrect key file for table: '...'. Try to repair it · 查詢不能在表中找到行或返回不完全的數據。 你可以用CHECK TABLE statement語句來檢查MyISAM表的健康,並用REPAIR TABLE修複一個損壞的MyISAM表。當mysqld不運行之時,你也可以用myisamchk命令檢查或修理一個表。 如果你的表變得頻繁損壞,你應該試著確定爲什麽會這樣的原因。要明白的最重要的事是表變得損壞是不是因爲服務器崩潰的結果。你可以在錯誤日志中查找最近的restarted mysqld消息來早期驗證這個。如果存在這樣一個消息,則表損壞是服務器死掉的一個結果是很有可能的。否則,損壞可能在正常操作中發生。這是一個缺陷。你應該試著創建一個展示這個問題的可重複生成的測試案例。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有