在資料庫世界中,監控和日誌是確保一切運行正常的重要工具。當系統出現問題或性能下降時,這些工具可以幫助我們找到問題的根本原因。今天,我們將探討 PostgreSQL 中的實時監控和日誌。
當資料庫性能突然下降或發生故障時,實時監控可以幫助我們立即發現問題,從而快速地解決問題。透過實時監控,我們可以:
在 PostgreSQL 中,有許多內建工具可以幫助我們監控資料庫的狀態和性能。以下是一些常用的監控工具和如何使用它們:
postgresql.conf
$ psql -U postgres
SHOW config_file;
,就可以找到 postgresql.conf
文件了SHOW config_file;
- 什麼是 postgresql.conf ?
postgresql.conf 是 PostgreSQL 的主要設定文件
包含了控制 PostgreSQL 服務運行的各種設定選項
這些設定選項覆蓋了資料庫的性能、安全性、連接參數和許多其他方面。
這是一個模組,可以用來監控 SQL 查詢的性能。它提供了每個查詢的執行時間、執行次數、讀取/寫入的行數等統計資訊
如何啟用和使用:
postgresql.conf
文件中啟用此模組:shared_preload_libraries = 'pg_stat_statements'
# 以 Homebrew 為例
$ brew services restart postgresql
pg_stat_statements
擴充模組:CREATE EXTENSION pg_stat_statements;
pg_stat_statements
視圖以獲取查詢統計資訊:SELECT * FROM pg_stat_statements;
此視圖顯示目前的活動連接和它們正在執行的查詢。這對於找出哪些查詢正在運行以及它們的狀態非常有用
使用方法:
SELECT * FROM pg_stat_activity;
提供關於每個資料庫的統計資訊,如事務次數、閱讀和寫入的行數等
使用方法:
SELECT * FROM pg_stat_database;
此外,還有許多第三方工具和平台,如 PgAdmin
, DataDog
, 和 New Relic
,提供了更豐富的監控功能
日誌是一種系統活動的記錄,它可以幫助我們追踪問題、監控系統的健康狀態和分析性能。
在 PostgreSQL 中,可以透過設定文件 postgresql.conf
來調整日誌的設定
例如:
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d.log'
上述設定將啟用日誌收集,並將日誌文件存儲在名為 pg_log
的目錄中,每天生成一個新的日誌文件。
log_min_duration_statement
, 可以在日誌中找到 查詢執行時間
超過指定時間的查詢。postgresql.conf
設定 log_min_duration_statement
實時監控和日誌是資料庫管理的兩個重要方面。透過有效的監控和日誌分析,可以確保資料庫運行順暢,並及時發現和解決問題。