

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# RDS for PostgreSQL 程序
<a name="PostgreSQL.Tuning.concepts.processes"></a>

RDS for PostgreSQL 使用多個程序。

**Topics**
+ [郵件管理員程序](#PostgreSQL.Tuning.concepts.postmaster)
+ [後端程序](#PostgreSQL.Tuning.concepts.backend)
+ [背景程序](#PostgreSQL.Tuning.concepts.vacuum)

## 郵件管理員程序
<a name="PostgreSQL.Tuning.concepts.postmaster"></a>

*郵件管理員程序*是您啟動 RDS for PostgreSQL 時啟動的第一個程序。郵件管理員程序有下列主要責任：
+ 分叉和監控背景程序
+ 接收來自用戶端程序的身分驗證請求，並在驗證請求之後才允許資料庫處理請求

## 後端程序
<a name="PostgreSQL.Tuning.concepts.backend"></a>

如果郵件管理員驗證用戶端請求，郵件管理員會分叉新的後端程序，也稱為 postgres 程序。一個用戶端程序只連線到一個後端程序。用戶端程序和後端程序直接通訊，無須郵件管理員程序介入。

## 背景程序
<a name="PostgreSQL.Tuning.concepts.vacuum"></a>

郵件管理員程序分叉幾個程序來執行不同的後端任務。一些較重要的程序包括：
+ WAL 寫入器

  RDS for PostgreSQL 將 WAL (預寫日誌) 緩衝區中的資料寫入日誌檔。預寫日誌的原則是直到資料庫將描述變更的日誌記錄寫入磁碟之後，資料庫才能將這些變更寫入資料檔。WAL 機制可減少磁碟輸入/輸出，並允許 RDS for PostgreSQL 在故障後使用日誌來復原資料庫。
+ 背景寫入器

  這個程序定期將已變更 (已修改) 分頁從記憶體緩衝區寫入資料檔。當後端程序在記憶體中修改分頁時，此分頁會變成已變更。
+ 自動資料清理常駐程式

  此常駐程式由下列組成：
  + 自動資料清理啟動器
  + 自動資料清理工作者程序

  自動資料清理啟用時會檢查已插入、更新或刪除大量元組的資料表。此常駐程式有下列責任：
  + 復原或重複使用已更新或刪除的資料列所佔用的磁碟空間
  + 更新規劃員使用的統計數字
  + 防止因交易 ID 環繞而遺失舊資料

  自動資料清理功能可自動執行 `VACUUM` 和 `ANALYZE` 命令。`VACUUM` 有以下變體：標準和完整。標準清理與其他資料庫操作平行執行。`VACUUM FULL` 需要獨佔鎖定其處理的資料表。因此，無法與存取同一個資料表的操作平行執行。`VACUUM` 會建立大量輸入/輸出流量，可能導致其他作用中工作階段的效能不佳。