收藏 分销(赏)

Maatkit--Mysql的高级管理工具集.doc

上传人:仙人****88 文档编号:9257236 上传时间:2025-03-18 格式:DOC 页数:5 大小:130KB 下载积分:10 金币
下载 相关 举报
Maatkit--Mysql的高级管理工具集.doc_第1页
第1页 / 共5页
Maatkit--Mysql的高级管理工具集.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
Maatkit--Mysql的高级管理工具集 Maatkit是Mysql的一个高级管理工具集。 官方网站:http://www.maatkit.org/ #1安装一系列依赖软件 Perl perl-DBI.x86_64 : A database access API for perl perl-DBD-MySQL.x86_64 : A MySQL interface for perl perl-TermReadKey wget http://packages.sw.be/perl-TermReadKey/perl-TermReadKey-2.30-3.el5.rf.x86_64.rpm rpm -ivh perl-TermReadKey-2.30-3.el5.rf.x86_64.rpm #2安装maatkit wget rpm -ivh maatkit-6839-1.noarch.rpm #3maatkit所包含的常用工具 #01、mk-table-checksum检查主从表是否一致及有效的工具 #02、mk-table-sync使表一致的工具,不必重载从表而能够保证一致 #03、mk-visual-explainexlpain解释工具 #04、mk-heartbeat主从同步的监视工具,能够给出从落后于主多少 #05、mk-parallel-dump多线程的mysqldump工具 #06、mk-parallel-restore多线程的表修复工具 #07、mk-query-profiler查询检测分析工具 #08、mk-deadlock-logger死锁的记录工具 #09、mk-duplicate-key-checkerkey侦测工具 #10、mk-show-grants权限管理显示工具 #11、mk-slave-restart slave的检测和重启工具 #12、mk-slave-delay slave delay replication 的工具 #4使用 maatkit 的工具检查master和slave之间不一致的数据表 示例如下: Run代码   1. [root@mysql-1 ~]# mk-table-checksum h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 -d test      2. DATABASE TABLE CHUNK HOST        ENGINE      COUNT         CHECKSUM TIME WAIT STAT  LAG      3. test     t         0 10.1.30.203 MyISAM       NULL       1096324035    0    0 NULL NULL      4. test     t         0 10.1.30.204 MyISAM       NULL        261265495    0    0 NULL NULL      5. test     t2        0 10.1.30.203 MyISAM       NULL       3459908756    0    0 NULL NULL      6. test     t2        0 10.1.30.204 MyISAM       NULL       3459908756    0    0 NULL NULL      7. test     t3        0 10.1.30.203 MyISAM       NULL                0    0    0 NULL NULL      8. test     t3        0 10.1.30.204 MyISAM       NULL                0    0    0 NULL NULL      9. test     t4        0 10.1.30.203 InnoDB       NULL       2248149615    0    0 NULL NULL      10. test     t4        0 10.1.30.204 InnoDB       NULL       1413091075    0    0 NULL NULL      11. test     t5        0 10.1.30.203 MyISAM       NULL                0    0    0 NULL NULL      12. test.t5 does not exist on slave 10.1.30.204:3306 at /usr/bin/mk-table-checksum line 6223.      13. test     t5        0 10.1.30.204 MyISAM       NULL             NULL    0    0 NULL NULL      14. test     t6        0 10.1.30.203 MyISAM       NULL                0    0    0 NULL NULL      15. test     t6        0 10.1.30.204 MyISAM       NULL                0    0    0 NULL NULL    [root@mysql-1 ~]# mk-table-checksum h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 -d test DATABASE TABLE CHUNK HOST ENGINE COUNT CHECKSUM TIME WAIT STAT LAG test t 0 10.1.30.203 MyISAM NULL 1096324035 0 0 NULL NULL test t 0 10.1.30.204 MyISAM NULL 261265495 0 0 NULL NULL test t2 0 10.1.30.203 MyISAM NULL 3459908756 0 0 NULL NULL test t2 0 10.1.30.204 MyISAM NULL 3459908756 0 0 NULL NULL test t3 0 10.1.30.203 MyISAM NULL 0 0 0 NULL NULL test t3 0 10.1.30.204 MyISAM NULL 0 0 0 NULL NULL test t4 0 10.1.30.203 InnoDB NULL 2248149615 0 0 NULL NULL test t4 0 10.1.30.204 InnoDB NULL 1413091075 0 0 NULL NULL test t5 0 10.1.30.203 MyISAM NULL 0 0 0 NULL NULL test.t5 does not exist on slave 10.1.30.204:3306 at /usr/bin/mk-table-checksum line 6223. test t5 0 10.1.30.204 MyISAM NULL NULL 0 0 NULL NULL test t6 0 10.1.30.203 MyISAM NULL 0 0 0 NULL NULL test t6 0 10.1.30.204 MyISAM NULL 0 0 0 NULL NULL   mk-table-checksum的过滤工具mk-checksum-filter,例如我只想知道上面的例子中,test库中哪些表不是一致的。只需要加一个管道符。       Run代码   1. [root@mysql-1 ~]# mk-table-checksum h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 -d test |mk-checksum-filter  test     t         0 10.1.30.203 MyISAM       NULL       1096324035    0    0 NULL NULL      2. test     t         0 10.1.30.204 MyISAM       NULL        261265495    0    0 NULL NULL      3. test     t4        0 10.1.30.203 InnoDB       NULL       2248149615    0    0 NULL NULL      4. test     t4        0 10.1.30.204 InnoDB       NULL       1413091075    0    0 NULL NULL      5. test.t5 does not exist on slave 10.1.30.204:3306 at /usr/bin/mk-table-checksum line 6223.      6. test     t5        0 10.1.30.203 MyISAM       NULL                0    0    0 NULL NULL      7. test     t5        0 10.1.30.204 MyISAM       NULL             NULL    0    0 NULL NULL    [root@mysql-1 ~]# mk-table-checksum h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 -d test |mk-checksum-filter test t 0 10.1.30.203 MyISAM NULL 1096324035 0 0 NULL NULL test t 0 10.1.30.204 MyISAM NULL 261265495 0 0 NULL NULL test t4 0 10.1.30.203 InnoDB NULL 2248149615 0 0 NULL NULL test t4 0 10.1.30.204 InnoDB NULL 1413091075 0 0 NULL NULL test.t5 does not exist on slave 10.1.30.204:3306 at /usr/bin/mk-table-checksum line 6223. test t5 0 10.1.30.203 MyISAM NULL 0 0 0 NULL NULL test t5 0 10.1.30.204 MyISAM NULL NULL 0 0 NULL NULL   需要注意的是,mk-table-checksum工具在检查的时候会对表加一个表级锁,应该放在系统不繁忙的时候执行。 #5继续使用maatkit的表同步工具mk-table-sync使从库的表跟主库保持一致 master :h=10.1.30.203,P=3306 slave :h=10.1.30.204,P=3306 master: Run代码   1. mysql> SELECT * FROM test.t;      2. +------+     3. | id   |      4. +------+     5. |    5 |      6. +------+     7. 1 row INSET (0.00 sec)    mysql> SELECT * FROM test.t; +------+ | id | +------+ | 5 | +------+ 1 row INSET (0.00 sec) slave:     Run代码   1. mysql> SELECT * FROM test.t;      2. +------+     3. | id   |      4. +------+     5. |    5 |      6. |    1 |      7. +------+     8. 2 rowsINSET (0.00 sec)    mysql> SELECT * FROM test.t; +------+ | id | +------+ | 5 | | 1 | +------+ 2 rowsINSET (0.00 sec)  二者数据不一致,从刚才mk-table-checksum已经检查出来了,这里使用sync工具生成修正sql: Run代码   1. 01.[root@mysql-1 mysql-5.1.40]# mk-table-sync h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 <strong>--print</strong> <strong>--no-check-slave</strong> -d test -t t      2. DELETE FROM `test`.`t` WHERE `id`='1' LIMIT 1 /*maatkit src_db:test src_tbl:t src_dsn:P=3306,h=10.1.30.203,p=...,u=dba dst_db:test dst_tbl:t dst_dsn:P=3306,h=10.1.30.204,p=...,u=dba lock:0 transaction:0 changing_src:0 replicate:0 bidirectional:0 pid:25072 user:root host:mysql-1*/;    01.[root@mysql-1 mysql-5.1.40]# mk-table-sync h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 <strong>--print</strong> <strong>--no-check-slave</strong> -d test -t t DELETE FROM `test`.`t` WHERE `id`='1' LIMIT 1 /*maatkit src_db:test src_tbl:t src_dsn:P=3306,h=10.1.30.203,p=...,u=dba dst_db:test dst_tbl:t dst_dsn:P=3306,h=10.1.30.204,p=...,u=dba lock:0 transaction:0 changing_src:0 replicate:0 bidirectional:0 pid:25072 user:root host:mysql-1*/;   复制环境中,若是slave是不允许直接进行修正的,除非添加–no-check-slave这个参数; –print表示把修正的语句打印出来 –execute表示直接执行修正操作 再举个例子: master: Run代码   1. mysql> SELECT * FROM test.t;      2. +------+     3. | id   |      4. +------+     5. |    5 |      6. |    2 |      7. +------+     8. 2 row INSET (0.00 sec)    mysql> SELECT * FROM test.t; +------+ | id | +------+ | 5 | | 2 | +------+ 2 row INSET (0.00 sec)   slave: Run代码   1. mysql> SELECT * FROM test.t;      2. +------+     3. | id   |      4. +------+     5. |    5 |      6. +------+     7. 1 rowsINSET (0.00 sec)   mysql> SELECT * FROM test.t; +------+ | id | +------+ | 5 | +------+ 1 rowsINSET (0.00 sec)   Run代码   1. [root@mysql-1 mysql-5.1.40]# mk-table-sync h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 --print --execute --no-check-slave  -d test -t t      2. INSERT INTO `test`.`t`(`id`) VALUES ('2') /*maatkit src_db:test src_tbl:t src_dsn:P=3306,h=10.1.30.203,p=...,u=dba dst_db:test dst_tbl:t dst_dsn:P=3306,h=10.1.30.204,p=...,u=dba lock:0 transaction:0 changing_src:0 replicate:0 bidirectional:0 pid:25091 user:root host:mysql-1*/;   [root@mysql-1 mysql-5.1.40]# mk-table-sync h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306 --print --execute --no-check-slave -d test -t t INSERT INTO `test`.`t`(`id`) VALUES ('2') /*maatkit src_db:test src_tbl:t src_dsn:P=3306,h=10.1.30.203,p=...,u=dba dst_db:test dst_tbl:t dst_dsn:P=3306,h=10.1.30.204,p=...,u=dba lock:0 transaction:0 changing_src:0 replicate:0 bidirectional:0 pid:25091 user:root host:mysql-1*/;   需要注意的是,若是在主从环境中,想把slave中数据不一致的表跟master保持一致(拿master的数据更新slave),那么这部分【h=10.1.30.203,u=dba,p=dba,P=3306 h=10.1.30.204,u=dba,p=dba,P=3306】的顺序,master应该在前。因为这里的顺序 source-db target-db,代表拿source-db的数据更新target-db
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服