>進(jìn)入 在MySQL數(shù)據(jù)庫(kù)中,數(shù)據(jù)表數(shù)以百計(jì),數(shù)據(jù)庫(kù)管理員不可能有這么多的時(shí)間和精力去依次檢查表的有效性,所以他們急需要一種工具,能夠?qū)ο嚓P(guān)的數(shù)據(jù)表進(jìn)行體檢,以判斷表是否存在一些問(wèn)題。這就好像我們每" />
歡迎進(jìn)入Linux社區(qū)論壇,與200萬(wàn)技術(shù)人員互動(dòng)交流 >>進(jìn)入 在MySQL數(shù)據(jù)庫(kù)中,數(shù)據(jù)表數(shù)以百計(jì),數(shù)據(jù)庫(kù)管理員不可能有這么多的時(shí)間和精力去依次檢查表的有效性,所以他們急需要一種工具,能夠?qū)ο嚓P(guān)的數(shù)據(jù)表進(jìn)行體檢,以判斷表是否存在一些問(wèn)題。這就好像我們每
歡迎進(jìn)入Linux社區(qū)論壇,與200萬(wàn)技術(shù)人員互動(dòng)交流 >>進(jìn)入
在MySQL數(shù)據(jù)庫(kù)中,數(shù)據(jù)表數(shù)以百計(jì),數(shù)據(jù)庫(kù)管理員不可能有這么多的時(shí)間和精力去依次檢查表的有效性,所以他們急需要一種工具,能夠?qū)ο嚓P(guān)的數(shù)據(jù)表進(jìn)行體檢,以判斷表是否存在一些問(wèn)題。這就好像我們每年都需要體檢一樣,發(fā)現(xiàn)小問(wèn)題,即時(shí)進(jìn)行修復(fù),以免到時(shí)候病入膏肓。在這里為大家推薦的工具是Myisamchk,使用這個(gè)工具來(lái)對(duì)數(shù)據(jù)表進(jìn)行不定期的檢查。在使用這個(gè)工具時(shí),筆者要強(qiáng)調(diào)一下相關(guān)的注意事項(xiàng)以及使用技巧。
一、大表要增加內(nèi)存的容量
Myisamchk工具的使用效率主要跟表的大小有關(guān)。如果數(shù)據(jù)表比較大,則其運(yùn)行的速度就會(huì)比較慢。在這種情況下,數(shù)據(jù)庫(kù)管理員可能需奧調(diào)整內(nèi)存的配置。
通常情況下,-O參數(shù)決定Myisamchk工具運(yùn)行時(shí)所能夠使用的內(nèi)存大小。當(dāng)運(yùn)行Myisamchk時(shí)內(nèi)存分配給其使用的空間不能夠超過(guò)這個(gè)參數(shù)所指定的大小。如果數(shù)據(jù)庫(kù)管理員需要對(duì)每一個(gè)大表使用Myisamchk工具時(shí),往往需要首先確定這個(gè)數(shù)據(jù)表的大小,并依此判斷所需要占用內(nèi)存的大小。默認(rèn)情況下,恢復(fù)時(shí)可以采用的內(nèi)存大小只有3M.對(duì)于大表來(lái)說(shuō),這點(diǎn)內(nèi)存是不夠的。此時(shí)數(shù)據(jù)庫(kù)管理員可以調(diào)整內(nèi)存的大小,讓Myisamchk工具運(yùn)行的更快一點(diǎn)。
如果有需要的話,可以使用-O參數(shù)將內(nèi)存調(diào)整為合適的大小。如-O sort=8M等等。一般情況下,這個(gè)值設(shè)置為16M即可。不需要太大,否則的話,會(huì)影響其它作業(yè)的運(yùn)行。總之,在運(yùn)行Myisamchk工具之前,數(shù)據(jù)庫(kù)管理員先需要評(píng)估一下數(shù)據(jù)庫(kù)中各個(gè)數(shù)據(jù)表的大小。如果有比較大的數(shù)據(jù)表,可以先將其過(guò)濾出來(lái)(如通過(guò)通配符等形式)。然后再調(diào)整內(nèi)存的大小,并單獨(dú)對(duì)這些大表進(jìn)行檢查。這是提高M(jìn)yisamchk運(yùn)行效率的一個(gè)不錯(cuò)的辦法。
二、利用Myisamchk工具恢復(fù)數(shù)據(jù)時(shí)需要大量的硬盤空間
在使用Myisamchk檢查數(shù)據(jù)表時(shí),如果發(fā)現(xiàn)某些表存在問(wèn)題,還可以使用Myisamchk這個(gè)工具對(duì)其進(jìn)行恢復(fù)。不過(guò)在恢復(fù)時(shí),需要先確保有足夠的硬盤空間。否則的話,就可能導(dǎo)致數(shù)據(jù)表恢復(fù)失敗。
通常情況下,所需要使用的硬盤空間是數(shù)據(jù)表的一倍大小。即如果需要對(duì)2G的數(shù)據(jù)表進(jìn)行恢復(fù),那么所需要的剩余空間至少應(yīng)該還有2G.即需要將數(shù)據(jù)文件大小擴(kuò)大為原來(lái)的一倍。如果硬盤空間不足,該怎么辦呢?此時(shí)數(shù)據(jù)庫(kù)管理員可以考慮使用―quick選項(xiàng)。使用這個(gè)選項(xiàng)之后,進(jìn)行修復(fù)時(shí)就不需要這么多的空間。不過(guò)需要注意,此時(shí)數(shù)據(jù)庫(kù)系統(tǒng)只是創(chuàng)建了索引文件。
在某些情況下,在修復(fù)時(shí)需要重新創(chuàng)建索引文件。此時(shí)代替舊索引文件的新索引文件也需要占用一定的磁盤空間。雖然說(shuō)在修復(fù)工作一開始的時(shí)候,數(shù)據(jù)庫(kù)系統(tǒng)就會(huì)對(duì)就索引文件進(jìn)行刪減。但是為了安全起見,筆者還是建議為其保留足夠的硬盤空間。并且在文件系統(tǒng)上所需要的這個(gè)存儲(chǔ)空間的大小與原數(shù)據(jù)文件是相同的。
另外在使用Myisamchk這個(gè)工具時(shí),數(shù)據(jù)庫(kù)管理員可能會(huì)使用―Recover選項(xiàng)。如果數(shù)據(jù)庫(kù)管理員采用這個(gè)選項(xiàng)的話,那么就可以修復(fù)幾乎所有一切的問(wèn)題。不過(guò)注意這里有一個(gè)關(guān)鍵字幾乎。這也就是說(shuō),大部分?jǐn)?shù)據(jù)表問(wèn)題都可以通過(guò)這個(gè)選項(xiàng)來(lái)解決。但是也有一些例外。如當(dāng)遇到唯一的鍵不唯一等問(wèn)題時(shí),即時(shí)采用這個(gè)選項(xiàng)也是沒有辦法。一般情況下,數(shù)據(jù)庫(kù)管理員在恢復(fù)工作時(shí)可以先試用這個(gè)選項(xiàng)。當(dāng)系統(tǒng)報(bào)告這個(gè)選項(xiàng)不可用時(shí),再嘗試使用另外的恢復(fù)方式。不過(guò)需要注意的是,使用這個(gè)選項(xiàng)時(shí)需要用到排序緩沖區(qū)空間。大致大小一般為數(shù)據(jù)的2倍。
綜上所述,在利用Myisamchk這個(gè)工具對(duì)表進(jìn)行恢復(fù)操作時(shí),需要保證其有足夠的磁盤空間。筆者的建議時(shí),至少要有兩倍以上的數(shù)據(jù)文件大小的磁盤空間。
[1] [2]
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com