前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Percona Toolkit系列 — pt-config-diff

Percona Toolkit系列 — pt-config-diff

原创
作者头像
brightdeng@DBA
修改2021-04-29 15:14:10
1.5K2
修改2021-04-29 15:14:10
举报

前言

pt-config-diff是Percona Toolkit工具集的其中一个,主要用于my.cnf配置文件和show global variables系统变量之间的对比,下面简单介绍一下。

pt-config-diff

基本用法

(1)基本语法

代码语言:javascript
复制
pt-config-diff [OPTIONS] CONFIG CONFIG [CONFIG...]

(2)配置文件之间的对比

代码语言:javascript
复制
pt-config-diff /etc/my-1.cnf /etc/my-2.cnf

(3)配置文件和系统变量之间的对比

代码语言:javascript
复制
pt-config-diff /etc/my.cnf h=host1

(4)系统变量之间的对比

代码语言:javascript
复制
pt-config-diff h=host1 h=host2

(5)常见选项

代码语言:javascript
复制
--host:-h,IP地址
--port:-P,端口
--socket:-S,套接字文件
--user:-u,用户名
--password:-p,密码
--charset:-A,字符集
--database:-D,数据库
--ask-pass:提示手动输入密码
--ignore-variables:忽略某些系统变量
--[no]ignore-case:是否大小写敏感
--report-width:输出报告长度

(6)DSN选项

代码语言:javascript
复制
h:IP地址
P:端口
S:套接字文件
u:用户名
p:密码
A:字符集
D:数据库

具体输出

(1)配置文件之间的对比,输出如下(如果完全一致,则不输出):

代码语言:javascript
复制
$ pt-config-diff --report-width 200 /usr/local/mysql57/my.cnf /usr/local/mysql80/my.cnf 
14 config differences
Variable                   /usr/local/mysql57/my.cnf                                                     /usr/local/mysql80/my.cnf
========================== ============================================================================= ============================================================================================
basedir                    /usr/local/mysql57                                                            /usr/local/mysql80
datadir                    /appdata/mysqldata57                                                          /appdata/mysqldata80
innodb_log_group_home_dir  /applog/mysqllog57                                                            /applog/mysqllog80
log_bin                    /applog/mysqllog57/mysql-bin                                                  /applog/mysqllog80/mysql-bin
log_error                  /applog/mysqllog57/mysql-error.log                                            /applog/mysqllog80/mysql-error.log
long_query_time            1                                                                             5
pid_file                   /appdata/mysqldata57/mysql.pid                                                /appdata/mysqldata80/mysql.pid
plugin_dir                 /usr/local/mysql57/lib/plugin                                                 /usr/local/mysql80/lib/plugin
plugin_load                rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;auth_socket.so
port                       10057                                                                         10080
server_id                  571                                                                           801
slow_query_log_file        /applog/mysqllog57/mysql-slow.log                                             /applog/mysqllog80/mysql-slow.log
socket                     /appdata/mysqldata57/mysql.sock                                               /appdata/mysqldata80/mysql.sock
tmpdir                     /appdata/mysqldata57                                                          /appdata/mysqldata80

(2)配置文件和系统变量之间的对比,输出如下(如果完全一致,则不输出):

代码语言:javascript
复制
$ pt-config-diff --report-width=200 /usr/local/mysql57/my.cnf h=10.1.4.9,P=10057,u=test,p=xxx
8 config differences
Variable                   /usr/local/mysql57/my.cnf      brightdeng-cvm-01
========================== ============================== ===============================================
basedir                    /usr/local/mysql57             /usr/local/mysql-5.7.30-linux-glibc2.12-x86_64/
binlog_rows_query_log_e... on                             ON
gtid_mode                  on                             ON
innodb_adaptive_hash_index on                             ON
innodb_use_native_aio      on                             ON
log_slave_updates          on                             ON
pid_file                   /appdata/mysqldata57/mysql.pid /appdata/mysqldata57/brightdeng-cvm-01.pid
rpl_semi_sync_master_wa... on                             ON

(3)系统变量之间的对比,输出如下(如果完全一致,则不输出):

代码语言:javascript
复制
$ pt-config-diff --report-width=200 h=10.1.4.9,P=10057,u=test,p=xxx h=10.1.4.5,P=10057,u=test,p=xxx
7 config differences
Variable                   brightdeng-cvm-01                                      brightdeng-cvm-02
========================== ====================================================== ======================================================
general_log_file           /appdata/mysqldata57/brightdeng-cvm-01.log             /appdata/mysqldata57/brightdeng-cvm-02.log
hostname                   brightdeng-cvm-01                                      brightdeng-cvm-02
pid_file                   /appdata/mysqldata57/brightdeng-cvm-01.pid             /appdata/mysqldata57/brightdeng-cvm-02.pid
relay_log_basename         /appdata/mysqldata57/brightdeng-cvm-01-relay-bin       /appdata/mysqldata57/brightdeng-cvm-02-relay-bin
relay_log_index            /appdata/mysqldata57/brightdeng-cvm-01-relay-bin.index /appdata/mysqldata57/brightdeng-cvm-02-relay-bin.index
server_id                  571                                                    572
server_uuid                2fd286bd-d7a5-11ea-b712-525400dc250b                   db83889b-96b7-11eb-8f23-525400bd009d

总结

通过pt-config-diff工具,可以快速找出配置不一致的问题,非常方便。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • pt-config-diff
    • 基本用法
      • 具体输出
      • 总结
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档