本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
用於登入 RDS for PostgreSQL 的參數
您可以修改各種參數,自訂 RDS的 PostgreSQL 資料庫執行個體記錄行為。在下表中,您可以找到影響日誌存放時間、何時輪換日誌,以及是否以 CSV(逗號分隔值) 格式輸出日誌的參數。您也可以找到傳送至 的文字輸出STDERR,以及其他設定。若要變更可修改參數的設定,請使用 Aurora Postgre 資料庫的自訂資料庫叢集資料庫參數群組。 RDS 適用於 PostgreSQL 執行個體。如需詳細資訊,請參閱 RDSAmazon資料庫執行個體的資料庫參數群。如表中所述,無法變更 log_line_prefix
。
參數 | 預設 | 描述 |
---|---|---|
log_destination | stderr | 設定日誌的輸出格式。預設值為 , |
log_filename |
postgresql.log.%Y-%m-%d-%H |
指定日誌檔名稱的模式。除了預設值之外,此參數還支援檔案名稱模式的 |
log_line_prefix | %t:%r:%u@%d:[%p]: | 定義寫入至 |
log_rotation_age | 60 | 日誌檔會多少分鐘後自動轉換。您可以在 1 到 1440 分鐘的範圍內變更此值。如需詳細資訊,請參閱設定日誌檔案輪換。 |
log_rotation_size | – | 日誌檔自動轉換的大小 (kB)。根據預設,不會使用此參數,因為日誌會根據 |
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
設定日誌目標 (stderr
、csvlog
)
根據預設, 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_fdw
和 csvlog
,請參閱 使用 log_fdw 擴展來訪問數據庫日誌 SQL。
如果您為此參數指定 csvlog
,請注意會同時產生 stderr
和 csvlog
檔案。請務必監控日誌所使用的儲存體,同時考慮 rds.log_retention_period
及影響日誌儲存體和更換的其他設定。使用 stderr
和 csvlog
會使日誌所使用的儲存體空間增加一倍以上。
如果您將 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 (若可用)