Percona-Toolkit系列之pt-config-diff数据库配置对比利器

1.工具简介

percona-toolkit版本:2.2.19-1

pt-config-diff 2.2.19

在运维过程中,我们时常遇到这样的烦恼,两套库配置差不多,性能就是不一样,无奈之举,去比对数据库配置是否相同,人肉对比,不仅效率低下而且容易出错哦。pt拿出了这么一个神器,专门对比mysql配置,有这么几种对比方式:

pt (2)

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?哈哈

 

Write a Reply or Comment

电子邮件地址不会被公开。 必填项已用*标注