pg_log
該文件夾中的日志一般用來記錄服務器與DB的狀態,如各種Error信息,定位慢查詢SQL,數據庫的啟動關閉信息,發生checkpoint過於頻繁等的告警信息等。linux自帶的路徑一般在/var/log/postgres下面。該日志有.csv格式和.log。這種日志是可以被清理刪除不影響DB的正常運行。
當我們有遇到DB無法啟動或者更改參數沒有生效時,第一個想到的就是查看這個日志。
pg_xlog
該文件夾中的日志是記錄的Postgresql的WAL信息,也就是一些事務日志信息(transaction log),默認單個大小是16M,源碼安裝的時候可以更改其大小。這些信息通常名字是類似'000000010000000000000013'這樣的文件,這些日志會在 定時回滾恢復(PITR), 流復制(Replication Stream)以及歸檔時能被用到,這些日志是非常重要的,記錄着數據庫發生的各種事務信息,不得隨意刪除或者移動這類日志文件,不然你的數據庫會有無法恢復的風險
當歸檔或者流復制發生異常的時候,事務日志會不斷地生成,有可能會造成磁盤空間被塞滿,最終導致DB掛掉或者起不來。遇到這種情況不用慌,可以先關閉歸檔或者流復制功能,備份pg_xlog日志到其他地方,但請不要刪除。然后刪除較早時間的的pg_xlog,有一定空間后再試着啟動Postgres。
pg_clog
pg_clog這個文件也是事務日志文件,但與pg_xlog不同的是它記錄的是事務的元數據(metadata),這個日志告訴我們哪些事務完成了,哪些沒有完成。這個日志文件一般非常小,但是重要性也是相當高,不得隨意刪除或者對其更改信息。
總結:
pg_log記錄各種Error信息,以及服務器與DB的狀態信息,可由用戶隨意更新刪除
pg_xlog與pg_clog記錄數據庫的事務信息,不得隨意刪除更新,做物理備份時要記得備份着兩個日志。