Aurora MySQL 資料庫日誌概觀 - Amazon Aurora

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

Aurora MySQL 資料庫日誌概觀

您可以監控下列類型的 Aurora MySQL 日誌檔案:

  • 錯誤日誌

  • 慢查詢日誌

  • 一般日誌

  • 稽核日誌

預設情況下會產生 Aurora MySQL 錯誤日誌。透過在資料庫參數群組中設定參數,產生慢查詢日誌和一般日誌。

Aurora MySQL 錯誤日誌

Aurora MySQL 會將錯誤寫入 mysql-error.log 檔案中。每個日誌檔案的產生時間 (UTC 時區) 皆會附加於檔案名稱中。日誌檔案也有時間戳記,可協助您判定日誌項目寫入的時間。

只有在開機、當機以及發生錯誤時,Aurora MySQL 才會寫入錯誤日誌。資料庫執行個體可在未寫入新項目到錯誤日誌的情況下持續執行數小時或數日。若您沒有看到最近的項目,這是因為伺服器未遇到需寫入日誌項目的錯誤。

根據設計,系統會篩選錯誤日誌,以僅顯示未預期的事件,例如錯誤。不過,錯誤日誌還包含一些其他未顯示的資料庫資訊,例如查詢進度。因此即使沒有任何實際錯誤,但錯誤日誌的大小可能會因為在進行的資料庫活動而增加。雖然您可能會在 AWS Management Console 看到特定大小 (以位元組或 KB 為單位) 的錯誤日誌,但下載時它們可能是 0 個位元組。

Aurora MySQL 每 5 分鐘將 mysql-error.log 寫入磁碟一次。這會將日誌的內容追加到 mysql-error-running.log

Aurora MySQL 每小時會輪換 mysql-error-running.log 檔案一次。

注意

Amazon RDS 和 Aurora 的日誌保留期間不同。

Aurora MySQL 慢查詢與一般查詢

您可以將 Aurora MySQL 慢查詢日誌與一般日誌寫入至檔案或資料庫表格。若要這樣做,請在您的資料庫參數群組中設定參數。如需建立和修改資料庫參數群組的詳細資訊,請參閱使用參數群組。您必須先設定這些參數,才可在 Amazon RDS 主控台中檢視慢查詢記錄或一般記錄,或者使用 Amazon RDS API、Amazon RDS CLI 或 AWS SDK 檢視。

您可以使用清單中的參數來控制 Aurora MySQL 日誌記錄:

  • slow_query_log:若要建立慢查詢,請設為 1。預設為 0。

  • general_log:若要建立一般日誌,請設為 1。預設值為 0。

  • long_query_time:若要避免快速執行查詢記錄於慢查詢日誌中,請為需記錄之最短查詢執行時間指定一個值,以秒為單位。預設為 10 秒,最短時間為 0。若 log_output = FILE,您可以指定以毫秒解析度為單位的浮點值。若 log_output = TABLE,您必須指定以秒為單位的整數值。只會記錄執行時間超過 long_query_time 值的查詢。例如,將 long_query_time 設為 0.1 可避免記錄任何在 100 毫秒內執行之查詢。

  • log_queries_not_using_indexes:若要將所有不使用索引的查詢記錄於慢查詢日誌中,請設為 1。系統會記錄不使用索引的查詢,即使其執行時間低於 long_query_time 參數的值。預設值為 0。

  • log_output option:您可為 log_output 參數指定下列其中一個選項。

    • TABLE – 將一般查詢寫入 mysql.general_log 表格,而慢查詢則寫入 mysql.slow_log 表格。

    • FILE – 同時將一般與慢查詢日誌寫入檔案系統中。

    • NONE – 停用日誌記錄。

    對於 Aurora MySQL 第 2 版,log_output 的預設值為 FILE

如需慢查詢與一般日誌的詳細資訊,請參閱 MySQL 文件中的下列主題:

Aurora MySQL 稽核日誌

Aurora MySQL 的稽核日誌稱為進階稽核。若要開啟進階稽核,請設定某些資料庫叢集參數。如需詳細資訊,請參閱使用進階稽核與 Amazon Aurora MySQL 資料庫叢集搭配

Aurora MySQL 的日誌輪換與保留

日誌記錄功能啟用時,Amazon Aurora 會定期輪換或刪除日誌檔案。此方法為預防措施,可降低大型日誌檔封鎖資料庫使用或影響效能的可能性。Aurora MySQL 會處理輪換與刪除,如下所示:

  • Aurora MySQL 錯誤日誌檔案的大小限制為不能超過資料庫執行個體本機儲存空間的 15%。為保持此閾值,日誌會每小時自動輪換。Aurora MySQL 會在 30 天後或達到磁碟空間的 15% 時移除日誌。若在移除舊日誌檔案後總日誌檔案大小仍超過閾值,將會從最舊的日誌檔案開始刪除,直到日誌檔案大小不再超過閾值為止。

  • Aurora MySQL 會在 24 小時後或在儲存空間使用量達 15% 時,移除稽核、一般和慢查詢日誌。

  • FILE 日誌記錄啟用時,每個小時將檢視一般日誌與慢查詢日誌檔一次,而超過 24 小時的日誌檔將會刪除。在部分情況下,刪除後剩餘的總日誌檔案大小可能超過資料庫執行個體本機空間的 15% 閾值。於這些狀況中,最舊的日誌檔將遭刪除,直到日誌檔大小不再超過閾值。

  • TABLE 日誌已啟用時,不會輪換或刪除日誌資料表。當所有日誌合併後的大小過大時,日誌資料表將被截斷。您可訂閱 low_free_storage 事件,當應手動輪換或刪除日誌資料表以釋放空間時就會通知您。如需詳細資訊,請參閱使用 Amazon RDS 事件通知

    您可以呼叫 mysql.rds_rotate_general_log 程序來手動輪換 mysql.general_log 表格。您可以呼叫 mysql.slow_log 程序來輪換 mysql.rds_rotate_slow_log 表格。

    手動輪換日誌資料表時,目前日誌資料表會複製到備份日誌資料表,並移除目前日誌資料表中的項目。如果備份日誌資料表已存在,則其會在目前日誌資料表複製到備份之前刪除。如有需要,您可以查詢備份日誌資料表。mysql.general_log 資料表的備份日誌資料表名為 mysql.general_log_backupmysql.slow_log 資料表的備份日誌資料表名為 mysql.slow_log_backup

  • 當檔案大小達到 100 MB 時,會輪換 Aurora MySQL 稽核日誌,並在 24 小時後刪除。

若要從 Amazon RDS 主控台、Amazon RDS API、Amazon RDS CLI 或 AWS SDK 使用記錄,請將 log_output 參數設為 FILE。如同 Aurora MySQL 錯誤日誌,這些日誌檔案也會每小時輪換。前 24 小時之間產生的日誌檔案將會保留。請注意,Amazon RDS 和 Aurora​ 的保留期間不同。