偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

利用Myisamchk對MySQL數(shù)據(jù)表進行體檢

數(shù)據(jù)庫 MySQL
MySQL數(shù)據(jù)庫是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言進行數(shù)據(jù)庫管理。本文將為大家介紹利用Myisamchk對MySQL數(shù)據(jù)表進行體檢的方法及使用技巧。

導讀:MySQL數(shù)據(jù)庫中,數(shù)據(jù)表數(shù)以百計,數(shù)據(jù)庫管理員不可能有這么多的時間和精力去依次檢查表的有效性,所以他們急需要一種工具,能夠?qū)ο嚓P(guān)的數(shù)據(jù)表進行體檢,以判斷表是否存在一些問題。這就好像我們每年都需要體檢一樣,發(fā)現(xiàn)小問題,即時進行修復(fù),以免到時候病入膏肓。在這里為大家推薦的工具是Myisamchk,使用這個工具來對數(shù)據(jù)表進行不定期的檢查。在使用這個工具時,筆者要強調(diào)一下相關(guān)的注意事項以及使用技巧。

  一、大表要增加內(nèi)存的容量

  Myisamchk工具的使用效率主要跟表的大小有關(guān)。如果數(shù)據(jù)表比較大,則其運行的速度就會比較慢。在這種情況下,數(shù)據(jù)庫管理員可能需奧調(diào)整內(nèi)存的配置。

  通常情況下,-O參數(shù)決定Myisamchk工具運行時所能夠使用的內(nèi)存大小。當運行Myisamchk時內(nèi)存分配給其使用的空間不能夠超過這個參數(shù)所指定的大小。如果數(shù)據(jù)庫管理員需要對每一個大表使用Myisamchk工具時,往往需要首先確定這個數(shù)據(jù)表的大小,并依此判斷所需要占用內(nèi)存的大小。默認情況下,恢復(fù)時可以采用的內(nèi)存大小只有3M。對于大表來說,這點內(nèi)存是不夠的。此時數(shù)據(jù)庫管理員可以調(diào)整內(nèi)存的大小,讓Myisamchk工具運行的更快一點。

  如果有需要的話,可以使用-O參數(shù)將內(nèi)存調(diào)整為合適的大小。如-O sort=8M等等。一般情況下,這個值設(shè)置為16M即可。不需要太大,否則的話,會影響其它作業(yè)的運行??傊?,在運行Myisamchk工具之前,數(shù)據(jù)庫管理員先需要評估一下數(shù)據(jù)庫中各個數(shù)據(jù)表的大小。如果有比較大的數(shù)據(jù)表,可以先將其過濾出來(如通過通配符等形式)。然后再調(diào)整內(nèi)存的大小,并單獨對這些大表進行檢查。這是提高Myisamchk運行效率的一個不錯的辦法。

  二、利用Myisamchk工具恢復(fù)數(shù)據(jù)時需要大量的硬盤空間

  在使用Myisamchk檢查數(shù)據(jù)表時,如果發(fā)現(xiàn)某些表存在問題,還可以使用Myisamchk這個工具對其進行恢復(fù)。不過在恢復(fù)時,需要先確保有足夠的硬盤空間。否則的話,就可能導致數(shù)據(jù)表恢復(fù)失敗。

  通常情況下,所需要使用的硬盤空間是數(shù)據(jù)表的一倍大小。即如果需要對2G的數(shù)據(jù)表進行恢復(fù),那么所需要的剩余空間至少應(yīng)該還有2G。即需要將數(shù)據(jù)文件大小擴大為原來的一倍。如果硬盤空間不足,該怎么辦呢?此時數(shù)據(jù)庫管理員可以考慮使用—quick選項。使用這個選項之后,進行修復(fù)時就不需要這么多的空間。不過需要注意,此時數(shù)據(jù)庫系統(tǒng)只是創(chuàng)建了索引文件。

  在某些情況下,在修復(fù)時需要重新創(chuàng)建索引文件。此時代替舊索引文件的新索引文件也需要占用一定的磁盤空間。雖然說在修復(fù)工作一開始的時候,數(shù)據(jù)庫系統(tǒng)就會對就索引文件進行刪減。但是為了安全起見,筆者還是建議為其保留足夠的硬盤空間。并且在文件系統(tǒng)上所需要的這個存儲空間的大小與原數(shù)據(jù)文件是相同的。

  另外在使用Myisamchk這個工具時,數(shù)據(jù)庫管理員可能會使用—Recover選項。如果數(shù)據(jù)庫管理員采用這個選項的話,那么就可以修復(fù)幾乎所有一切的問題。不過注意這里有一個關(guān)鍵字幾乎。這也就是說,大部分數(shù)據(jù)表問題都可以通過這個選項來解決。但是也有一些例外。如當遇到唯一的鍵不唯一等問題時,即時采用這個選項也是沒有辦法。一般情況下,數(shù)據(jù)庫管理員在恢復(fù)工作時可以先試用這個選項。當系統(tǒng)報告這個選項不可用時,再嘗試使用另外的恢復(fù)方式。不過需要注意的是,使用這個選項時需要用到排序緩沖區(qū)空間。大致大小一般為數(shù)據(jù)的2倍。

  綜上所述,在利用Myisamchk這個工具對表進行恢復(fù)操作時,需要保證其有足夠的磁盤空間。筆者的建議時,至少要有兩倍以上的數(shù)據(jù)文件大小的磁盤空間。

  三、逐步修復(fù)收損壞的數(shù)據(jù)表

  如果不幸你的數(shù)據(jù)表受到損壞時,該怎么進行修復(fù)呢?筆者認為,應(yīng)該采用逐步修復(fù)的方式。不過在執(zhí)行修復(fù)操作是,有兩個必要的步驟需要做。一是停止運行數(shù)據(jù)庫服務(wù)器,二是對相關(guān)的數(shù)據(jù)文件進行備份。雖然說Myisamchk工具是一個相對安全的數(shù)據(jù)檢查工具,但是在對數(shù)據(jù)進行恢復(fù)之前對數(shù)據(jù)文件進行必要的備份,仍然是一個必要的安全措施。在對對數(shù)據(jù)進行恢復(fù)時,通??梢园凑障旅娴捻樞騺聿僮鳌?/p>

  一是檢查數(shù)據(jù)表,以判斷到底哪些數(shù)據(jù)表出現(xiàn)了問題,以及出現(xiàn)問題的大小。為了安全與效率的考慮,在修復(fù)時一般只修復(fù)那些出現(xiàn)問題的數(shù)據(jù)表。在檢查數(shù)據(jù)表時,可以使用-update-state選項來告訴Myisamchk工具哪些數(shù)據(jù)表是檢查過的,并且對有問題的表格會進行標識。 然后再修復(fù)時,可以指定Myisamchk工具只修復(fù)那些報告有錯誤的表格。

  二是進行簡單安全的修復(fù)。在剛開始修復(fù)數(shù)據(jù)時,***采用“快速恢復(fù)模式”。在這個模式下,數(shù)據(jù)庫系統(tǒng)并不接觸數(shù)據(jù)文件來修復(fù)索引文件。如果數(shù)據(jù)文件包含它應(yīng)有的一切內(nèi)容和指向數(shù)據(jù)文件內(nèi)正確的刪除連接,此時使用快速恢復(fù)模式就可以修復(fù)損壞的數(shù)據(jù)表,如果即使采用簡單安全的修復(fù),***在修復(fù)開始之前對數(shù)據(jù)表做好備份工作。然后使用Myisamchk –r 表名字 來恢復(fù)指定的數(shù)據(jù)表。運行這個命令之后,系統(tǒng)將從數(shù)據(jù)文件中刪除不正確的紀錄和已經(jīng)被刪除的記錄,并會重新創(chuàng)建索引文件。如果采用這個模式還不能夠修復(fù)數(shù)據(jù)文件時,則采用下面一個恢復(fù)模式。

  三是索引文件破壞情況下的恢復(fù)模式。如果數(shù)據(jù)庫表格的索引文件的***個16K塊被破壞掉,或者說包含不正確的信息,又或者整個索引文件丟失,在這種情況下,就需要創(chuàng)建一個新的索引文件。此時就需要用到下面談到的恢復(fù)模式。此時數(shù)據(jù)庫管理員需要先將數(shù)據(jù)文件轉(zhuǎn)移到安全地方,然后使用表描述文件來創(chuàng)建新的數(shù)據(jù)文件和索引文件。然后再將老的數(shù)據(jù)文件復(fù)制到新創(chuàng)建的數(shù)據(jù)文件之中。然后再使用命令Myisamchk –r-q來恢復(fù)數(shù)據(jù)表。如果只是索引文件出現(xiàn)了問題,那么使用這個命令就可以恢復(fù)數(shù)據(jù)。

  四是最極端的情況,即表描述文件也受到了損壞。此時就不能夠采用上面這個恢復(fù)模式。因為已經(jīng)無法使用表描述文件來創(chuàng)建新的數(shù)據(jù)文件和索引文件。此時筆者建議,要采用數(shù)據(jù)庫恢復(fù)的方式,來恢復(fù)全部的數(shù)據(jù)文件。在MySQL數(shù)據(jù)庫中,可以根據(jù)需要設(shè)置完全備份或者增量備份。如果表描述文件也損壞時,那么采用數(shù)據(jù)庫恢復(fù)的方式,無疑是最安全的方法。

  當然Myisamchk工具的功能不只上面這些。其下面有很多有趣的內(nèi)容。如可以根據(jù)需要,修復(fù)某個指定的數(shù)據(jù)表。也可以使用通配符批量的檢查文件。甚至可以對獨立的數(shù)據(jù)文件進行檢查等等。不過需要注意的是,無論是采用哪種方式,都需要先對數(shù)據(jù)庫進行必要的備份。雖然說Myisamchk這個工具相對來說是比較安全的。但是養(yǎng)成在任何檢查與修復(fù)之前先對原有的數(shù)據(jù)進行備份,仍然是一個不錯的數(shù)據(jù)庫管理習慣。

  不過需要注意的是,Myisamchk工具并不是***的。對于一些極端性的損壞,如表格描述文件損壞,這個工具就沒有用武之地了。為此數(shù)據(jù)庫管理員還是需要***數(shù)據(jù)庫日常的備份工作。數(shù)據(jù)庫管理員一定要做好這方面的工作,來確保數(shù)據(jù)庫的萬無一失。
 

