LoginSignup
140
122

More than 5 years have passed since last update.

percona-toolkitの紹介と各機能の早見表

Last updated at Posted at 2014-12-17

Percona ToolkitはMySQL等に関する便利なコマンドラインツールの集まりです。

Percona Toolkit Documentation

今回は各ツールの機能を簡単に紹介します。
細かい使用方法に関しては随時追記予定。

pt-align

ファイルや標準入力を受け取り、列を揃えます。

usage: pt-align [FILES]

以下は公式ドキュメントの例ですが、
これが、

DATABASE TABLE   ROWS
foo      bar      100
long_db_name table  1
another  long_name 500

こうなる。

DATABASE     TABLE     ROWS
foo          bar        100
long_db_name table        1
another      long_name  500

pt-archiver

テーブルの行データをファイルや他のテーブルに保存します。

usage: pt-archiver [OPTIONS] --source DSN --where WHERE

例えば以下のようなコマンドを実行するとホスト名oltp_server上のtestデータベースにあるtblテーブルのデータ1000行をolap_serverに転送するとともにファイルにも保存する。

$ pt-archiver --source h=oltp_server,D=test,t=tbl --dest h=olap_server \
  --file '/var/log/archive/%Y-%m-%d-%D.%t' \
  --where "1=1" --limit 1000 --commit-each

pt-config-diff

MySQLの設定ファイルと実際の設定値の差異を表示します。

usage: pt-config-diff [OPTIONS] CONFIG CONFIG [CONFIG...]

ファイル同士、サーバー同士でも比較できます。

$ pt-config-diff /etc/my.cnf h=localhost,u=root --ask-pass

1 config difference
Variable                  /etc/my.cnf                                vagrant-c
========================= ========================================== =========
sql_mode                  NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES STRICT...

pt-deadlock-logger

デッドロックが発生した場合にログ出力します。

usage: pt-deadlock-logger [OPTIONS] DSN

以下のように特に終了条件や出力の指定がなければ、強制終了するまで標準出力にログ出力を行います。

$ pt-deadlock-logger h=localhost,u=root --ask-pass

pt-diskstats

iostatより詳しいディスクI/Oの統計を表示します。

usage: pt-diskstats [OPTIONS] [FILES]

一定時間ごとに以下のようにI/Oの状態を出力します。

$ pt-diskstats
  #ts device    rd_s rd_avkb rd_mb_s rd_mrg rd_cnc   rd_rt    wr_s wr_avkb wr_mb_s wr_mrg wr_cnc   wr_rt busy in_prg    io_s  qtime stime
  1.0 sda        0.0     0.0     0.0     0%    0.0     0.0     2.0    24.0     0.0    83%    0.0     0.8   1%      0     2.0    0.0   0.8
  1.0 sda1       0.0     0.0     0.0     0%    0.0     0.0     2.0    24.0     0.0    83%    0.0     0.8   1%      0     2.0    0.0   0.8

pt-duplicate-key-checker

MySQLのテーブル上にインデックスや外部キーの重複があるかチェックします。

usage: pt-duplicate-key-checker [OPTIONS] [DSN]

pt-fifo-split

ファイルやコマンドライン上のストリームをFIFOで分割します。

usage: pt-fifo-split [OPTIONS] [FILE]

pt-find

GNUのfindコマンドのようにMySQLのテーブルを検索し、指定した動作を行わせます。

usage: pt-find [OPTIONS] [DATABASES]

pt-fingerprint

クエリを抽象化します。

usage: pt-fingerprint [OPTIONS] [FILES]

以下のように汎用的なクエリ形式に変換します。

$ pt-fingerprint --query "select a, b, c from users where id = 500"
select a, b, c from users where id = ?

pt-fk-error-logger

外部キーエラーをログ出力します。

usage: pt-fk-error-logger [OPTIONS] [DSN]

pt-heartbeat

MySQLのレプリケーション遅延を表示します。

usage: pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop

pt-index-usage

ログからクエリを読み取り、インデックスをどのように使用しているか分析します。

usage: pt-index-usage [OPTIONS] [FILES]

pt-ioprofile

MySQLのプロセスI/Oを監視し、データファイル中のテーブルやI/Oの動作を表示します。

usage: pt-ioprofile [OPTIONS] [FILE]

pt-kill

条件に合うMySQLの実行中のクエリを中止します。

pt-kill [OPTIONS] [DSN]

pt-mext

MySQLのSHOW GLOBAL STATUSを実行した結果の差分を逐次表示します。

usage: pt-mext [OPTIONS] -- COMMAND

pt-mysql-summary

MySQLの情報を要約して表示します。

usage: pt-mysql-summary [OPTIONS]

pt-online-schema-change

テーブルロックを発生させずにテーブルへの変更を行います。

usage: pt-online-schema-change [OPTIONS] DSN

pt-pmp

選択したプログラムのGDBのスタックトレースを収集します。

usage: pt-pmp [OPTIONS] [FILES]

pt-query-digest

MySQLのクエリをログ、プロセスリスト、tcpdumpの結果から分析します。

usage: pt-query-digest [OPTIONS] [FILES] [DSN]

pt-show-grants

MySQLのユーザ権限を正規化し、表示します。

usage: pt-show-grants [OPTIONS] [DSN]

pt-sift

pt-stalkによって作られたファイルを閲覧します。

usage: pt-sift FILE|PREFIX|DIRECTORY

pt-slave-delay

MySQLのスレーブサーバにマスタとのレプリケーションにおいて遅延を発生させます。

usage: pt-slave-delay [OPTIONS] SLAVE_DSN [MASTER_DSN]

pt-slave-find

MySQLのスレーブを検索し、レプリケーションの階層ツリーを表示します。

usage: pt-slave-find [OPTIONS] [DSN]

pt-slave-restart

エラー等でMySQLのレプリケーションが停止したときに複数のスレーブのレプリケーションを再開させます。

usage: pt-slave-restart [OPTIONS] [DSN]

pt-stalk

MySQLの問題が発生した際にフォレンジックデータを収集します。

usage: pt-stalk [OPTIONS]

pt-summary

システムの情報を要約して表示します。

usage: pt-summary

pt-table-checksum

MySQLのレプリケーションが正しく行えているかチェックします。

usage: pt-table-checksum [OPTIONS] [DSN]

pt-table-sync

MySQLのテーブルのデータを効率的に同期します。

usage: pt-table-sync [OPTIONS] DSN [DSN]

pt-table-usage

ログからクエリを読み込み、クエリがどのようにテーブルを使用するか分析します。

usage: pt-table-usage [OPTIONS] [FILES]

pt-upgrade

クエリの結果が異なるサーバ間で同一の結果になるかチェックします。

usage: pt-upgrade [OPTIONS] LOGS|RESULTS DSN [DSN]

pt-variable-advisor

MySQLの変数を分析し、可能性のある問題についてアドバイスします。

usage: pt-variable-advisor [OPTIONS] [DSN]

pt-visual-explain

実行計画をツリー形式に整形して表示します。

usage: pt-visual-explain [OPTIONS] [FILES]
140
122
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
140
122