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