mysql數據校驗工具mk-table-checksum

校驗工具介紹:html

     1. mysql管理工具 maatkit, 包含如下主要工具:mysql

mk-table-checksum 檢查主從表是否一致的有效工具linux

mk-table-sync 沒必要重載從表而可以保證一致,打印、修復兩個表之間不一致的記錄。算法

mk-visual-explainexlpain解釋工具sql

mk-heartbeat 主從同步的監視工具,可以給出從落後於主多少數據庫

mk-parallel-dump 多線程的mysqldump工具服務器

mk-parallel-restore 多線程的表回覆工具多線程

mk-query-profiler 查詢檢測分析工具ide

mk-deadlock-logger 死鎖的記錄工具,支持innodb函數

mk-duplicate-key-checker key偵測工具

mk-show-grants 權限管理顯示工具

mk-slave-restart slave的檢測和重啓工具

mk-slave-delay slave delay replication 的工具

2.  校驗環境主要使用工具:

MK-table-checksum

用於對比一個服務器上不一樣庫之間的數據,也可用於對比多個服務器上數據庫之間的數據;可對在線的replication進行一致性檢查。比較方法有三種,函數也能夠自選。

MK-checksum-filter

用於對mk-table-checksum產生的結果作過濾,並輸出不一樣的結果集

詳細可參考:http://www.maatkit.org/doc/mk-table-checksum.html3.

3. Maatkit工具包安裝:

必備依賴包:yum install perl-DBI perl-DBD-MySQL perl-TermReadKey perl-Time-HiRes

#wget ftp://rpmfind.net/linux/epel/6/x86_64/maatkit-7332-1.el6.noarch.rpm 

#rpm -ivh /tmp/dbbak/maatkit-7332-1.el6.noarch.rpm

校驗目的:

mysql主從同步後,按期檢查數據同步的一致性。

校驗方法:

mk-table-checksum h=x.x.x.x,u=user1,p=xxx h=x.x.x.x,u=user1,p=xxx -d test

      h校驗的數據庫服務器地址賬號密碼

     -d 需校驗的數據庫

     -t 需校驗的表

例:測試兩臺數據庫服務器中的test庫是否一致

Checksum的值可判斷錶行是否一致(其輸出結果的checksum數值非行數)。

Checksum算法原理:把要發送的數據當作二進制整數序列,並計算他們的和。若數據字節長度爲奇數,則在數據尾部補一個字節的0以湊成偶數。爲了計算效驗和,發送計算機把每對字符當成16位整數處理並計算效驗和。若是效驗和大於16位,那麼把進位一塊兒加到最後的效驗和中。

如上圖127.0.0.1192.168.1.11checksum值徹底相等,兩臺數據庫數據一致。

輸出項說明:

DATABASE:數據庫名

TABLE:表名

CHUNKchecksum時的近似數值

HOSTMYSQL的地址

ENGINE:表引擎

COUNT:表的行數

CHECKSUM:校驗值

TIME:所用時間

WAIT:等待時間

STATMASTER_POS_WAIT()返回值

LAGslave的延時時間

若是想過濾出不相等的都有哪些表,能夠用mk-checksum-filter這個工具,經過管道使用

mk-table-checksum h=x.x.x.x,u=user1,p=xxx h=x.x.x.x,u=user1,p=xxx -d test|mk-checksum-filter

過濾出不相等的表.

 

注:mysql版本不一致,配置環境不一樣都有可能致使兩臺數據庫校驗結果不一致。

相關文章
相關標籤/搜索