web-dev-qa-db-ja.com

オプションファイルを使用してパラメータをpt-table-checksumに渡すことは可能ですか?

MySQLレプリケーションの整合性チェックにPerconaのpt-table-checksumを使用しています。
ある種の構成ファイルを使用して、オプションの一部またはすべてを渡すことは可能ですか?

たとえば、チェックしたいテーブルのリストをファイルに書き込むことはできますか?
マニュアルにはそのようなファイルについては記載されていないことを理解しています: http://www.percona.com/doc/percona-toolkit/2.1/pt-table-checksum.html

3
Haluk

はい、できます。

pt-table-checksum --config FILENAME

FILENAMEは次のようになります

tables                  = table1,table2,table3
ignore-tables-regex     = ^tmp
chunk-time              = .2
max-load                = Threads_running=10
chunk-size              = 100000
user                    = myuser
pass                    = mypass

--configが指定されていない場合、pt-table-checksumはデフォルトで/etc/percona-toolkit/pt-table-checksum.confから読み取ります。ほぼすべてのPerconaToolkitツールにこの機能があります。

設定ファイルの動作の詳細が利用可能です ここ

5
Aaron Brown

このような自動化をシェルスクリプト化できるはずです

自動化に使用するシェルスクリプトを投稿しました mk-table-checksum および mk-table-syncpt-table-checksumによって報告されたように、テーブルが同期していない問題を修正しました。pt-table-syncが機能していません (2011年12月5日)

スクリプトは次のことを行います。

  • コマンドラインパラメータとしてマスターとスレーブのIPアドレスを受け入れます
  • すべてのデータベースのリストを取得します
  • すべてのデータベースでmk-table-checksumを実行します
  • チェックサムが一致しないテーブルのリスト(各行にはdbname.tbnameがあります)を生成します
  • mk-table-syncを実行し、スレーブを同期するSQLを生成します
    • 生成されたSQLを実行します
    • 手動で変更を確認する機会が与えられます
    • 変更が正当であると思われる場合は、スレーブでSQLを手動で実行できます。

そのスクリプトには、2行あります

TC=/usr/local/sbin/mk-table-checksum
TS=/usr/local/sbin/mk-table-sync

スクリプト内でそれらを pt-table-checksum および pt-table-sync の絶対パスに簡単に置き換えることができます。 DBインスタンス全体ではなく、ファイルのリストを使用するようにスクリプトを拡張することもできます。

2
RolandoMySQLDBA

ファイルからオプションを読み取ることはできません。コマンドラインでユーティリティと一緒にオプションを渡す必要があります。Cronjobとして実行されるジョブファイルを作成できます。

ファイルから引数を読み取る方が良いと思います。このような構成オプションについては、ここでPerconaに問い合わせることができます: http://www.percona.com/bugs/pt-table-checksum

0
Mahesh Patil