開始之守護進程
postgresql啟動時,首先啟動/usr/local/pgsql/bin/postgres功能進程,守護進程還監聽連接請求,接收客戶端的連接請求,并為客戶端生成服務器進程
共享緩沖區
共享緩沖區主要用來提高數據庫操作的效率及可擴展性,此刻后端程序不再從文件中讀取及寫入文件,而是從處理緩沖區或RAM中讀取及寫入.緩沖區的容量分配是由postgresql.conf中的參數shared_buffer設置,數據庫啟動時會根據參數設置分配固定大小的共享內存
- 緩沖區緩沖檢查可借助擴展程序
pg_buffercache
- 創建緩存命令 :
create extension pg_buffercache
檢查點
檢查點主要用來幫助數據庫面臨崩潰時,崩潰恢復程序通過檢測最新的檢查點(在預寫日志文件中WAL)記錄來確定它應該從哪里開始REDO操作
檢查點設定參數
- checkpoint_segments : 即WAL區段,每個WAL區段是16MB,若3個16MB的WAL區段填充完成則一個新的檢查點就應該出現,默認值為3。
- checkpoint_timeout : 一個超時值,可設置為秒(默認值)分鐘或小時。
- checkpoint_completion_target : 緩解檢查點頻繁出現導致的I/O峰值
附注
當出現如下情況時,出現檢查點
- checkpoint_timeout 周期失效
- WAL的checkpoint_segments數量已填滿
檢查點參數設置參考
WAL恢復
是WAL概念的主要用途,此處我們指那些已被提交上來但并未找到數據文件的恢復事務
部分參數釋義
參數 | 作用 |
---|---|
wal_level | 1.針對系統崩潰的恢復 2. 基于時間點恢復進行存檔 3.創建一個備用數據庫 |
wal_buffer | 為WAL緩沖區預留的共享內存量 |
wal_write_delay | WAL更新間隔標識,默認為200毫秒 |
bgwriter_lru_maxpages | 指定每一次迭代中進程寫入緩沖區的最大數量 |
autovacuum | 自動啟動清空操作 默認值為 ON
|
日志進程
日志標簽嚴重等級
嚴重性 | 用途 |
---|---|
INFO | 提供了用戶隱式請求的信息 如 : VACUUM VERBOSE 的輸出 |
NOTICE | 提供了可能對用戶有益的信息 如 : 關于長標識符截斷通知 |
WARNING | 提供了可能問題的警告 如 : 事務塊之外的COMMIT |
ERROR | 匯報導致當前命令中止的錯誤 |
LOG | 匯報管理員感興趣的信息 如 : 檢查點活動 |
FATAL | 匯報導致當前會話中止的錯誤 |
PANIC | 匯報導致所有數據庫對話中止的錯誤 |
log_line_frefix
可以以非常詳細的自定義格式登錄,可使用日志文件對數據庫發生的事項進行分析
部分前綴選項釋義
選項 | 描述 | 選項 | 描述 |
---|---|---|---|
%a | 應用名稱 | %m | 有毫秒的時間戳 |
%u | 用戶名 | %i | 命令標簽 |
%d | 數據庫名稱 | %e | SQL狀態錯誤碼 |
%r | 遠程主機與端口 | %c | 會話ID |
%h | 遠程主機 | %l | 改會話的日志行數 |
%p | 進程ID | %s | 會話起始時間戳 |
%t | 無毫秒的時間戳 |