

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

# Aurora MySQL 資料庫日誌概觀
<a name="USER_LogAccess.MySQL.LogFileSize"></a>

您可以監控下列類型的 Aurora MySQL 日誌檔案：
+ 錯誤日誌
+ 慢查詢日誌
+ 一般日誌
+ 稽核日誌
+ 執行個體日誌
+ IAM 資料庫身分驗證錯誤日誌

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

**Topics**
+ [Aurora MySQL 錯誤日誌](#USER_LogAccess.MySQL.Errorlog)
+ [Aurora MySQL 慢查詢與一般查詢](#USER_LogAccess.MySQL.Generallog)
+ [Aurora MySQL 稽核日誌](#ams-audit-log)
+ [Aurora MySQL 執行個體日誌](#ams-instance-log)
+ [Aurora MySQL 的日誌輪換與保留](#USER_LogAccess.AMS.LogFileSize.retention)
+ [將 Aurora MySQL 日誌發佈至 Amazon CloudWatch Logs](#USER_LogAccess.MySQLDB.PublishAuroraMySQLtoCloudWatchLogs)

## Aurora MySQL 錯誤日誌
<a name="USER_LogAccess.MySQL.Errorlog"></a>

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

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

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

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

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

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

## Aurora MySQL 慢查詢與一般查詢
<a name="USER_LogAccess.MySQL.Generallog"></a>

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

您可以使用清單中的參數來控制 Aurora MySQL 日誌記錄：
+ `slow_query_log`：若要建立慢查詢，請設為 1。預設為 0。
+ `general_log`：若要建立一般日誌，請設為 1。預設值為 0。
+ `long_query_time`：若要避免快速執行查詢記錄於慢查詢日誌中，請為需記錄之最短查詢執行時間指定一個值，以秒為單位。預設為 10 秒，最短時間為 0。若 log\$1output = FILE，您可以指定以毫秒解析度為單位的浮點值。若 log\$1output = 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 版和第 3 版，`log_output` 的預設值為 `FILE`。

若要讓慢速查詢資料出現在 Amazon CloudWatch Logs 中，必須符合下列條件：
+ CloudWatch Logs 必須設定為包含慢速查詢日誌。
+ 必須啟用 `slow_query_log`。
+ `log_output` 必須設定為 `FILE`。
+ 查詢必須花費超過為 `long_query_time` 設定的時間。

如需慢查詢與一般日誌的詳細資訊，請參閱 MySQL 文件中的下列主題：
+ [慢查詢日誌](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html)
+ [一般查詢日誌](https://dev.mysql.com/doc/refman/8.0/en/query-log.html)

## Aurora MySQL 稽核日誌
<a name="ams-audit-log"></a>

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

## Aurora MySQL 執行個體日誌
<a name="ams-instance-log"></a>

Aurora 會為已啟用自動暫停的資料庫執行個體建立單獨的日誌檔案。此 instance.log 檔案會記錄這些資料庫執行個體無法如預期暫停的任何原因。如需執行個體日誌檔案行為和 Aurora 自動暫停功能的詳細資訊，請參閱[監控 Aurora Serverless v2 暫停和繼續活動](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2-administration.html#autopause-logging-instance-log)。

## Aurora MySQL 的日誌輪換與保留
<a name="USER_LogAccess.AMS.LogFileSize.retention"></a>

日誌記錄功能啟用時，Amazon Aurora 會定期輪換或刪除日誌檔案。此方法為預防措施，可降低大型日誌檔封鎖資料庫使用或影響效能的可能性。Aurora MySQL 會處理輪換與刪除，如下所示：
+ Aurora MySQL 錯誤日誌檔案的大小限制為不能超過資料庫執行個體本機儲存空間的 15%。為保持此閾值，日誌會每小時自動輪換。Aurora MySQL 會在 30 天後或達到磁碟空間的 15% 時移除日誌。若在移除舊日誌檔案後總日誌檔案大小仍超過閾值，將會從最舊的日誌檔案開始刪除，直到日誌檔案大小不再超過閾值為止。
+ Aurora MySQL 會在 24 小時後或在儲存空間使用量達 15% 時，移除稽核、一般和慢查詢日誌。
+ 當 `FILE` 日誌記錄啟用時，每個小時將檢視一般日誌與慢查詢日誌檔一次，而超過 24 小時的日誌檔將會刪除。在部分情況下，刪除後剩餘的總日誌檔案大小可能超過資料庫執行個體本機空間的 15% 閾值。於這些狀況中，最舊的日誌檔將遭刪除，直到日誌檔大小不再超過閾值。
+ 當 `TABLE` 日誌已啟用時，不會輪換或刪除日誌資料表。當所有日誌合併後的大小過大時，日誌資料表將被截斷。您可訂閱 `low storage` 事件類別，當應手動輪換或刪除日誌資料表以釋放空間時就會通知您。如需詳細資訊，請參閱[使用 Amazon RDS 事件通知](USER_Events.md)。

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

  手動輪換日誌資料表時，目前日誌資料表會複製到備份日誌資料表，並移除目前日誌資料表中的項目。如果備份日誌資料表已存在，則其會在目前日誌資料表複製到備份之前刪除。如有需要，您可以查詢備份日誌資料表。`mysql.general_log` 資料表的備份日誌資料表名為 `mysql.general_log_backup`。`mysql.slow_log` 資料表的備份日誌資料表名為 `mysql.slow_log_backup`。
+ 當檔案大小達到 100 MB 時，會輪換 Aurora MySQL 稽核日誌，並在 24 小時後刪除。
+ Amazon RDS 會輪換大於 10 MB 的 IAM 資料庫身分驗證錯誤日誌檔案。Amazon RDS 會移除超過五天或大於 100 MB 的 IAM 資料庫身分驗證錯誤日誌檔案。

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

## 將 Aurora MySQL 日誌發佈至 Amazon CloudWatch Logs
<a name="USER_LogAccess.MySQLDB.PublishAuroraMySQLtoCloudWatchLogs"></a>

您可以設定 Aurora MySQL 資料庫叢集，以將日誌資料發佈至 Amazon CloudWatch Logs 中的日誌群組。使用 CloudWatch Logs，您可以執行日誌資料的即時分析，並使用 CloudWatch 來建立警示和檢視指標。您可以使用 CloudWatch Logs 將日誌記錄存放在高耐用性的儲存裝置中。如需詳細資訊，請參閱[將 Amazon Aurora MySQL 日誌發佈至 Amazon CloudWatch Logs](AuroraMySQL.Integrating.CloudWatch.md)。