欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql Myisamchk小工具使用手冊(cè)第1/2頁(yè)

 更新時(shí)間:2008年10月25日 19:17:42   作者:  
Myisamchk是MyISAM表維護(hù)的一個(gè)非常實(shí)用的工具??梢允褂胢yisamchk實(shí)用程序來(lái)獲得有關(guān)數(shù)據(jù)庫(kù)表的信息或檢查、修復(fù)、優(yōu)化他們。myisamchk適用MyISAM表(對(duì)應(yīng).MYI和.MYD文件的表)。
1.myisamchk的調(diào)用方法
myisamchk [options] tbl_name ...
其中options指定你想讓myisamchk干什么。

它允許你通過(guò)使用模式“*.MYI”指定在一個(gè)目錄所有的表。
shell> myisamchk *.MYI

推薦的快速檢查所有MyISAM表的方式是:

shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI
當(dāng)你運(yùn)行myisamchk時(shí),必須確保其它程序不使用表。

當(dāng)你運(yùn)行myisamchk時(shí)內(nèi)存分配重要.MYIsamchk使用的內(nèi)存大小不能超過(guò)用-O選項(xiàng)指定的。對(duì)于大多數(shù)情況,使用-O sort=16M應(yīng)該足夠了。
另外在修復(fù)時(shí)myisamchk需要大量硬盤(pán)空間,基本上是所涉及表空間的雙倍大小。


2.myisamchk的一般選項(xiàng)
--debug=debug_options, -# debug_options
輸出調(diào)試記錄文件。debug_options字符串經(jīng)常是'd:t:o,filename'。

--silent,-s
沉默模式。僅當(dāng)發(fā)生錯(cuò)誤時(shí)寫(xiě)輸出。

--wait, -w
如果表被鎖定,不是提示錯(cuò)誤終止,而是在繼續(xù)前等待到表被解鎖。
如果不使用--skip-external-locking,可以隨時(shí)使用myisamchk來(lái)檢查表。當(dāng)檢查表時(shí),所有嘗試更新表的客戶(hù)端將等待,直到myisamchk準(zhǔn)備好可以繼續(xù)。
請(qǐng)注意如果用--skip-external-locking選項(xiàng)運(yùn)行mysqld,只能用另一個(gè)myisamchk命令鎖定表。

--var_name=value
可以通過(guò)--var_name=value選項(xiàng)設(shè)置下面的變量:
decode_bits 9
ft_max_word_len 取決于版本
ft_min_word_len 4
ft_stopword_file 內(nèi)建列表
key_buffer_size 523264
myisam_block_size 1024
read_buffer_size 262136
sort_buffer_size 2097144
sort_key_blocks 16
stats_method nulls_unequal
write_buffer_size 262136
如果想要快速修復(fù),將key_buffer_size和sort_buffer_size變量設(shè)置到大約可用內(nèi)存的25%。
可以將兩個(gè)變量設(shè)置為較大的值,因?yàn)橐粋€(gè)時(shí)間只使用一個(gè)變量。
myisam_block_size是用于索引塊的內(nèi)存大小。
stats_method影響當(dāng)給定--analyze選項(xiàng)時(shí),如何為索引統(tǒng)計(jì)搜集處理NULL值。

3.myisamchk的檢查選項(xiàng)
--check, -c
檢查表的錯(cuò)誤。如果你不明確指定操作類(lèi)型選項(xiàng),這就是默認(rèn)操作。

--check-only-changed, -C
只檢查上次檢查后有變更的表。

--extend-check, -e
非常仔細(xì)地檢查表。如果表有許多索引將會(huì)相當(dāng)慢。

--fast,-F
只檢查沒(méi)有正確關(guān)閉的表。

--force, -f
如果myisamchk發(fā)現(xiàn)表內(nèi)有任何錯(cuò)誤,則自動(dòng)進(jìn)行修復(fù)。

--information, -i
打印所檢查表的統(tǒng)計(jì)信息。

--medium-check, -m
比--extend-check更快速地進(jìn)行檢查。只能發(fā)現(xiàn)99.99%的錯(cuò)誤

--update-state, -U
將信息保存在.MYI文件中,來(lái)表示表檢查的時(shí)間以及是否表崩潰了。該選項(xiàng)用來(lái)充分利用--check-only-changed選項(xiàng),
但如果mysqld服務(wù)器正使用表并且正用--skip-external-locking選項(xiàng)運(yùn)行時(shí)不應(yīng)使用該選項(xiàng)。

--read-only, -T
不要將表標(biāo)記為已經(jīng)檢查。如果你使用myisamchk來(lái)檢查正被其它應(yīng)用程序使用而沒(méi)有鎖定的表很有用

