數據表的修復
日期:2002-01-01
注意:在修復表之前要靠被他們,注意備份,切記!
1.標準的表修復
a.試著(zhù)用 --recover選項修復表,能加上 --quick選項試圖只根據索引的內容進(jìn)行修復,這樣做不觸及數據文件。
% myisamchk --recover --quick table_name
or
% isamchk --recover --quick table_name
b.假如難題還存在,在試試上一步命令,但是要忽略 --quick選項,這樣允許修改數據文件。
% myisamchk --recover table_name
or
% isamchk --recover table_name
c.假如還不工作,試試 --safe-recover 修復辦法。但這種辦法比普通辦法要慢,但能修復 --recover無(wú)法修復的難題。
% myisamchk --safe-recover table_name
or
% isamchk --safe-recover table_name
假如在myisamchk or isamchk 由于一個(gè)"can‘t create new temp file:file_name"的錯誤消息在任何一步停止,應該重復該命令并
加入 --force選項強迫清除臨時(shí)文件。
2.假如標準修復失敗這樣做
a.定位到包含崩潰表的數據庫目錄中。
b.將該表的數據文件移到安全的地方。
c.調用mysql并通過(guò)執行下列語(yǔ)句重新創(chuàng )建新的空表,該語(yǔ)句使用表的描述文件
tbl_name.frm重新開(kāi)始生成新的數據和索引文件。
mysql>delete from tbl_name;
d.退出mysql,將原始的數據文件移回到數據目錄中,替換剛建的新的空文件。
e.在世這樣用標準修復辦法。
為了修復表的描述文件,可先從備份文件中恢復,然后再用標準修復辦法。
假如由于某些原因沒(méi)有備份,假如知道create table 語(yǔ)句,仍然能恢復該文件:
a.定位到包含崩潰表的數據庫目錄中。
b.將該表的數據文件移到安全的地方。假如想使用用索引的話(huà),還需要把索引文件移走。
c.調用mysql 發(fā)布create table 語(yǔ)句重建表。
d.退出mysql,將原始的數據文件移回到數據目錄中,替換剛才新建的數據文件。假如在第2不中移動(dòng)了索引文件,則也要講起移回到
數據庫目錄中。
e.在嘗試標準表修復辦法。
以上辦法針對mysql有效,請大伙注意。