1.工具简介
percona-toolkit版本:2.2.19-1
pt-config-diff 2.2.19
在运维过程中,我们时常遇到这样的烦恼,两套库配置差不多,性能就是不一样,无奈之举,去比对数据库配置是否相同,人肉对比,不仅效率低下而且容易出错哦。pt拿出了这么一个神器,专门对比mysql配置,有这么几种对比方式:
2.参数和参数文件对比
假如有两份配置文件如下,我们需要找他们的不同:
[mysql@hpc02 ~]$ ls -l my1.cnf -rw-rw-r-- 1 mysql mysql 236 Oct 10 14:33 my1.cnf [mysql@hpc02 ~]$ cat my1.cnf [mysqld] innodb_buffer_pool_size = 256M basedir = /u01/app/percona-server-5.7.13-6 datadir = /data/mysqldata1 port = 3306 server_id = 9908 socket = /data/mysqldata1/tmp/mysql.socket sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql@hpc02 ~]$ ls -l my2.cnf -rw-rw-r-- 1 mysql mysql 236 Oct 10 14:33 my2.cnf [mysql@hpc02 ~]$ cat my2.cnf [mysqld] innodb_buffer_pool_size = 512M basedir = /u01/app/percona-server-5.7.13-6 datadir = /data/mysqldata2 port = 3307 server_id = 9909 socket = /data/mysqldata2/tmp/mysql.socket sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
如果人肉来对比,看着头晕眼花,说不定还错误一大片。现在就拿出神器吧。haha
[mysql@hpc02 ~]$ pt-config-diff my1.cnf my2.cnf 5 config differences Variable my1.cnf my2.cnf ========================= ========================= ========================= datadir /data/mysqldata1 /data/mysqldata2 innodb_buffer_pool_size 268435456 536870912 port 3306 3307 server_id 9908 9909 socket /data/mysqldata1/tmp/m... /data/mysqldata2/tmp/m...
是不是一目了然,这个神器就是这么嗨。
3.运行的MySQL和参数文件对比
假如数据库正在运行,我要将数据库的配置和一个配置文件对比:
[mysql@hpc02 conf]$ pt-config-diff h=192.168.56.103,P=3306,u=root,p=111111 my3.cnf 2 config differences Variable hpc02 my3.cnf ========================= ========= =========== innodb_buffer_pool_size 268435456 34359738368 innodb_log_file_size 67108864 1073741824
只需一账号登录数据库即可获取其配置信息,将其与指定的配置文件做对比,参数解释:
h:数据库主机
P:端口号
u:用户名
p:密码
配置文件和数据库连接串空格分开就好了。
3.运行的MySQL和运行的MySQL做对比
这个非常有用,常用语两个线上环境做对比,我们只需给出两套库的登录串即可:
[mysql@hpc02 conf]$ pt-config-diff h=192.168.56.103,P=3306,u=root,p=111111 h=192.168.56.103,P=9909,u=root,p=111111 13 config differences Variable hpc02 hpc02 ========================= ========================= ========================= datadir /data/mysqldata2/ /data/mysqldata3/ general_log_file /data/mysqldata2/hpc02... /data/mysqldata3/hpc02... innodb_log_file_size 67108864 134217728 log_bin_basename /data/mysqldata2/mysql... /data/mysqldata3/mysql... log_bin_index /data/mysqldata2/mysql... /data/mysqldata3/mysql... log_error /data/mysqldata2/mysql... /data/mysqldata3/mysql... pid_file /data/mysqldata2/mysql... /data/mysqldata3/mysql... port 3306 9909 report_port 3306 9909 server_id 1 3 server_uuid cbdc69f6-8eb5-11e6-aac... b3edbe4e-8eb7-11e6-99e... slow_query_log_file /data/mysqldata2/mysql... /data/mysqldata3/mysql... socket /data/mysqldata2/mysql... /data/mysqldata3/mysql...
一览无余,尽收眼底。pt用着是不是有种很爽的feel?哈哈