当前位置: 首页 > 工具软件 > Maatkit > 使用案例 >

mysql 数据探测工具,Maatkit数据库检查工具

印曜灿
2023-12-01

这个maakit工具包不错,里面的有很多对mysql分析的软件

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

I

三,安装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出来,再到从库上导入进去,加了这个参数。

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

 类似资料: