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