製品

Percona

pt-config-diff

コマンド

pt-config-diff [ オプション ] [ ファイル名1 ] [ ファイル名2 ]

目的

指定した2つのMySQLの設定ファイルを比較して、その2つの差異を出力します

シナリオ

以下のような my.cnf と my.cnf2 という2つの設定ファイルを用意します

config-diff_mycnf
config-diff_mycnf2

pt-config-diff コマンドで両ファイルを比較し、差異を出力させます

結果

以下のように、スクリプト上にファイル内で設定が異なる項目とその内容が標準出力されます

[root@localhost ~]# pt-config-diff /etc/my.cnf /etc/my.cnf2
4 config differences
Variable                  /etc/my.cnf /etc/my.cnf2
========================= =========== ============
character_set_server      utf8        sjis
key_buffer_size           268435456   536870912
port                      3306        9999
slow_query_log            1           0
[root@localhost ~]#

※[ client ] の設定は比較の対象外となります
※2つの設定ファイルの両方に存在する項目のみが比較されます
(my.cnf のみに存在する innodb_file_per_table と innodb_log_file_size の2項目は比較対象外となります)
※一つのファイル内に[ mysqld ]セクションが二つ存在する場合、最初の[ mysqld ]のみが比較対象になります

良い点

異なるMySQL設定ファイルの差異を簡単に検出する事ができます

その他

設定ファイルの代わりにホスト名を指定することで、二つのホスト間のサーバ変数の差異を出力することも出来ます
例えば、稼働している二台のサーバを指定すると、「SHOW VARIABLES」の結果を比較して出力します

# pt-config-diff h=ホスト名1 h=ホスト名2