成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

檢查與維護MySQL數據庫表的操作流程

數據庫 MySQL
我們今天主要向大家講述的是正確檢查與維護MySQL數據庫表的實際操作流程,下面就是文章的主要內容的具體描述,望你會有所收獲。

以下的文章主要向大家描述的是正確檢查與維護MySQL數據庫表的實際操作流程,以及在檢查與維護MySQL數據庫表的實際操作中值得我們大家留意的事項的具體描述,望你在瀏覽之后會有所收獲。

理想的情況是,MySQL(和PHP搭配之***組合)從***安裝以來始終平穩地運行。但有時確實會由于各種原因而出現問題,其范圍可以從電源斷電到硬件故障到不正常地關閉MySQL(和PHP搭配之***組合)服務器(如用kill -9終止服務器或機器崩潰)。

 

諸如這樣的情況大部分都超出您的控制范圍,它們會導致數據庫表的毀壞,尤其是在對表進行修改且未完全寫入時所引起的。

 

本章的重點是檢測和解決表的問題,而不論問題是如何引起的。對于表的檢查和修復,MySQL(和PHP搭配之***組合)管理員***的朋友是myisamchk 和isamchk 實用程序。這兩個程序有好幾個功能,我們已經在第4章討論了怎樣使用它們執行索引鍵的分布分析和索引的釋放與激活。還可以使用它們檢查表和修復有問題的表。這使您能在表變壞之前(使表不能使用之前)修正故障。

 

myisamchk 和isamchk 提供的全部選項的清單在附錄E 中。有關其他的背景,請參閱MySQL(和PHP搭配之***組合)參考指南的“維護MySQL(和PHP搭配之***組合)安裝”一章。

 

表的故障檢測和修正的一般過程如下:

1) 檢查出錯的表。如果該表檢查通過,則完成任務,否則必須修復它。

 

2) 在開始修復之前對表文件進行拷貝,以防萬一。

 

3) 試著修復表。

 

4) 如果修復操作失敗,從數據庫備份和更新日志中恢復此表。

 

上述過程的***一步假定您已經執行了數據庫備份并允許更新日志有效。如果不是這樣的話,系統將有危險。參考第11章查找一下怎樣使用MySQL(和PHP搭配之***組合)aump 和怎樣開啟更新日志。您肯定不想不可挽回地丟失一個表,因此,應努力地做備份。

 

在使用myisamchk 或isamchk 檢查或修復表之前,應該滿足一些初步需求:

 

建立常規的數據庫備份過程并允許更新日志,以防事情越來越糟使表的毀壞不能修復。筆者好像在以前提醒過這一點?

 

在開始試驗之前應先仔細地閱讀本章的內容。尤其是不應該在閱讀“避免與MySQL數據庫表服務器交互作用”之前進行操作,因為它將討論當您試圖在一個表上執行檢查或修復過程時服務器正在使用這個表所引起的問題。它還討論怎樣在服務器運行時防止那些問題發生。

 

當運行表檢查或修復時,您應該被注冊在運行MySQL(和PHP搭配之***組合)的賬號下,因為您需要對表文件讀寫訪問。

 

myisamchk 和isamchk 的調用語法

MySQL(和PHP搭配之***組合)的myisamchk 和isamchk 實用程序很類似,多數時候它們可以用同樣的方式使用。它們之間的主要區別是它們所使用的表的類型。對于MyISAM 表,使用my i s a m c h k,而對于ISAM 表,則使用i s a m c h k。您可以通過表的索引文件的擴展名來告訴表使用哪種存儲格式。擴展名“. M Y I”表明是一個MyISAM 表,而“. I S M”表明是ISAM 表。

為了使用任一個實用程序,應指明您所要檢查或修復的表,以及指明要執行的操作類型的選項:

 

% myisamchk options tbl_name...

 

% isamchk options tbl_name...

 

tbl_name 參數可以是表名也可以是該表的索引文件名。如果指定多個表,可以很容易地使用文件名模式來拾取目錄中所有相應的文件:

 

% myisamchk options *.MYI

 

% isamchk options *.ISM

 

