前提条件
この機能は、次のエンジンを実行するPolarDB for PostgreSQL(Compatible with Oracle) クラスターでサポートされています。
PolarDB for PostgreSQL (Oracle互換) 2.0 (バージョン2.0.14.18.0以降)
説明
次のステートメントを実行して、PolarDB for PostgreSQL(Compatible with Oracle) クラスターのリビジョンバージョンを表示できます。
注意事項
データを収集するには、pg_stat_文
およびpg_stat_kcache
拡張が必要です。 これらの拡張機能が既定で読み込まれるように、データを収集するデータベースのshared_preload_libraries
パラメーターにこれらの拡張機能が追加されていることを確認します。
説明
shared_preload_libraries
の設定方法の詳細については、「」「クラスターパラメーターの設定」をご参照ください。 このパラメーターを変更すると、クラスターが再起動します。 作業は慎重に行ってください。
pg_stat_statements
拡張子は、データを収集するデータベースに作成されます。 必要に応じて、データベースにpg_stat_kcache
拡張機能を作成して、詳細情報を収集できます。
収集された情報の保存はディスク領域を占有します。 pg_profile拡張機能は、自動データクリーンアップメカニズムを提供します。 データが適切に保存されていることを確認してください。
pg_profile拡張機能が統計を収集するには長い時間が必要です。 収集頻度を1時間に1回または2回に設定することを推奨します。
使用法
説明
dblink
拡張機能を使用する場合は、セキュリティ上、プロファイルデータベースとサーバーデータベースを同じ PolarDB for PostgreSQL (Compatible with Oracle) クラスターに作成する必要があります。
次の例では、サーバーデータベースとプロファイルデータベースを作成します。
サンプリング中、プロファイルデータベースは、サーバデータベースにサンプリング要求を送信する。 要求を受信した後、サーバデータベースは、統計結果をプロファイルデータベースに返し、データをテーブルに格納する。 これにより、プロファイルデータベースから他のデータベースの統計を取得できます。
サーバーデータベース
サーバーデータベースを作成します。
サーバーデータベースに接続し、統計を収集するための拡張機能を作成します。
\c server
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE EXTENSION IF NOT EXISTS pg_stat_kcache;
プロファイルデータベース
プロファイルデータベースを作成します。
プロファイルデータベースに接続し、拡張機能を作成します。
\c profile
CREATE EXTENSION IF NOT EXISTS pg_profile CASCADE;
サンプリング接続の作成
SELECT create_server(
'server',
'dbname=server channel_name=localhost user=<The privileged account of the server database> password=<The password of the account>'
);
次の表に、ステートメントのパラメーターを示します。
パラメーター | 値の例 | 説明 |
サーバー | サーバー | ユーザー定義の接続名。 |
dbname | サーバー | データベース名。 |
channel_name | localhost | 接続情報。 localhost値のみがサポートされています。 |
user | test_user | サーバーデータベースが作成されるクラスターの特権アカウント。 |
password | T123456! | 前のデータベースアカウントのパスワード。 |
サンプル結果:
show_servers
(server,"dbname=server channel_name=localhost user=test_user password=****",t,)
(1 row)
サンプリング接続の変更
SELECT set_server_connstr(
'server',
'dbname=server channel_name=localhost user=<The privileged account of the profile database> password=<The password of the account>'
);
次の表に、ステートメントのパラメーターを示します。
パラメーター | 値の例 | 説明 |
サーバー | サーバー | 接続 の名前です。 名前を変更する必要はありません。 |
dbname | サーバー | データベース名。 |
channel_name | localhost | 接続情報。 値はlocalhostとして固定されています。 |
user | test_user | サーバーデータベースが作成されるクラスターの特権アカウント。 |
password | T123456! | 前のデータベースアカウントのパスワード。 |
初期データ収集
サンプル結果:
take_sample
(server,OK,00:00:02.81)
(1 row)
データベースでストレステストを実行した後のデータの収集
pgbenchを使用して、サンプリングされたサーバーデータベースでストレステストを実行します。
pgbench -s 100 -i server -U test_user -h pc-****.pg.rds.aliyuncs.com -p 5432
次の表に、ステートメントのパラメーターを示します。
パラメーター | 値の例 | 説明 |
-s | 100 | 作成するデータの行数。 たとえば、値100は、pgbench_accountsテーブルに10,000,000行のデータが作成されていることを示します。 |
-i | サーバー | ストレステストを実行するデータベースの名前。 |
-U | test_user | サーバーデータベースが作成されるクラスターの特権アカウント。 |
-h | pc-**** .pg.rds.aliyuncs.com | サーバーデータベースが作成されるクラスターのエンドポイント。 |
-p | 5432 | クラスターのポート番号。 コンソールの値に基づいて、このパラメーターの値を設定します。 |
プロファイルデータベースに接続して、データを再度収集します。
収集したデータを表示する:
SELECT * FROM show_samples('server');
サンプル結果:
sample | sample_time | sizes_collected | dbstats_reset | bgwrstats_reset | archstats_reset
1 | 2024-02-23 07:29:53+00 | t | | |
2 | 2024-02-23 08:11:39+00 | t | | |
結果に基づくレポートの生成
次のいずれかの方法を使用して結果をエクスポートできます。