Maatkit--Mysql的高级管理工具集.doc_第1页
Maatkit--Mysql的高级管理工具集.doc_第2页
Maatkit--Mysql的高级管理工具集.doc_第3页
Maatkit--Mysql的高级管理工具集.doc_第4页
Maatkit--Mysql的高级管理工具集.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Maatkit-Mysql的高级管理工具集 Maatkit是Mysql的一个高级管理工具集。 官方网站:/#1安装一系列依赖软件Perlperl-DBI.x86_64 : A database access API for perlperl-DBD-MySQL.x86_64 : A MySQL interface for perlperl-TermReadKeywget http:/packages.sw.be/perl-TermReadKey/perl-TermReadKey-2.30-3.el5.rf.x86_64.rpmrpm -ivh perl-TermReadKey-2.30-3.el5.rf.x86_64.rpm#2安装maatkitwget /files/maatkit-6839-1.noarch.rpmrpm -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. rootmysql-1#mk-table-checksumh=03,u=dba,p=dba,P=3306h=04,u=dba,p=dba,P=3306-dtest 2. DATABASETABLECHUNKHOSTENGINECOUNTCHECKSUMTIMEWAITSTATLAG 3. testt003MyISAMNULL109632403500NULLNULL 4. testt004MyISAMNULL26126549500NULLNULL 5. testt2003MyISAMNULL345990875600NULLNULL 6. testt2004MyISAMNULL345990875600NULLNULL 7. testt3003MyISAMNULL000NULLNULL 8. testt3004MyISAMNULL000NULLNULL 9. testt4003InnoDBNULL224814961500NULLNULL 10. testt4004InnoDBNULL141309107500NULLNULL 11. testt5003MyISAMNULL000NULLNULL 12. test.t5doesnotexistonslave04:3306at/usr/bin/mk-table-checksumline6223. 13. testt5004MyISAMNULLNULL00NULLNULL 14. testt6003MyISAMNULL000NULLNULL 15. testt6004MyISAMNULL000NULLNULLrootmysql-1 # mk-table-checksum h=03,u=dba,p=dba,P=3306 h=04,u=dba,p=dba,P=3306 -d test DATABASE TABLE CHUNK HOST ENGINE COUNT CHECKSUM TIME WAIT STAT LAG test t 0 03 MyISAM NULL 1096324035 0 0 NULL NULL test t 0 04 MyISAM NULL 261265495 0 0 NULL NULL test t2 0 03 MyISAM NULL 3459908756 0 0 NULL NULL test t2 0 04 MyISAM NULL 3459908756 0 0 NULL NULL test t3 0 03 MyISAM NULL 0 0 0 NULL NULL test t3 0 04 MyISAM NULL 0 0 0 NULL NULL test t4 0 03 InnoDB NULL 2248149615 0 0 NULL NULL test t4 0 04 InnoDB NULL 1413091075 0 0 NULL NULL test t5 0 03 MyISAM NULL 0 0 0 NULL NULL test.t5 does not exist on slave 04:3306 at /usr/bin/mk-table-checksum line 6223. test t5 0 04 MyISAM NULL NULL 0 0 NULL NULL test t6 0 03 MyISAM NULL 0 0 0 NULL NULL test t6 0 04 MyISAM NULL 0 0 0 NULL NULL mk-table-checksum的过滤工具mk-checksum-filter,例如我只想知道上面的例子中,test库中哪些表不是一致的。只需要加一个管道符。 Run代码 1. rootmysql-1#mk-table-checksumh=03,u=dba,p=dba,P=3306h=04,u=dba,p=dba,P=3306-dtest|mk-checksum-filtertestt003MyISAMNULL109632403500NULLNULL 2. testt004MyISAMNULL26126549500NULLNULL 3. testt4003InnoDBNULL224814961500NULLNULL 4. testt4004InnoDBNULL141309107500NULLNULL 5. test.t5doesnotexistonslave04:3306at/usr/bin/mk-table-checksumline6223. 6. testt5003MyISAMNULL000NULLNULL 7. testt5004MyISAMNULLNULL00NULLNULLrootmysql-1 # mk-table-checksum h=03,u=dba,p=dba,P=3306 h=04,u=dba,p=dba,P=3306 -d test |mk-checksum-filter test t 0 03 MyISAM NULL 1096324035 0 0 NULL NULL test t 0 04 MyISAM NULL 261265495 0 0 NULL NULL test t4 0 03 InnoDB NULL 2248149615 0 0 NULL NULL test t4 0 04 InnoDB NULL 1413091075 0 0 NULL NULL test.t5 does not exist on slave 04:3306 at /usr/bin/mk-table-checksum line 6223. test t5 0 03 MyISAM NULL 0 0 0 NULL NULL test t5 0 04 MyISAM NULL NULL 0 0 NULL NULL 需要注意的是,mk-table-checksum工具在检查的时候会对表加一个表级锁,应该放在系统不繁忙的时候执行。#5继续使用maatkit的表同步工具mk-table-sync使从库的表跟主库保持一致master :h=03,P=3306slave :h=04,P=3306master:Run代码 1. mysqlSELECT*FROMtest.t; 2. +-+ 3. |id| 4. +-+ 5. |5| 6. +-+ 7. 1rowINSET(0.00sec)mysql SELECT * FROM test.t; +-+ | id | +-+ | 5 | +-+ 1 row INSET (0.00 sec) slave: Run代码 1. mysqlSELECT*FROMtest.t; 2. +-+ 3. |id| 4. +-+ 5. |5| 6. |1| 7. +-+ 8. 2rowsINSET(0.00sec)mysql SELECT * FROM test.t; +-+ | id | +-+ | 5 | | 1 | +-+ 2 rowsINSET (0.00 sec) 二者数据不一致,从刚才mk-table-checksum已经检查出来了,这里使用sync工具生成修正sql:Run代码 1. 01.rootmysql-1mysql-5.1.40#mk-table-synch=03,u=dba,p=dba,P=3306h=04,u=dba,p=dba,P=3306-print-no-check-slave-dtest-tt 2. DELETEFROMtest.tWHEREid=1LIMIT1/*maatkitsrc_db:testsrc_tbl:tsrc_dsn:P=3306,h=03,p=.,u=dbadst_db:testdst_tbl:tdst_dsn:P=3306,h=04,p=.,u=dbalock:0transaction:0changing_src:0replicate:0bidirectional:0pid:25072user:roothost:mysql-1*/;01.rootmysql-1 mysql-5.1.40# mk-table-sync h=03,u=dba,p=dba,P=3306 h=04,u=dba,p=dba,P=3306 -print -no-check-slave -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=03,p=.,u=dba dst_db:test dst_tbl:t dst_dsn:P=3306,h=04,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. mysqlSELECT*FROMtest.t; 2. +-+ 3. |id| 4. +-+ 5. |5| 6. |2| 7. +-+ 8. 2rowINSET(0.00sec)mysql SELECT * FROM test.t; +-+ | id | +-+ | 5 | | 2 | +-+ 2 row INSET (0.00 sec) slave:Run代码 1. mysqlSELECT*FROMtest.t; 2. +-+ 3. |id| 4. +-+ 5. |5| 6. +-+ 7. 1rowsINSET(0.00sec)mysql SELECT * FROM test.t; +-+ | id | +-+ | 5 | +-+ 1 rowsINSET (0.00 sec)Run代码 1. rootmysql-1mysql-5.1.40#mk-table-synch=03,u=dba,p=dba,P=3306h=04,u=dba,p=dba,P=3306-print-execute-no-check-slave-dtest-tt 2. INSERTINTOtest.t(id)VALUES(2)/*maatkitsrc_db:testsrc_tbl:tsrc_dsn:P=3306,h=03,p=.,u=dbadst_db:testdst_tbl:tdst_dsn:P=3306,h=04,p=.,u=dbalock:0transaction:0changing_src:0replicate:0bidi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论