用於登入 RDS for PostgreSQL 的參數 - Amazon Relational Database Service

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

用於登入 RDS for PostgreSQL 的參數

您可以修改各種參數,自訂 RDS的 PostgreSQL 資料庫執行個體記錄行為。在下表中,您可以找到影響日誌存放時間、何時輪換日誌,以及是否以 CSV(逗號分隔值) 格式輸出日誌的參數。您也可以找到傳送至 的文字輸出STDERR,以及其他設定。若要變更可修改參數的設定,請使用 Aurora Postgre 資料庫的自訂資料庫叢集資料庫參數群組。 RDS 適用於 PostgreSQL 執行個體。如需詳細資訊,請參閱 RDSAmazon資料庫執行個體的資料庫參數群如表中所述,無法變更 log_line_prefix

參數 預設 描述

log_destination

stderr

設定日誌的輸出格式。預設值為 ,stderr但您也可以透過將 csvlog新增至設定來指定逗號分隔值 (CSV)。如需詳細資訊,請參閱 設定日誌目標 (stderr、csvlog)

log_filename

postgresql.log.%Y-%m-%d-%H

指定日誌檔名稱的模式。除了預設值之外,此參數還支援檔案名稱模式的 postgresql.log.%Y-%m-%d

log_line_prefix

%t:%r:%u@%d:[%p]:

定義寫入至 stderr 的每個日誌行的字首,以記錄時間 (%t)、遠端主機 (%r)、使用者 (%u)、資料庫 (%d) 和程序 ID (%p)。您無法修改此參數。

log_rotation_age

60

日誌檔會多少分鐘後自動轉換。您可以在 1 到 1440 分鐘的範圍內變更此值。如需詳細資訊,請參閱設定日誌檔案輪換

log_rotation_size

日誌檔自動轉換的大小 (kB)。根據預設,不會使用此參數,因為日誌會根據 log_rotation_age 參數輪換。如需進一步了解,請參閱 設定日誌檔案輪換

rds.log_retention_period

4320

刪除超過指定分鐘數的 PostgreSQL 日誌。預設值 4320 分鐘將在 3 天後刪除日誌檔案。如需詳細資訊,請參閱設定日誌保留期間

如要識別應用程式問題,您可在日誌中尋找查詢失敗、登入失敗、鎖死和致命的伺服器錯誤。例如,假設您將舊版應用程式從 Oracle 轉換為 Amazon RDS Postgre SQL,但並非所有查詢都正確轉換。這些格式不正確的查詢會產生您可在日誌中尋找的錯誤訊息,以協助識別問題。如需記錄查詢的詳細資訊,請參閱 針對 Postgre 資料庫執行個體開啟 的查詢記錄 SQL

在下列主題中,您可以找到有關如何設定各種參數的資訊,以控制 PostgreSQL 日誌的基本詳細資訊。

設定日誌保留期間

rds.log_retention_period 參數指定 RDS的 PostgreSQL 資料庫執行個體保留其日誌檔案的時間長度。預設設定為 3 天 (4,320 分鐘),但您可以將此值設為 1 天 (1,440 分鐘) 至 7 天 (10,080 分鐘)。請確定您的 RDS的 PostgreSQL 資料庫執行個體有足夠的儲存空間,可以保留一段時間的日誌檔案。

我們建議您定期將日誌發佈至 Amazon CloudWatch Logs,以便在從 RDS 適用於 PostgreSQL 資料庫執行個體。如需詳細資訊,請參閱 將郵件SQL日誌發佈到 Amazon CloudWatch 日誌

設定日誌檔案輪換

Amazon RDS 每小時會建立新的日誌檔案。時間由 log_rotation_age 參數控制。此參數的預設值為 60 (分鐘),但您可以將其設為從 1 分鐘至 24 小時 (1,440 分鐘) 的任何時間。在輪換時,會建立一個新的不同日誌檔案。該檔案的命名是依據 log_filename 參數所指定的模式。

日誌檔案也可依其大小進行旋轉,如 log_rotation_size 參數中所指定。此參數指定當日誌達到指定大小 (以 KB 為單位) 時應輪換日誌。對於 RDS for PostgreSQL 資料庫執行個體, log_rotation_size 未設定,即沒有指定值。不過,您可以設定從 0-2097151 KB 的參數。

日誌檔案名稱會以 log_filename 參數中指定的檔案名稱模式為基礎。此參數的可用設定如下所示:

  • postgresql.log.%Y-%m-%d – 日誌檔名稱的預設格式。在日誌檔的名稱中包含年、月和日期。

  • postgresql.log.%Y-%m-%d-%H – 在日誌檔名稱格式中包括小時。

如需詳細資訊,請參閱 PostgreSQL 文件log_rotation_size中的 log_rotation_age和 。

設定日誌目標 (stderrcsvlog)

根據預設, Amazon RDS PostgreSQL 會以標準錯誤 (stderr) 格式產生日誌。此格式為 log_destination 參數的預設設定。每則訊息都會使用 log_line_prefix 參數中指定的模式作為字首。如需詳細資訊,請參閱了解 log_line_prefix 參數

RDS for PostgreSQL 也可以產生 csvlog 格式的日誌。csvlog 有助於以逗號分隔值 (CSV) 資料分析日誌資料。例如,假設您使用 log_fdw 延伸模組,將日誌作為外部資料表處理。在 stderr 日誌檔案上建立的外部資料表包含一個具日誌事件資料的單一欄。透過csvlog新增至 log_destination 參數,您可以取得具有外部資料表之多個資料欄之分隔的CSV格式日誌檔案。您現在可以更輕鬆地排序和分析日誌。如要進一步了解如何使用 log_fdwcsvlog,請參閱 使用 log_fdw 擴展來訪問數據庫日誌 SQL

如果您為此參數指定 csvlog,請注意會同時產生 stderrcsvlog 檔案。請務必監控日誌所使用的儲存體,同時考慮 rds.log_retention_period 及影響日誌儲存體和更換的其他設定。使用 stderrcsvlog 會使日誌所使用的儲存體空間增加一倍以上。

如果您將 csvlog 新增至 log_destination,並且想要單獨還原為 stderr,則需要重設參數。若要這麼做,請開啟 Amazon RDS主控台,然後開啟執行個體的自訂資料庫參數群組。選擇 log_destination 參數、選擇 Edit parameter (編輯參數],然後選擇 Reset (重設)。

如需設定記錄的詳細資訊,請參閱使用 Amazon RDS和 Aurora PostgreSQL 日誌:第 1 部分

了解 log_line_prefix 參數

stderr 日誌格式會將 log_line_prefix 參數指定的詳細資訊作為每個日誌訊息的字首,如下所示。

%t:%r:%u@%d:[%p]:t

您無法變更此設定。傳送至 stderr 的每個日誌項目都包括下列資訊。

  • %t – 日誌項目的時間

  • %r – 遠端主機地址

  • %u@%d – 使用者名稱 @ 資料庫名稱

  • [%p] – 程序 ID (若可用)