製品&サポートサービス

pt-find

コマンド

pt-find [ オプション ] [ データベース名 ]

【必須項目】

  • ・ [ オプション ] : -p パスワード

【主なオプション】

  • ・ --engine : 検索したいテーブルのエンジンを指定します
  • ・ --exec : 指定したテーブルに対して実行したいSQLを指定できます

目的

MySQLのテーブルを指定したアクションに基づいて検索を行い、該当のデータベース名、テーブル名を出力したり、指定条件に基づくテーブルに対して、SQLを実行する事ができます

設定ファイル

上記の必須項目を、設定ファイルにまとめておきます

# touch /etc/percona-toolkit/pt-find.conf
# vi /etc/percona-toolkit/pt-find.conf

・設定ファイルの作成

# touch /etc/percona-toolkit/pt-find.conf

・設定ファイルの編集

# vi /etc/percona-toolkit/pt-find.conf
# config for pt-find
password=パスワード

・MySQL のパスワード

password=パスワード

シナリオ

以下のコマンドを実行し、エンジンがInnoDB であるテーブルを検索します

# pt-find --engine InnoDB

結果

エンジンがInnoDB のテーブルが標準出力されます

[root@localhost Et]# pt-find --engine InnoDB
`employees`.`departments`
`employees`.`dept_emp`
`employees`.`dept_manager`
`employees`.`employees`
`employees`.`salaries`
`employees`.`titles`
`mysql`.`innodb_index_stats`
`mysql`.`innodb_table_stats`
`mysql`.`slave_master_info`
`mysql`.`slave_relay_log_info`
`mysql`.`slave_worker_info`
[root@localhost Et]#

良い点

指定のテーブルサイズを超過しているテーブルを確認したり、エンジンがInnoDBであるテーブル全てに対して、MyISAM エンジンへ変更するALTER文を実行したりする事が可能です

その他の実行例

1日以上前に作成された、MyISAMエンジンのテーブルを検索します

# pt-find --ctime +1 --engine MyISAM

InnoDB のテーブルを検索し、それらを MyISAM に変更します

# pt-find --engin InnoDB --exec "ALTER TABLE %D.%N ENGINE=MyISAM"

"test" と "junk" データベースから、空のテーブルを検索して削除します

# pt-find --empty junk test --exec-plus "DROP TABLE %s"

トータルで5GB以上のテーブルを検索します

# pt-find --tablesize +5G

全てのテーブルを、そのデータサイズ、インデックスサイズとともに検索し、大きなテーブルから順に表示します

# pt-find --printf "%T\t%D.%N\n" | sort -rn

MySQLや関連ソリューションに関するお問い合わせ、お見積などがございましたら、ご連絡ください。

お問い合わせ各MySQL保守サービス見積依頼スマートスタイルOSSストア
各データベース保守サービス比較
各データベース保守サービス見積依頼
契約条項
データベースサポートサービス
MySQL Editions
Oracle Cloud
Percona
MariaDBサブスクリプション
エンタープライズOSSサポート
高可用性ソリューション
OSSシステムソリューション
Navicat
SQL Diagnostic Manager for MySQL
SYNCNEL
OSS保守サポートサービス
Microsoft Azure
お問い合わせ
各MySQL保守サービス見積依頼
スマートスタイルOSSストア
Oracle Gold Partner

ページトップへ