■「Postgres Toolkit」とは何か
Postgres Toolkitは、PostgreSQLの運用管理を楽にするためのスクリプトやツールのコレクションで、DBA業務の品質や生産性を高めることを目的としたツールキットです。
Postgres Toolkitを使うことで、複雑なSQLを実行したり、自前のスクリプトをメンテする必要性が減少します。コンセプトとしては、「PostgreSQL DBA向けのVictorinox(スイスアーミーナイフ)」のようなイメージです。
もともとは、私がトラブルシューティングなどに呼ばれた時などに、現場で使えるツールがあまりに少なく、なかなか生産性が向上しないと感じていたことが発想の原点であり、書き捨てのスクリプトを毎回作るのではなく、いつでも誰でも使えるような便利なツール類が必要なのではないか、と感じていました。位置付けとしてはMySQLのPercona Toolkitと似ています。
Postgres Toolkit 0.2は、PostgreSQLのバージョン9.0、9.1、9.2、9.3、9.4をサポートしており、OSはRed Hat Enterprise Linux 6/CentOS 6で動作確認をしています。Python 2.6がインストールされている必要があります(Python 2.6はRHEL6/CentOS6のデフォルトです)。
■Postgres Toolkitに含まれるもの
Postgres Toolkit 0.2は以下の13個のコマンドを含んでいます。(各コマンドのマニュアルはこちら)
コマンド | 機能概要 |
pt-config | PostgreSQLの設定ファイル postgresql.conf の各パラメータを、エディタなどを開かずに取得、または設定することができます。 |
pt-index-usage | インデックスのサイズ、アクセス統計情報、VACUUM/ANALYZE時刻、テーブルスペース名などを一覧で表示します。 |
pt-kill | バックエンドで実行中のクエリをキャンセル、またはバックエンドを終了させるためのシグナルをバックエンドプロセスに安全に送ります。 |
pt-proc-stat | PostgreSQLのインスタンスを構成している各プロセスのディスクI/O、ネットワークI/Oなどの統計情報を、プロセスごとに表示します。 |
pt-replication-stat | レプリケーションを構成する、マスタ、スレーブのステータスと統計情報を表示します。 |
pt-session-profiler | ネットワークトラフィックをキャプチャし、解析することで、指定した閾値以上の実行時間がかかっているクエリを抽出・表示します。 |
pt-set-tablespace | 複数のテーブルや関連するインデックスのテーブルスペースを一括して変更します。 |
pt-snap-statements | 一定の時間に実行されたSQLを集計して統計情報を表示します。 |
pt-stat-snapshot | PostgreSQL内部の各種統計情報のスナップショットを一括して取得、管理します。 |
pt-table-usage | テーブルのサイズ、アクセス統計情報、最終VACUUM/ANALYZE時刻、テーブルスペース名などを一覧で表示します。 |
pt-tablespace-usage | テーブルスペースの利用状況とサイズをデータベースごとに集計し、該当するディスクパーティションの空き容量とともに表示します。 |
pt-verify-checksum | データベースクラスタ内のテーブル、インデックスファイルなどのチェックサムを一括して検証します。(9.3以降対応) |
pt-xact-stat | 複数のPostgreSQLインスタンスのセッション数、トランザクション数などの統計情報を一括して取得・表示します。 |
■Postgres Toolkitのインストール方法
Postgres Toolkit 0.2のインストールはインターネット経由で可能です。
curl -L http://dl.uptimeforce.com/postgres-toolkit/install.sh | shまたは
wget http://dl.uptimeforce.com/postgres-toolkit/install.sh sh install.shにのようにしてください。
なお、開発中のコードを試したい場合には、Githubからコードを取得してください。
■最後に
今後、本ブログで各コマンドの使い方などを何度かに分けてご紹介していく予定ですが、日常的にPostgreSQLを使っている方には、ぜひ使ってみてフィードバックをいただければと思います。多少なりとも、日常のDBA業務に役立つ機能・場面があるのではないかと思います。 Postgres Toolkitに関するフィードバックは、メールの場合は postgres-toolkit at uptime dot jp まで、それ以外の場合は上記GithubのIssueや本ブログへのコメントなどで連絡いただければと思います。
また、5月30日に開催されるPostgreSQLアンカンファレンスでも簡単にご紹介する予定ですので、興味のある方はぜひご参加ください。
まだまだ不足している機能はあると思いますが、これから徐々に充実させていければと思っていますので、ぜひ一度使ってみて、感想・質問・要望などをぜひお寄せください。
よろしくお願いします。
0 件のコメント:
コメントを投稿