0

私は最近、postgresql の pg_stat および pg_statio テーブルを照会する、postgresql 用のデータベース監視プラグインを構築しました。プラグインがデータベースにどのように影響するかを理解し/テストしたいのですが、データベースでプラグインをオンにしただけで、データベースがクラッシュして燃えてしまうのではないかと心配しています...誰かがテスト方法を提案したり、私の以下の質問/懸念事項:

1)これらの監視クエリが他の非監視クエリ(これらの統計を更新するためにpg_statioテーブルにも書き込む必要があると思います)をロックアップさせるのではないかと思っていました。

2) データベースのコピーでこのトラフィックを再生できるように、postgresql データベース テーブルでデータベース トラフィックをキャプチャする方法はありますか?

4

1 に答える 1

1

pg_stat/pg_statio でデータベースを監視すると、他のクエリが遅くなりますか?

いいえ、とにかく、それほど重要ではありません。

1)これらの監視クエリが他の非監視クエリ(これらの統計を更新するためにpg_statioテーブルにも書き込む必要があると思います)をロックアップさせるのではないかと思っていました。

いいえ。PostgreSQL では、読み取りは書き込みをブロックしません。

2) データベースのコピーでこのトラフィックを再生できるように、postgresql データベース テーブルでデータベース トラフィックをキャプチャする方法はありますか?

現時点では簡単ではありません。

ステートメントとパラメーターをログに記録し、log_line_prefixそれらをトランザクションとセッションに再アセンブルできるようにすることができます。ただし、これについてログを解析するのは面倒です。また、IIRC の超長いステートメントは切り詰めることができます。

PostgreSQL 9.4では、論理デコードを使用して変更された行を抽出できますが、どのステートメントがそれらを変更したかはわかりません。また、負荷を再現することもできません。変更ストリームを再生することは、最初にそれを作成することとはまったく異なる負荷です。

のようなツールpg_stat_statementsは少しは役に立ちますが、逐語的な変更の流れを提供することはできません。

于 2015-09-04T02:02:42.870 に答える