percona-toolkitを使用してMySQLを操作する実用的なコマンドのまとめ

5490 ワード

1.pt-archiver機能紹介:mysqlデータベースのテーブルのレコードを別のテーブルまたはファイルの使い方紹介にアーカイブする:pt-archiver[OPTION...]--source DSN--where WHEREというツールは古いデータをアーカイブするだけで、オンラインデータのOLT Pクエリーに大きな影響を与えることはありません.別のサーバの他のテーブルにデータを挿入したり、1つのファイルに書き込んだりして、load data infileコマンドを使ってデータを読み込むのに便利です.またdelete操作を実行することもできます.このツールはデフォルトでソースのデータを削除します.ご使用の際はご注意ください.使用例:例1:192.168.3.135のsanmaoライブラリのoss_をlogテーブルidが100000未満のレコードは192.168.3.92のsanmaoライブラリに移行しoss_にアーカイブされます.log_archive_20120605.logファイル:

pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --dest 

h=192.168.3.92,D=sanmao,t=oss_log --file '/var/log/oss_log_archive_20120605.log' --where "id<=100000" --commit-each

例2:192.168.3.135のsanmaoライブラリのoss_をlogが160000未満のレコードをoss_にアーカイブlog_archive_201607.logファイル:

pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --file '/var/log/oss_log_archive_20120607.log' --where "id<=160000" --commit-each

例3:192.168.3.135のsanmaoライブラリのoss_を削除logテーブルのidが167050未満のレコード:

pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --purge --where 'id<=167050'

注意:文字セットがutf 8の場合はmy.cnfの[client]の下にdefault-character-set=utf 8を追加します.そうしないと、エクスポートされたファイルの内容が中国語で文字化されません.  2.pt-find機能の紹介:mysqlテーブルを検索し、指定したコマンドを実行します.gnuのfindコマンドと似ています.使用法紹介:pt-find[OPTION...][DATABASE...] デフォルトのアクションは、データベース名とテーブル名の印刷の使用例です.例1:192.168.3.135で1日前に作成したInnoDBのテーブルを検索し、印刷します.

pt-find --ctime +1 --host=192.168.3.135 --engine InnoDB --user=root --password=zhang@123

例2:192.168.3.135で1日前に変更したデータベース名が%hostsops%と一致し、エンジンがMYISAMのテーブルを検索し、テーブルのエンジンをInnoDBエンジンに変更します.

pt-find --mtime +1 --dblike hostsops --engine MyISAM --host=192.168.3.135 --user=root --password=zhang@123 --exec "ALTER TABLE %D.%N ENGINE=InnoDB"

例3:192.168.3.135のaaaライブラリとzhangライブラリの空のテーブルを検索し、削除します.

pt-find --empty aaa zhang --host=192.168.3.135 --user=root --password=zhang@123 --exec-plus "DROP TABLE %s"

例4:192.168.3.135で100 Mを超えるテーブルを検索します.

pt-find --tablesize +100M --host=192.168.3.135 --user=root --password=zhang@123

  3.pt-kill機能紹介:Kill掉合符合指定条件mysql文用法紹介:pt-kill[OPTIONS]加入未指定ファイルの場合pt-killはmysqlに接続されSHOW PROSCESSLISTを通じて指定された文を見つけ、逆にpt-killはSHOW PROSCESSLIST結果を含むファイルからmysql文を読み取る使用例:例1:192.168.3.135サーバの稼働時間が60 sを超える文を検索し、印刷する

pt-kill --busy-time 60 --print --host=192.168.3.135 --user=root --password=zhang@123

例2:192.168.3.135サーバの稼働時間が60 sを超える文を検索し、kill

pt-kill --busy-time 60 --kill --host=192.168.3.135 --user=root --password=zhang@123

例3:proccesslistファイルから実行時間が60 sを超える文を検索する

mysql -uroot -pzhang@123 -h192.168.3.135 -e "show processlist" > processlist.txt
pt-kill --test-matching processlist.txt --busy-time 60 --print 

4.pt-config-diff機能紹介:mysqlプロファイルとサーバパラメータの比較使い方紹介:pt-config-diff[OPTION...]CONFIG CONFIG [CONFIG...] CONFIGはファイルでもデータソース名でも構いません.少なくとも2つのプロファイルソースを指定する必要があります.unixの下のdiffコマンドのように、構成が完全であれば何も出力されません.使用例:例1:ローカルサーバとリモートサーバのプロファイルの違いを表示します.

pt-config-diff h=localhost h=192.168.3.92 --user=root --password=zhang@123

比較した内容は以下の通りです.

22 config differences
Variable         localhost.localdomain localhost.localdomain
========================= ===================== =====================
binlog_cache_size     8388608        2097152
have_ndbcluster      DISABLED       NO
innodb_additional_mem_... 16777216       33554432
innodb_buffer_pool_size  1677721600      1073741824

例2:ローカル・プロファイルとリモート・サーバの違いを比較します.

pt-config-diff /etc/my.cnf h=192.168.3.92 --user=root --password=zhang@123

比較した内容は以下の通りです.

12 config differences
Variable         /etc/my.cnf localhost.localdomain
========================= =========== =====================
binlog_cache_size     8388608   2097152
binlog_format       mixed    MIXED

例3:ローカルの2つのプロファイルの違いを比較します.

pt-config-diff /usr/local/mysql/share/mysql/my-large.cnf /usr/local/mysql/share/mysql/my-medium.cnf

5.pt-mysql-summary機能紹介:mysqlの構成とsataus情報を細かくまとめ、まとめた後、直接見るとわかります.使用法紹介:pt-mysql-summary[OPTIONS][--MYSQL OPTIONS]動作原理:mysqlに接続してstatusと構成情報をクエリーして一時ディレクトリに保存し、awkと他のスクリプトツールでフォーマットします.OPTIONSは公式サイトの関連ページを見ることができます.使用例:例1:ローカルmysqlサーバのstatusと構成情報をまとめます.

pt-mysql-summary -- --user=root --password=zhang@123 --host=localhost

例2:ローカルmysqlサーバ192.168.3.92のstatusと構成情報をまとめます.

pt-mysql-summary -- --user=root --password=zhang@123 --host=192.168.3.92

6.pt-variable-advisor機能紹介:mysqlのパラメータ変数を分析し、存在する可能性のある問題について提案用法紹介:pt-variable-advisor[OPTION...][DSN]原理:show variablesの構成エラーの設定と値を予め定義されたルールに従ってチェックします.使用例:例1:localhostから変数値を取得する

pt-variable-advisor --user=root --password=zhang@123 localhost

例2:指定したファイルから構成を読み込みます.これはフォーマット要件があります.

pt-variable-advisor --user=root --password=zhang@123 --source-of-variables my.cnf