本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon RDS for PostgreSQL 的常用 DBA 任務
資料庫管理員 (DBA) 在管理 Amazon RDS for PostgreSQL 資料庫執行個體時執行各種任務。若您是已經熟悉 PostgreSQL 的 DBA,則需要了解在硬體上執行 PostgreSQL 和 RDS for PostgreSQL 之間的一些重要差異。例如,由於 Amazon RDS 為受管服務,因此不允許 Shell 存取資料庫執行個體。這表示您無法直接存取 pg_hba.conf
和其他組態檔。對於 RDS for PostgreSQL,會對與 RDS for PostgreSQL 資料庫執行個體相關聯的自訂資料庫參數群組,進行通常對內部部署執行個體的 PostgreSQL 組態檔所做的變更。如需詳細資訊,請參閱 的參數組 RDS。
您也無法以您對內部部署 PostgreSQL 執行個體所做的相同方式存取日誌檔。如要進一步了解記錄,請參閱 的SQL數據庫日誌文件。
如同另一個範例,您無法存取 PostgreSQL superuser
帳戶。在 RDS for PostgreSQL 上,rds_superuser
角色是最具特權的角色,且其在設定時間授予 postgres
。無論您是熟悉於內部部署使用 PostgreSQL 還是對 RDS for PostgreSQL 完全陌生,我們都建議您了解 rds_superuser
角色,及如何使用角色、使用者、群組和許可權限。如需詳細資訊,請參閱 了解職員SQL角色和權限。
下文將介紹 RDS for PostgreSQL 的一些常用 DBA 任務。
主題
搭配使用 RDS for PostgreSQL 支援的記錄機制
您可以設定數個參數、擴充功能和其他可設定項目來記錄在 PostgreSQL 資料庫執行個體上發生的活動。這些索引標籤包括以下項目:
log_statement
參數可用來記錄 PostgreSQL 資料庫中的使用者活動。若要進一步了解 RDS for PostgreSQL 記錄和如何監控日誌,請參閱 的SQL數據庫日誌文件。rds.force_admin_logging_level
參數可記錄 Amazon RDS 內部使用者 (rdsadmin) 在資料庫中對資料庫執行個體執行的動作。其會將輸出寫入 PostgreSQL 錯誤日誌。允許的值為:disabled
、debug5
、debug4
、debug3
、debug2
、debug1
、info
、notice
、warning
、error
、log、fatal
和panic
。預設值為disabled
。rds.force_autovacuum_logging_level
參數可設定為在 PostgreSQL 錯誤日誌中擷取各種自動資料清理作業。如需詳細資訊,請參閱 記錄清理和自動資料清理活動。PostgreSQL Audit (pgAudit) 擴充功能可安裝並設定為擷取工作階段層級或物件層級的活動。如需詳細資訊,請參閱 用 pgAudit 來記錄資料庫活動。
log_fdw
擴充功能可讓您使用 SQL 存取資料庫引擎日誌。如需詳細資訊,請參閱 使用 log_fdw 擴展來訪問數據庫日誌 SQL。pg_stat_statements
程式庫被指定為 RDS for PostgreSQL 第 10 版及更高版本中shared_preload_libraries
參數的預設值。您可以使用這個程式庫來分析正在執行的查詢。請確定已在資料庫參數群組中設定pg_stat_statements
。如需使用此程式庫提供的資訊監控 RDS for PostgreSQL 資料庫執行個體的詳細資訊,請參閱 SQL· 波斯特格雷統計 SQL。log_hostname
參數會將每個用戶端連線的主機名稱擷取至日誌檔。對於 RDS for PostgreSQL 第 12 版及更新版本,此參數預設會設為off
。如果您將其開啟,請務必監控工作階段連線時間。開啟時,服務會使用網域名稱系統 (DNS) 反向查詢請求,來取得進行連線的用戶端主機名稱,並將其新增至 PostgreSQL 日誌。這會在工作階段連線期間產生明顯的影響。建議您開啟此參數,僅用於疑難排解目的。
一般來說,記錄是為了讓 DBA 監控情況、調校效能和排除故障。許多日誌會自動上傳到 Amazon CloudWatch 或 Performance Insights。日誌會在這些地方進行排序和分組,以便為您的資料庫執行個體提供完整的指標。若要進一步了解 Amazon RDS 監控和指標,請參閱 在 Amazon RDS 執行個體中監控指標。
使用 pgBadger 進行 PostgreSQL 的日誌分析
您可以使用 pgbadgerlog_line_prefix
當作參數提供給 pgBadger,它應該仍會產生報告。
例如,下列命令會使用 pgbadger 正確地格式化日期為 2014-02-04 的 Amazon RDS for PostgreSQL 日誌檔案。
./pgbadger -f stderr -p '%t:%r:%u@%d:[%p]:' postgresql.log.2014-02-04-00
使用 PgSNAPPER 監控 PostgreSQL
您可以使用 PgSNapper 協助定期收集與 Amazon RDS for PostgreSQL 效能相關的統計資訊和指標。如需詳細資訊,請參閱使用 PGSnapper 監控 Amazon RDS for PostgreSQL 效能