4.myisamchk的修復(fù)選項(xiàng)
--backup, -B
將.MYD文件備份為file_name-time.BAK

--character-sets-dir=path
字符集安裝目錄。

--correct-checksum
糾正表的校驗(yàn)和信息。

--data-file-length=len, -D len
數(shù)據(jù)文件的最大長(zhǎng)度

--extend-check,-e
進(jìn)行修復(fù),試圖從數(shù)據(jù)文件恢復(fù)每一行。一般情況會(huì)發(fā)現(xiàn)大量的垃圾行。不要使用該選項(xiàng),除非你不顧后果。

--force, -f
覆蓋舊的中間文件(文件名類(lèi)似tbl_name.TMD),而不是中斷

--keys-used=val, -k val
對(duì)于myisamchk,該選項(xiàng)值為位值,說(shuō)明要更新的索引。選項(xiàng)值的每一個(gè)二進(jìn)制位對(duì)應(yīng)表的一個(gè)索引,其中第一個(gè)索引對(duì)應(yīng)位0。
選項(xiàng)值0禁用對(duì)所有索引的更新,可以保證快速插入。通過(guò)myisamchk -r可以重新激活被禁用的索引。

--parallel-recover, -p
與-r和-n的用法相同,但使用不同的線(xiàn)程并行創(chuàng)建所有鍵。

--quick,-q
不修改數(shù)據(jù)文件,快速進(jìn)行修復(fù)。

--recover, -r
可以修復(fù)幾乎所有一切問(wèn)題,除非唯一的鍵不唯一時(shí)(對(duì)于MyISAM表,這是非常不可能的情況)。如果你想要恢復(fù)表,
這是首先要嘗試的選項(xiàng)。如果myisamchk報(bào)告表不能用-r恢復(fù),則只能?chē)L試-o。
在不太可能的情況下-r失敗,數(shù)據(jù)文件保持完好)。

--safe-recover, -o
使用一個(gè)老的恢復(fù)方法讀取,按順序讀取所有行,并根據(jù)找到的行更新所有索引樹(shù)。這比-r慢些,
但是能處理-r不能處理的情況。該恢復(fù)方法使用的硬盤(pán)空間比-r少。一般情況,你應(yīng)首先用-r維修,如果-r失敗則用-o。

--sort-recover, -n
強(qiáng)制myisamchk通過(guò)排序來(lái)解析鍵值,即使臨時(shí)文件將可能很大。


5.myisamchk的其他選項(xiàng)
myisamchk支持以下表檢查和修復(fù)之外的其它操作的選項(xiàng):

--analyze,-a
分析鍵值的分布。這通過(guò)讓聯(lián)結(jié)優(yōu)化器更好地選擇表應(yīng)該以什么次序聯(lián)結(jié)和應(yīng)該使用哪個(gè)鍵來(lái)改進(jìn)聯(lián)結(jié)性能。
要想獲取分布相關(guān)信息,使用myisamchk --description --verbose tbl_name命令或SHOW KEYS FROM tbl_name語(yǔ)句。

--sort-index, -S
以從高到低的順序排序索引樹(shù)塊。這將優(yōu)化搜尋并且將使按鍵值的表掃描更快。

--set-auto-increment[=value], -A[value]
強(qiáng)制從給定值開(kāi)始的新記錄使用AUTO_INCREMENT編號(hào)(或如果已經(jīng)有AUTO_INCREMENT值大小的記錄,應(yīng)使用更高值)。
如果未指定value,新記錄的AUTO_INCREMENT編號(hào)應(yīng)使用當(dāng)前表的最大值加上1。

--description, -d
打印出關(guān)于表的描述性信息。
例如:
[root@qa-sandbox-1 mysql]# myisamchk -d user.MYI
MyISAM file: user.MYI
Record format: Packed
Character set: latin1_swedish_ci (8)
Data records: 6 Deleted blocks: 1
Recordlength: 346

table description:
Key Start Len Index Type
1 1 180 unique char packed stripped
181 48 char stripped


6.如何修復(fù)表

檢查你的表
如果你有很多時(shí)間,運(yùn)行myisamchk *.MYI或myisamchk -e *.MYI。使用-s(沉默)選項(xiàng)禁止不必要的信息。
如果mysqld服務(wù)器處于宕機(jī)狀態(tài),應(yīng)使用--update-state選項(xiàng)來(lái)告訴myisamchk將表標(biāo)記為'檢查過(guò)的'。

簡(jiǎn)單安全的修復(fù)
首先,試試myisamchk -r -q tbl_name(-r -q意味著“快速恢復(fù)模式”)
如果在修復(fù)時(shí),你得到奇怪的錯(cuò)誤(例如out of memory錯(cuò)誤),或如果myisamchk崩潰,到階段3。

