pt-config-diff进行mysql配置文件和系统变量值对比

pt-config-diff进行mysql配置文件和系统变量值对比
通过此工具可以对比master、slave的配置是否有差异,对比各个版本的差异等。

Usage
pt-config-diff [OPTIONS] CONFIG CONFIG [CONFIG...]

CONFIG能为一文件名(包含mysqld --help --verbose,my_print_defaults,show variables的输出的文件或mysql的选项配置文件)或DSN,必须给定两个CONFIG源,如unix的diff命令,如果没有不同,将不输出信息。
对每个DSN CONFIG,pt-config-diff连接到mysql,执行SHOW /*!40103 GLOBAL*/ VARIABLES;查询变量和值。
仅仅变量在所有CONFIG都存在时,才进行对比。

1、对比10.0.37.122(端口为3306实例)和10.0.37.123(端口为3307实例)的show variables的值:
    
    
    
    
  1. pt-config-diff h=10.0.37.122,P=3306,u=sysbench,p=sysbench h=10.0.37.123,P=3307,u=sysbench,p=sysbench

因用户名和密码相同,也可以使用:
    
    
    
    
  1. pt-config-diff -usysbench -psysbench h=10.0.37.122,P=3306 h=10.0.37.123,P=3307

2、对比配置文件的[mysqld]部分跟主机show variables的配置:
    
    
    
    
  1. pt-config-diff -usysbench -psysbench my.cnf h=10.0.37.123,P=3307

3、对比两个配置文件的[mysqld]部分:
    
    
    
    
  1. pt-config-diff my.cnf  ../mysql-5.6.19-linux-glibc2.5-x86_64/my.cnf 

输出信息:
如果变量值没有不同,将不输出任何信息(退出码为0)。如果有不同,将打印报告到标准输出,如:
    
    
    
    
  1. # pt-config-diff h=10.0.37.122 h=10.0.37.123 --user=sysbench --password=sysbench
  2. 46 config differences #显示有多少个变量值不同
  3. Variable                  myhost01                  myhost02 #显示主机名或配置文件名
  4. ========================= ========================= =========================
  5. basedir                   /opt/mysql-5.6.19-linu... /opt/Percona-Server-5.... #显示不同的变量和值
  6. binlog_format             ROW                       STATEMENT
  7. character_set_client      utf8                      gbk
  8. character_set_connection  utf8                      gbk
  9. character_set_database    utf8                      gbk
  10. character_set_results     utf8                      gbk
  11. character_set_server      utf8                      gbk
  12. character_sets_dir        /opt/mysql-5.6.19-linu... /opt/Percona-Server-5....
  13. collation_connection      utf8_general_ci           gbk_chinese_ci
  14. collation_database        utf8_general_ci           gbk_chinese_ci
  15. collation_server          utf8_general_ci           gbk_chinese_ci
  16. datadir                   /data/mysql56/            /data/percona56/
  17. event_scheduler           DISABLED                  OFF
  18. general_log_file          /data/mysql56/myhost01... /data/percona56/myhost...
  19. hostname                  myhost01                  myhost02
  20. innodb_buffer_pool_size   5368709120                17179869184

运行命令后在/tmp目录创建percona-version-check文件,第二次运行时将直接读取。在进行检查时,要先移除该文件。

工具命令选项:
--ask-pass:当连接到mysql时,提示输入密码
--charset,-A:默认字符集设置
--config:指定工具的配置文件,读逗号分隔的配置文件列表,如果指定,必须是命令行的第一个参数,如果没有指定CONFIG,等于--defaults-file选项
--database,-D:连接到指定的数据库
--default-file,-F:仅仅读mysql选项来自给定的文件,必须给配置文件的绝对路径
--help:输出帮助信息
--host,-h:连接到哪个主机
--[no]ignore-case:对比变量,不区分大小写
--ignore-variables:忽略指定变量不进行对比
--password,-p:连接到数据库的密码
--pid:创建一个pid文件,如果pid文件已经存在,工具将不运行,当工具退出时,自动移除pid文件
--port,-P:连接到mysql的端口号
--[no]report:打印mysql配置不同的报告到STDOUT
--report-width:默认78,截断报告行到多少字符
--set-vars:设置mysql变量,用逗号分隔的variable=value列表,默认设置wait_timeout=10000
--socket,-S:指定连接的socket文件
--user,-u:指定连接数据库的用户名

调试:这是环境变量PTDEBUG=1,输出调试信息到STDERR
PTDEBUG=1 pt-config-diff ...

总结:
1、该工具只能对CONFIG中都出现的变量才进行对比;
2、不能指定对比某些变量,如对比binlog_format,server_id;



来自为知笔记(Wiz)


你可能感兴趣的:(pt-config-diff进行mysql配置文件和系统变量值对比)