MySQL管理員必備的十大工具盤(pán)點(diǎn)(5) |
發(fā)布時(shí)間: 2012/6/16 19:03:38 |
MySQL必備工具第五位: mk-table-checksum“數(shù)據(jù)偏差”是廣泛存在于動(dòng)態(tài)MySQL環(huán)境之中的一項(xiàng)重大問(wèn)題。其實(shí)際含義為:從屬數(shù)據(jù)未能與主體數(shù)據(jù)正確同步,發(fā)生的原因主要是從屬數(shù)據(jù)端出現(xiàn)寫(xiě)入操作或者主體數(shù)據(jù)端執(zhí)行了具備不確定性的查詢(xún)指令。更糟糕的是,數(shù)據(jù)偏差情況很可能會(huì)被管理人員所忽視,直到爆發(fā)嚴(yán)重后果。Mk-table-checksum該登場(chǎng)了,這款工具的作用是在執(zhí)行復(fù)雜、敏感的計(jì)算時(shí),并行驗(yàn)證兩個(gè)或多個(gè)列表中相關(guān)數(shù)據(jù)內(nèi)容的一致性。 mk-table-checksum 能夠分別為獨(dú)立服務(wù)器及同步架構(gòu)中的服務(wù)器提供幫助,這也是該工具最大的亮點(diǎn)所在。主體服務(wù)器與從屬服務(wù)器之間的數(shù)據(jù)一致性在同步時(shí)必須得到充分的重視。由于主體數(shù)據(jù)變更在向從屬數(shù)據(jù)同步的過(guò)程中存在一定程度的滯后(即延遲),因此直接讀取服務(wù)器數(shù)據(jù)的方式無(wú)法嚴(yán)格保證信息的一致性,因?yàn)閿?shù)據(jù)在同步完全結(jié)束之前,一直處于不斷變化且并不完整的狀態(tài)下。鎖定列表、等等所有數(shù)據(jù)同步結(jié)束之后再進(jìn)行驗(yàn)證當(dāng)然行之有效,但這種方案意味著我們不得不同時(shí)中止服務(wù)器服務(wù)的正常響應(yīng)。mk-table- checksum允許大家在不鎖定列表的前提下,對(duì)主體及從屬數(shù)據(jù)間的差異性進(jìn)行驗(yàn)證(至于該技術(shù)的具體實(shí)現(xiàn)方法,請(qǐng)單擊此處參閱工具文檔)。 http://www.maatkit.org/doc/mk-table-checksum.html 除了同步過(guò)程中的一致性,數(shù)據(jù)驗(yàn)證在其它一些方面也頗具意義,例如列表尺寸問(wèn)題。MySQL的CHECKSUM TABLE指令對(duì)于小型列表來(lái)說(shuō)完全夠用,但規(guī)模龐大的列表往往需要“分塊”處理,以避免在校驗(yàn)及計(jì)算的過(guò)程中CPU或內(nèi)存發(fā)生長(zhǎng)期鎖死或超載的狀況。 分塊處理能夠應(yīng)付的第二個(gè)大問(wèn)題是對(duì)數(shù)據(jù)一致性定期檢查的要求。雖然數(shù)據(jù)偏差可能只是一次偶然的意外,但事實(shí)上遇到臉丑手黑的管理員,這類(lèi)問(wèn)題也許會(huì)反復(fù)發(fā)作。mk-table-checksum的設(shè)計(jì)初衷正是對(duì)列表進(jìn)行定期檢查,且整個(gè)驗(yàn)證過(guò)程分步分塊、循序漸進(jìn),直到整套大規(guī)模列表處理完畢。這種持續(xù)性處理方式有助于管理員對(duì)數(shù)據(jù)偏差進(jìn)行經(jīng)常性校對(duì)。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |