国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

如何修復MySQL數(shù)據(jù)庫表

2024-07-24 12:58:25
字體:
來源:轉載
供稿:網(wǎng)友

你可能在使用MySQL過程中,各種意外導致數(shù)據(jù)庫表的損壞,而且這些數(shù)據(jù)往往是最新的數(shù)據(jù),通常不可能在備份數(shù)據(jù)中找到。本章將繼上篇文章中檢查出表的問題后,告訴你如何修復表。

一張損壞的表的癥狀通常是查詢意外中斷并且你能看到例如這些錯誤:

◆ “tbl_name.frm”被鎖定不能改變。

◆ 不能找到文件“tbl_name.MYI”(Errcode :### )。

◆ 從表處理器的得到錯誤###(此時,錯誤135是一個例外)。

◆ 意外的文件結束。

◆ 記錄文件被毀壞。

在這些情況下,你必須修復表。表的修復是一項非常困難的工作,很多情況下令人束手無策。然而,有一些常規(guī)的知道思想和過程,可以遵循它們來增加修正表的機會。通常,開始是可以用最快的修復方法,看看能否袖珍故障。如果發(fā)現(xiàn)不成功,可以逐步升級到更徹底的但更慢的修復方法。如果仍舊難以修復,就應該從備份中恢復了。在上一章已經詳細介紹了這一部分內容。

簡單安全的修復

為了修復一個表執(zhí)行下列步驟:

◆ 首先,用--recover,-r選項修正表,并且用--quick,-q選項,來只根據(jù)索引文件的內容進行恢復。這樣不接觸數(shù)據(jù)文件來修復索引文件。(-r意味著“恢復模式”)


myisamchk -r -q tbl_nameisamchk -r -q tbl_name


◆ 如果問題仍舊存在,則忽略--quick選項,允許修復程序修改數(shù)據(jù)文件,因為這可能存在問題。下面的命令將從數(shù)據(jù)文件中刪除不正確的記錄和已被刪除的記錄并重建索引文件:


myisamchk -r tbl_nameisamchk -r tbl_name


◆ 如果前面的步驟失敗,使用。安全恢復模式使用一個老的恢復方法,處理常規(guī)恢復模式不行的少數(shù)情況(但是更慢)。


myisamchk --safe-recover tbl_nameisamchk --safe-recover tbl_name


困難的修理

如果在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應該到這個階段 。在這種情況下,創(chuàng)建一個新的索引文件是必要的。按如下這樣的步驟做:

◆ 定位到包含崩潰表的數(shù)據(jù)庫目錄中

◆ 把數(shù)據(jù)文件移更安全的地方。

◆ 使用表描述文件創(chuàng)建新的(空)數(shù)據(jù)和索引文件:


shell> mysql db_namemysql> DELETE FROM tbl_name;mysql> quit


上述語句將重新創(chuàng)建新的空表,并使用表的的描述文件tbl_name.frm重新生成新的數(shù)據(jù)和索引文件。

◆ 將老的數(shù)據(jù)文件拷貝到新創(chuàng)建的數(shù)據(jù)文件之中。(不要只是將老文件移回新文件之中;你要保留一個副本以防某些東西出錯。)

◆ 在使用標準的修復方法。現(xiàn)在myisamchk -r -q應該工作了。(這不應該是一個無限循環(huán))。

如果你擁有表的備份文件,那么一切過程就容易的多。從備份文件中可以恢復表的描述文件,然后在檢查表,有可能還要繼續(xù)使用標準的修復方法,應該糾可以解決問題了。

非常困難的修復

只有描述文件也破壞了,你才應該到達這個階段。這應該從未發(fā)生過,因為在表被創(chuàng)建以后,描述文件就不再改變了。

從一個備份恢復描述文件并且回到階段2。你也可以恢復索引文件并且回到階段1。對于后者,你應該用myisamchk -r啟動。

如果因為某種原因,數(shù)據(jù)的備份文件丟失或者沒有備份文件,但是你還記得建立表的CREATE TABLE語句,那么太好了,這樣還是可以恢復索引文件:

◆ 定位到包含崩潰表的數(shù)據(jù)庫目錄中

◆ 把數(shù)據(jù)文件移更安全的地方。再把數(shù)據(jù)庫目錄中的對應的目錄刪去.。

◆ 調用mysql并發(fā)復CREATE TABLE語句建立該表。

◆ 退出mysql,將原始的數(shù)據(jù)文件和索引文件移回到數(shù)據(jù)庫的目錄中,替換剛才新建的文件。

◆ 然后回到階段2,修復表。也可以只移回數(shù)據(jù)文件,這樣保留新的描述和索引文件,然后回到階段1,繼續(xù)用標準的方法修復表。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湘潭市| 城固县| 临武县| 石屏县| 绩溪县| 六盘水市| 大宁县| 马公市| 蒲城县| 丹凤县| 绥阳县| 秦安县| 朔州市| 合水县| 天长市| 武陟县| 孝感市| 临泉县| 西吉县| 老河口市| 民勤县| 沛县| 泸州市| 伽师县| 乐平市| 五指山市| 宾阳县| 宁蒗| 高碑店市| 修文县| 泸定县| 清新县| 报价| 格尔木市| 萨嘎县| 防城港市| 长乐市| 嘉祥县| 醴陵市| 河池市| 黔西县|