打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Maatkit数据库检查工具
这个maakit工具包不错,里面的有很多对mysql分析的软件

下载地址:http://code.google.com/p/maatkit/downloads/list
组件列表:http://www.maatkit.org/doc/

1.maatkit安装
一,安装DBI
cd /root
wget http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/authors/id/T/TI/TIMB/DBI-1.616.tar.gz
tar zxvf DBI-1.616.tar.gz
cd DBI-1.616

perl Makefile.PL
make && make install

二,安装data-showtable包
cd /root
wget http://search.cpan.org/CPAN/authors/id/A/AK/AKSTE/Data-ShowTable-3.3.tar.gz
tar zxvf Data-ShowTable-3.3.tar.gz
cd Data-ShowTable-3.3

perl Makefile.PL
make && make install
make的时候报错了:
*** ERROR: unterminated I<...> at line 724 in file ShowTable.pm
*** ERROR: unterminated I<...> at line 724 in file ShowTable.pm
编辑一下ShowTable.pm 找到724行,修改
I<\@title_formats 改为I<\@title_formats>
I<\@data_formats 改为I<\@data_formats>

三,安装msql-mysql-modules
cd /root
wget http://search.cpan.org/CPAN/authors/id/J/JW/JWIED/Msql-Mysql-modules-1.2219.tar.gz
tar zxvf Msql-Mysql-modules-1.2219.tar.gz
cd Msql-Mysql-modules-1.2219

perl Makefile.PL
make && make install
make的时候报错了:
make[1]: *** [mysql.o] Error 1
make[1]: Leaving directory `/root/Msql-Mysql-modules-1.2219/mysql'
make: *** [subdirs] Error 2
先执行第四步:在执行到make的时候会在目录下生成mysql.o文件,
cp /root/DBD-mysql-4.020/mysql.o /root/Msql-Mysql-modules-1.2219/mysql/后,
重新make一下就不会报错了

四,安装DBD-mysql
cd /root
wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.019.tar.gz
tar zxvf DBD-mysql-4.019.tar.gz
cd DBD-mysql-4.019

perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
make
make test
make test出错了,如果报错像上面一样,那么就执行
# cp /usr/local/mysql/lib/mysql/* /usr/lib
# cp /usr/local/mysql/lib/mysql/* /usr/lib64/(如果64位 否则是lib)
如果上面这一步没做,则到安装maatkit的时候,在perl Makefile.PL会出现警告:prerequisite DBD::mysql 1 not found.
make test
make
make install

五,安装maatkit
cd /root
wget -S http://maatkit.googlecode.com/files/maatkit-7540.tar.gz
tar zxvf maatkit-7540.tar.gz
cd maatkit-7540
perl Makefile.PL
make && make install

六、在主库添加用户

grant all privileges on *.* to 'root'@'192.168.9.1' identified by '123456';

为mk-table-checksum命令执行做准备

以下是mk-table-checksum的举例说明
命令行如下:

1、检测   mk-table-checksum h=192.168.9.1,u=root,p=123456,P=3306 h=127.0.0.1,u=root,p=passwd,P=3306 -d db1

对192.168.9.1和127.0.0.1的db1库进行了一次一致性对比测试。

DATABASE:数据库名
TABLE:表名
CHUNK:checksum时的近似数值
HOST:MYSQL的地址
ENGINE:表引擎
COUNT:表的行数
CHECKSUM:校验值
TIME:所用时间
WAIT:等待时间
STAT:MASTER_POS_WAIT()返回值
LAG:slave的延时时间

2、如果你想过滤出不相等的都有哪些表,可以用mk-checksum-filter这个工具

mk-table-checksum h=192.168.9.1,u=root,p=123456,P=3306 h=127.0.0.1,u=root,p=passwd,P=3306 -d db1 |mk-checksum-filter

当检查时报错为
Had to create DBD::mysql::dr::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/DBI.pm line 1063.
Had to create DBD::mysql::db::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/DBI.pm line 1063.
Undefined subroutine &DBD::mysql::db::_login called at /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/DBD/mysql.pm line 129.
安装perl模块
perl -MCPAN -e shell
install DBD::mysql
install dr::imp_data

3、mk-table-sync       先主后从有效保证表一致的工具,不必重载从表而能够保证一致。
[root@vm01 ~]# mk-table-sync --execute   --charset=utf8   --print --no-check-slave --databases test h=192.168.9.1,u=admin,p=123456 h=192.168.9.2,u=admin,p=123456

这里要说明一下,--no-check-slave这个参数,如果你不加这个参数,会提示报错,因为这个工具默认是不允许在从库上修改数据的,但我们这里为了不在主库上dump出来,再到从库上导入进去,加了这个参数。

它的工作原理是:先一行一行检查主从库的表是否一样,如果哪里不一样,就执行删除,更新,插入等操作,使其达到一致。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mysql主从数据不一致的解决方法(转)
安装配置otrs客服系统
MySQL MHA /usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln301] install_driver(mysql) failed: At
卸载Centos下自带mysql
卸载已经安装的rpm包
Perl直接入门详尽指南
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服