不會因為告訴了錯誤的程序來檢查某個表而使該表毀壞,但是除了發布一條警告消息外此程序不做任何事情。例如,下面的***條語句將檢查當前目錄中的所有MyISAM 表,而第二條語句只顯示一條警告消息:

 

% myisamchk *.MYI 正確

 

% myisamchk *.ISM 不正確─文件類型錯

 

不論是myisamchk 還是isamchk 都不對表所在的位置做任何判斷,因此,應該或者在包含表文件的目錄中運行程序,或者指定表的路徑名。這允許您將表文件拷貝到另一個目錄中并用該拷貝進行操作。

 

檢查表

myisamchk 和isamchk 提供了表檢查方法,這些方法在徹底檢查表的程度方面有差異。通常用標準方法就足夠了。如果標準檢查報告沒有發現錯誤而您仍然懷疑有毀壞(或許因為查詢沒有正常地工作),可能要執行更徹底的檢查。要想用任意一個實用程序執行標準的表檢查,則不用帶任何選項直接調用即可:

% myisamchk tbl_name

 

% isamchk tbl_name

 

為了執行擴充檢查,使用--extend-check 選項。該選項非常慢,但檢查極為徹底。對于該表的數據文件中的每個記錄,索引文件中的每個索引的相關鍵都被檢查以確保它真正指向正確的記錄。myisamchk 還有一個中間選項- - m e d i um - c h e c k,它不如擴展檢查徹底,但速度快。

 

如果對于--extend-check 檢查不報告錯誤,則可以肯定表是好的。如果您仍然感覺表有問題,那原因肯定在其他地方。應重新檢查任何好像有問題的查詢以驗證查詢是正確書寫的。如果您認為問題可能是MySQL數據庫表服務器的原因,應考慮整理一份故障報告或升級到新的版本上。

 

如果myisamchk 或isamchk 報告表有錯誤,應用下節中的說明修復它們。

 

修復表

表的修復是一項可怕的工作,如果具體問題非常獨特則更難進行。然而,有一些常規的指導思想和過程,可以遵循它們來增加修正表的機會。通常,開始時可以用最快的修復方法,看看是否能修正故障。如果發現不行的話,可以逐步升級到更徹底的(但更慢的)修復方法上,直到故障被修復或您不能繼續升級為止(實際上,大多數問題不用更大規模的和更慢的方法就能修正)。如果表不能修復,則從備份中恢復該表。有關使用備份文件和更新日志進行恢復的指導在已第11章中給出。

1. 執行標準的表修復

 

為了修復一個表,執行下列步驟:

 

1) 試著用--recover 選項修正表,但也可以用--quick 選項試圖只根據索引文件的內容進行恢復。這樣將不觸及數據文件:

 

% myisamchk --recover --quick tbl_name

 

% isamchk --recover --quick tbl_name

 

2) 如果問題仍存在,再試一下上一步的命令,但忽略--quick 選項,以允許my i s a m c h k或isamchk 前進并修改數據文件:

 

% myisamchk --recover tbl_name

 

% isamchk --recover tbl_name

 

3) 如果還不工作,試一試--safe-recover 修復方法。這種方法比普通的恢復方法要慢,但能夠修正-recover 方法不能修正的幾個問題:

 

% myisamchk --safe-recover tbl_name

 

% isamchk --safe-recover tbl_name

 

如果myisamchk 或isamchk 由于一個“C a n’t create new temp file: file_name” 的錯誤消息在任何一步中停止,應該重復這個命令并增加--force 選項以迫使清除臨時文件。這個臨時文件可能是從上一次失敗的修復中留下的。

 

在修復表之前拷貝它們在執行表修復前應該遵循的一個常規的預防措施是做該表的新拷貝。這種情況未必出現,但如果發生,則可以從拷貝文件中做該表的新的拷貝并試試另一種恢復方法。

 

2. 標準表修復方法失敗時怎么辦

 

如果標準的修復過程未能修復表,則索引文件可能在修復時丟失或毀壞。盡管未必可能,但還是有可能使表的描述文件丟失。不論哪種情況,都需要替換受影響的文件,然后再試試標準修復過程。

 

為了重新生成索引文件,可以使用下列過程:

 

