本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
用於登入 Aurora PostgreSQL 的參數
您可以修改各種參數,自訂 Aurora PostgreSQL 資料庫叢集記錄行為。在下表中,您可以找到影響日誌存放時間、何時輪換日誌,以及是否以 CSV(逗號分隔值) 格式輸出日誌的參數。您也可以找到傳送至 的文字輸出STDERR,以及其他設定。若要變更可修改參數的設定,請使用 Aurora Postgre 叢集的自訂資料庫叢集資料庫參數群組。 SQL 如需詳細資訊,請參閱 Amazon Aurora 的參數組 RDS。 如表中所述,無法變更 log_line_prefix
。
參數 | 預設 | 描述 |
---|---|---|
log_destination | stderr | 設定日誌的輸出格式。預設值為 , |
log_filename |
postgresql.log.%Y-%m-%d-%H%M |
指定日誌檔名稱的模式。除了預設值之外,此參數還支援檔案名稱模式的 |
log_line_prefix | %t:%r:%u@%d:[%p]: | 定義寫入至 |
log_rotation_age | 60 | 日誌檔會多少分鐘後自動轉換。您可以在 1 到 1440 分鐘的範圍內變更此值。如需詳細資訊,請參閱設定日誌檔案輪換。 |
log_rotation_size | – | 日誌檔自動轉換的大小 (kB)。您可以在 50,000 到 1,000,000 KB 的範圍內變更此值。如需進一步了解,請參閱 設定日誌檔案輪換。 |
rds.log_retention_period | 4320 | 刪除超過指定分鐘數的 PostgreSQL 日誌。預設值 4320 分鐘將在 3 天後刪除日誌檔案。如需詳細資訊,請參閱設定日誌保留期間。 |
如要識別應用程式問題,您可在日誌中尋找查詢失敗、登入失敗、鎖死和致命的伺服器錯誤。例如,假設您將舊版應用程式從 Oracle 轉換為 Aurora Postgre SQL,但並非所有查詢都正確轉換。這些格式不正確的查詢會產生您可在日誌中尋找的錯誤訊息,以協助識別問題。如需記錄查詢的詳細資訊,請參閱 針對 Postgre 資料庫執行個體開啟 Aurora Postgre SQL 資料庫叢集RDS查詢記錄 SQL。
在下列主題中,您可以找到有關如何設定各種參數的資訊,以控制 PostgreSQL 日誌的基本詳細資訊。
設定日誌保留期間
rds.log_retention_period
參數指定 Aurora PostgreSQL 資料庫叢集保留其日誌檔案的時間長度。預設設定為 3 天 (4,320 分鐘),但您可以將此值設為 1 天 (1,440 分鐘) 至 7 天 (10,080 分鐘)。請確定您的 Aurora PostgreSQL 資料庫叢集有足夠的儲存空間,可以保留一段時間的日誌檔案。
我們建議您定期將日誌發佈至 Amazon CloudWatch Logs,以便在從 Aurora PostgreSQL 資料庫叢集移除日誌之後,長時間檢視和分析系統資料。如需詳細資訊,請參閱 將 Aurora 郵政SQL日誌發佈到 Amazon CloudWatch 日誌。 設定 CloudWatch發佈後,Aurora 會在日誌發佈至日誌之前刪除CloudWatch 日誌。
當資料庫執行個體的儲存達到閾值時,Amazon Aurora 會壓縮較舊的 PostgreSQL 日誌。Aurora 會使用 gzip 壓縮公用程式來壓縮檔案。如需詳細資訊,請參閱 gzip
當資料庫執行個體的儲存體不足且所有可用的日誌皆已壓縮時,您會收到類似如下的警告:
Warning: local storage for PostgreSQL log files is critically low for
this Aurora PostgreSQL instance, and could lead to a database outage.
如果儲存空間不足,Aurora 可能會在指定的保留期結束前刪除壓縮的 PostgreSQL 日誌。若發生這種狀況,您會看到類似下列內容的訊息:
The oldest PostgreSQL log files were deleted due to local storage constraints.
設定日誌檔案輪換
根據預設,Aurora 每小時會建立新的日誌檔案。時間由 log_rotation_age
參數控制。此參數的預設值為 60 (分鐘),但您可以將其設為從 1 分鐘至 24 小時 (1,440 分鐘) 的任何時間。在輪換時,會建立一個新的不同日誌檔案。該檔案的命名是依據 log_filename
參數所指定的模式。
日誌檔案也可依其大小進行旋轉,如 log_rotation_size
參數中所指定。此參數指定當日誌達到指定大小 (以 KB 為單位) 時應輪換日誌。Aurora PostgreSQL 資料庫叢集的預設值log_rotation_size
為 100000 kB (KB),但您可以將此值設定為 50,000 到 1,000,000 KB 之間的任何位置。
日誌檔案名稱會以 log_filename
參數中指定的檔案名稱模式為基礎。此參數的可用設定如下所示:
postgresql.log.%Y-%m-%d
– 日誌檔名稱的預設格式。在日誌檔的名稱中包含年、月和日期。postgresql.log.%Y-%m-%d-%H
– 在日誌檔名稱格式中包括小時。postgresql.log.%Y-%m-%d-%H%M
– 在日誌檔名稱格式中包括小時:分鐘。
如果您將 log_rotation_age
參數設為少於 60 分鐘,請將 log_filename
參數設為分鐘格式:
如需詳細資訊,請參閱 PostgreSQL 文件log_rotation_size
log_rotation_age
設定日誌目標 (stderr
、csvlog
)
根據預設,Aurora PostgreSQL 會以標準錯誤 (stderr) 格式產生日誌。此格式為 log_destination
參數的預設設定。每則訊息都會使用 log_line_prefix
參數中指定的模式作為字首。如需詳細資訊,請參閱了解 log_line_prefix 參數。
Aurora PostgreSQL 也可以產生 csvlog
格式的日誌。csvlog
有助於以逗號分隔值 (CSV) 資料分析日誌資料。例如,假設您使用 log_fdw
延伸模組,將日誌作為外部資料表處理。在 stderr
日誌檔案上建立的外部資料表包含一個具日誌事件資料的單一欄。透過csvlog
新增至 log_destination
參數,您可以取得具有外部資料表之多個資料欄之分隔的CSV格式日誌檔案。您現在可以更輕鬆地排序和分析日誌。
如果您為此參數指定 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 (若可用)