困難的修復(fù)
只有在索引文件的第一個(gè)16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你才應(yīng)該到這個(gè)階段。在這種情況下,需要?jiǎng)?chuàng)建一個(gè)新的索引文件。按如下步驟操做:

1. 把數(shù)據(jù)文件移到安全的地方。
2. 使用表描述文件創(chuàng)建新的(空)數(shù)據(jù)文件和索引文件:
3. shell> mysql db_name
4. mysql> SET AUTOCOMMIT=1;
5. mysql> TRUNCATE TABLE tbl_name;
6. mysql> quit
如果你的MySQL版本沒(méi)有TRUNCATE TABLE,則使用DELETE FROM tbl_name。
7. 將老的數(shù)據(jù)文件拷貝到新創(chuàng)建的數(shù)據(jù)文件之中。(不要只是將老文件移回新文件之中;你要保留一個(gè)副本以防某些東西出錯(cuò)。)

回到階段2?,F(xiàn)在myisamchk -r -q應(yīng)該工作了。(這不應(yīng)該是一個(gè)無(wú)限循環(huán))。

你還可以使用REPAIR TABLE tbl_name USE_FRM,將自動(dòng)執(zhí)行整個(gè)程序。


非常困難的修復(fù)
只有.frm描述文件也破壞了,你才應(yīng)該到達(dá)這個(gè)階段。這應(yīng)該從未發(fā)生過(guò),因?yàn)樵诒肀粍?chuàng)建以后,描述文件就不再改變了。

1. 從一個(gè)備份恢復(fù)描述文件然后回到階段3。你也可以恢復(fù)索引文件然后回到階段2。對(duì)后者,你應(yīng)該用myisamchk -r啟動(dòng)。
2. 如果你沒(méi)有進(jìn)行備份但是確切地知道表是怎樣創(chuàng)建的,在另一個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建表的一個(gè)拷貝。刪除新的數(shù)據(jù)文件,然后從其他數(shù)據(jù)庫(kù)將描述文件和索引文件移到破壞的數(shù)據(jù)庫(kù)中。這樣提供了新的描述和索引文件,但是讓.MYD數(shù)據(jù)文件獨(dú)自留下來(lái)了?;氐诫A段2并且嘗試重建索引文件。

相關(guān)文章

  • MySQL redo死鎖問(wèn)題排查及解決過(guò)程分析

    MySQL redo死鎖問(wèn)題排查及解決過(guò)程分析

    被告知在多實(shí)例場(chǎng)景下 MySQL Server hang 住,無(wú)法測(cè)試下去,原生版本不存在這個(gè)問(wèn)題,而新版本上出現(xiàn)了這個(gè)問(wèn)題,不禁心頭一顫,心中不禁感到奇怪,還好現(xiàn)場(chǎng)環(huán)境還在,為排查問(wèn)題提供了一個(gè)好的環(huán)境,隨即便投入到緊張的問(wèn)題排查過(guò)程當(dāng)中
    2016-10-10
  • MySQL條件查詢(xún)語(yǔ)句常用操作全面匯總

    MySQL條件查詢(xún)語(yǔ)句常用操作全面匯總

    當(dāng)用戶(hù)查看表格的大量數(shù)據(jù)是,由于數(shù)據(jù)量過(guò)于巨大會(huì)導(dǎo)致很難獲取到需要的數(shù)據(jù),在這時(shí),就需要一個(gè)方法,一個(gè)可以通過(guò)用戶(hù)輸入獲取到用戶(hù)需要的數(shù)據(jù)并回填入表格,這就是條件查詢(xún)的作用
    2022-04-04
  • Mysql創(chuàng)建通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫(kù)

    Mysql創(chuàng)建通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫(kù)

    下面通過(guò)圖文并茂的方式給大家介紹通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫(kù)的創(chuàng)建過(guò)程,感興趣的朋友一起學(xué)習(xí)
    2016-04-04
  • MySQL 的CASE WHEN 語(yǔ)句使用說(shuō)明

    MySQL 的CASE WHEN 語(yǔ)句使用說(shuō)明

    本文介紹下,在mysql數(shù)據(jù)庫(kù)中,有關(guān)case when語(yǔ)句的用法,介紹了case when語(yǔ)句的基礎(chǔ)知識(shí),并提供了相關(guān)實(shí)例,供大家學(xué)習(xí)參考,有需要的朋友不要錯(cuò)過(guò)
    2011-10-10
  • Win10下免安裝版MySQL5.7的安裝和配置教程詳解

    Win10下免安裝版MySQL5.7的安裝和配置教程詳解

    這篇文章主要介紹了Win10下免安裝版MySQL5.7的安裝和配置教程詳解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • 最新評(píng)論