1) 定位到包含崩潰表的數據庫目錄中。

 

2) 將該表的數據文件移到安全的地方。

 

3) 調用MySQL(和PHP搭配之***組合)并通過執行下列語句重新創建新的空表,該語句使用表的描述文件tbl_name.frm 重新開始生成新的數據和索引文件:

 

MySQL(和PHP搭配之***組合)> DELETE FROM tbl_name;

 

4) 退出MySQL(和PHP搭配之***組合),將原始的數據文件移回到數據庫目錄中,替換剛建立的新的空文件。

 

5) 再試試標準表修復方法。

 

為了恢復該表的描述文件,可先從備份文件中恢復,然后再試著用標準修復方法。如果由于某些原因沒有備份,但知道建立表的CREATE TABLE 語句,則仍可以恢復該文件:

 

1) 定位到包含崩潰表的數據庫目錄中。

 

2) 將該表的數據文件移動到安全的地方。如果想要使用索引的話,還需將索引文件移走。

 

3) 調用MySQL(和PHP搭配之***組合)并發布CREATE TABLE 語句建立該表。

 

4) 退出MySQL(和PHP搭配之***組合),將原始數據文件移回數據庫目錄中,替換剛才新建的數據文件。如果在步驟2移動了索引文件,則也要將其移回數據庫目錄中。

 

5) 再試試標準表修

 

以上的相關內容就是對檢查和維護MySQL數據庫表的介紹,望你能有所收獲。

【編輯推薦】

  1. 453 h安裝在MySQL 4.1的亂碼問題
  2. MySQL5中的字符集問題與破解方案
  3. MySQL全文搜索索引的字段作用
  4. MySQL EMS亂碼的正確解決
  5. MySQL鏡像數據庫的正確建立在linux之下
責任編輯:佚名 來源: 博客園
相關推薦

2010-05-12 15:26:05

MySQL數據庫日志

2010-05-12 18:02:11

MySQL數據庫

2010-05-28 18:44:45

2010-05-20 17:56:43

2010-05-25 09:47:05

2010-05-26 11:21:00

MySQL數據庫操作

2010-06-12 09:53:19

2022-06-06 08:21:13

MySQL數據庫命令

2018-05-14 16:14:56

數據庫MySQL分表與分區

2010-07-09 11:28:12

SQL Server數

2010-05-28 13:48:07

MySQL數據庫密碼

2010-09-25 16:38:34

維護DHCP數據庫文件

2011-03-24 16:38:00

Exchange數據庫維護

2009-06-11 13:22:18

JBPM數據庫

2010-05-24 14:02:06

MySQL數據庫

2009-06-11 13:39:32

jBPM數據庫

2010-04-27 10:39:59

Oracle數據庫

2011-08-29 14:00:26

MySQL主從延時

2010-05-28 09:15:50

配置MySQL

2010-06-04 10:59:54

MySQL數據庫返回影
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 五月婷六月丁香 | 人人干人人草 | 国产精品视频网 | 日韩国产在线 | 自拍偷拍中文字幕 | 欧美精品在线播放 | 日本精品一区二区 | 人人擦人人 | 性生生活大片免费看视频 | 91在线一区二区三区 | 亚洲精品成人网 | 超碰在线播 | 欧美福利久久 | 免费国产一区 | 999热视频 | 国产一区二区三区在线 | 美女视频h | 国产精品美女久久久久aⅴ国产馆 | 欧美国产视频 | 在线播放日韩 | 特级黄色毛片 | 国产精品成人一区二区 | 亚洲高清视频在线 | 欧美日韩精选 | 亚洲免费在线 | 欧美成人手机在线 | 日韩一区精品 | 高清视频一区 | 国产精品一区在线观看你懂的 | 久久精品视频9 | 国产欧美日韩一区二区三区在线 | 精精国产xxxx视频在线播放 | 中文字幕 国产精品 | 在线免费国产视频 | 日韩不卡一区二区三区 | 国产免费又色又爽又黄在线观看 | 日韩一区二区在线看 | www.99热这里只有精品 | 91色网站 | 亚洲视频二区 | 黄片毛片免费观看 |