【編輯推薦】

  1. 解決MySQL數(shù)據(jù)庫死掉以及拒絕服務(wù)的方法
  2. 如何解決IBatis.net與MySQL連接問題
  3. 五種MySQL數(shù)據(jù)庫可靠性方案的分析和比較
責任編輯:迎迎 來源: it168網(wǎng)站
相關(guān)推薦

2011-03-15 09:15:06

MyisamchkMySQL

2010-05-12 18:35:25

MySQL數(shù)據(jù)表

2010-11-22 13:53:46

MySQL數(shù)據(jù)表

2009-02-02 16:50:34

數(shù)據(jù)庫表的鎖定MySQL

2010-06-09 16:55:47

MySQL數(shù)據(jù)表

2010-11-24 13:11:06

MySQL遍歷數(shù)據(jù)表

2011-03-04 09:09:07

BlueJ

2017-05-25 10:23:13

數(shù)據(jù)a表b表

2017-09-11 14:50:55

MySQL數(shù)據(jù)表類型存儲引擎

2011-04-14 09:05:07

ExcelMySQL數(shù)據(jù)

2010-05-20 14:42:02

MySQL數(shù)據(jù)

2009-04-21 11:02:54

Rational.NET建模

2010-06-13 17:35:17

MySQL數(shù)據(jù)表

2010-11-24 10:52:57

Mysql字符集

2009-09-07 16:13:14

LINQ to SQL

2017-02-22 13:48:49

Tableau可視化

2010-11-23 13:51:55

MySQL數(shù)據(jù)表

2021-03-04 14:10:04

Mysql數(shù)據(jù)庫數(shù)據(jù)表

2010-05-17 16:25:05

MySQL數(shù)據(jù)

2011-11-17 16:45:33

AdobeAIRWidget
點贊
收藏

51CTO技術(shù)棧公眾號