1、データベースのサイズを確認
選択pg_database_size( 'log_analysis');
postgresの=#選択pg_database_size( 'postExpress'); pg_database_size ------------------ 4417902485676 (1行)
SELECT pg_size_pretty(pg_database_size( 'postExpress'));
postExpress =#SELECT pg_size_pretty(pg_database_size( 'postExpress')); pg_size_pretty ---------------- 4115ギガバイト (1行)
2、データベースのサイズを照会するために、
pg_databaseのからサイズAS pg_database.datname、pg_size_pretty(pg_database_size(pg_database.datname))を選択します。
3、インデックスを参照するために、
pg_relation_size(RELID)DESCによってのSchemaName = 'パブリック' 秩序pg_stat_user_indexesからindexrelname、pg_size_pretty(pg_relation_size(RELID))を選択します。
図4は、すべてのテーブルのサイズを表示します
pg_relation_size(RELID)DESCによってのSchemaName = 'パブリック' 秩序pg_stat_user_tablesからrelname、pg_size_pretty(pg_relation_size(RELID))を選択します。
5、一時ファイルをチェックします
SELECT datname、 "一時ファイル"、でpg_stat_database FROM "一時ファイルのサイズ" AS temp_bytes AS temp_files。
一時ファイルは、セッションやファイルの後端を接続することにより、保存されている、または彼らは、バッファリソースプールとして使用することができます。これらのファイルは、共有リソース・スペースとは別に保存されます。
重要:ビューでpg_stat_database temp_filesのtemp_bytes列と統計情報(累積値)重合を収集します。これらは、サーバーがすることによって開始されたときに、サーバーがジャストインタイムリカバリ(PITR)でサーバーがクラッシュし、ポイントをシャットダウンしたときにカウンタリセットのみ、例えば、復元することができ、リセットので、これは、仕様によるものです。したがって、最善のアプローチは、これらのファイルの数とサイズが大きくなる監視することで、出力のみが表示されません。
6、クエリをコピーして、溝の有無とサイズを確認します。
PostgreSQLのV9
選択SLOT_NAME、pg_size_pretty(pg_xlog_location_diff(pg_current_xlog_location()、restart_lsn))として replicationSlotLag、pg_replication_slotsからの活性;
PostgreSQLのV10とV11
選択SLOT_NAME、pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn()、restart_lsn))replicationSlotLagとして、 pg_replication_slotsからの活性;
7、(アクティブ状態がFalse)現在未使用のスロットをコピーを決定した後、重複クエリ溝を削除
選択pg_drop_replication_slot( 'Your_slotname_name');
8、このpg_replication_slots
ビューには、すべてのレプリケーション・スロットと、現在、既存のデータベースクラスタの現在のステータスのリストを提供します
pg_replication_slotsから*を選択します。
クロス読み取り専用のコピー領域
あなたは地域間の読み取り専用コピーを使用する場合は、プライマリ・インスタンス上の物理コピースロットを作成します。地域間の読み取り専用コピーに失敗した場合はWALファイルは読み取り専用コピーにコピーされないため、プライマリ・データベース・インスタンス上のストレージスペースは、影響を受ける可能性があります。あなたはWALデータ上で最も遅れコピーを受け取ったかを決定するためにCloudWatchの目標「最も古いコピートラフの待ち時間」と「トランザクション・ログ・ディスク使用」を使用することができ、そしてWALデータ用のストレージ容量はどのくらいあります。
図9に示すように、接続された問い合わせの数
SELECT COUNT(1)をpg_stat_activityから。
10、接続のクエリーの最大数
ショーMAX_CONNECTIONS。
11、csvファイルにデータをエクスポート
CSVヘッダと '/data/test.csv' にコピー(テストSELECT * FROM)。
12、ほとんどのCPUを消費者のクエリのSQLステートメント
PIDのプロセスを取得するには、注文プロセスは、ほとんどのCPUを消費しています
PSの補助|ヘッド-1; psの補助| grepの-vのPID |ソート-rn -k 3 |ヘッド
procpidを選択し、)(今、スタート- 、ラップとして起動current_query からの スタートとして(procpidとしてbackendid、pg_stat_get_backend_pid(s.backendid)を選択し、pg_stat_get_backend_activity_start(s.backendid)、current_queryとしてpg_stat_get_backend_activity(s.backendid) から ((pg_stat_get_backend_idsetを選択)Sなど)backendidとして としては、S) ここ current_query <> '<IDLE>'とprocpid IN(17637,123,321) -加入查找到的进程IDの 順 ラップDESC。
13、SQLが実行されて停止します
、更新する、選択クエリを殺す削除し、DMLは有効になりません) SELECT pg_cancel_backend(PID); さまざまな操作を殺す(など、ドロップ、削除、更新を選択) SELECT pg_terminate_backend(PID)。
14、SQL文の実行計画を表示するには、「your_statementsを説明する」方法を使用します
p_tableから削除説明。
ここでは、分析を説明し、ことに留意すべきであるSQL文の実行計画を分析し、実際にSQL文を実行します。そして、デフォルトでは、トランザクションのPostgreSQLデータベースは自動的に提出オンになっています。あなたはその実行計画を確認するために分析説明使用したいのであれば、DML文のために、我々はに特に注意を払わなければなりません
p_tableから削除分析を説明。
p_tableから削除分析を説明し、削除操作のSQLの実行計画を参照して、その結果は、テーブル内のデータを削除する場合はtrueであると発表しました。
あなただけの彼らの実施計画は、その後、分析の説明を参照したい場合は、すべてのDML操作については、取引の実行、表示する前に必要とし、その後、実行計画、バック、最後のロールトランザクションを表示します。
postgresの=#で始まります。 BEGIN #はXXXXXXXXXを分析説明= postgresのを。 postgresの=#ロールバック。 ROLLBACKの postgresの=#
15、インデックスレコードを使用してクエリ
SchemaName = 'postgresの' とrelname = 'テーブル/インデックス/ビュー名' pg_stat_all_indexesから選択*;
参考資料:https://aws.amazon.com/cn/premiumsupport/knowledge-center/diskfull-error-rds-postgresql/
https://www.postgresql.org/docs/current/index.html
http://www.oracleonlinux.cn/2018/08/differences-between-explain-and-explain-analyze/