

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

# Amazon RDS for Microsoft SQL Server 資料庫日誌檔案
<a name="USER_LogAccess.Concepts.SQLServer"></a>

您可使用 Amazon RDS 主控台、 AWS CLI或 RDS API 存取 Microsoft SQL Server 錯誤記錄、代理程式記錄、追蹤檔案和傾印檔案。如需關於檢視、下載與查看資料庫日誌檔案的資訊，請參閱[監控 Amazon RDS 日誌檔案](USER_LogAccess.md)。

## 保留排程
<a name="USER_LogAccess.Concepts.SQLServer.Retention"></a>

不論您的資料庫執行個體何時重新啟動，日誌檔案都會每日輪換。下列為 Amazon RDS 上的 Microsoft SQL Server 日誌保留排程。


****  

| 日誌類型 | 保留排程 | 
| --- | --- | 
|  錯誤日誌  |  最多會保留 30 個錯誤記錄。Amazon RDS 可能會刪除超過 7 日的錯誤記錄。  | 
|  代理程式日誌  |  最多會保留 10 個代理程式記錄。Amazon RDS 可能會刪除超過 7 日的代理程式記錄。  | 
|  追蹤檔案  |  追蹤檔案會依據您資料庫執行個體的追蹤檔案保留期間進行保存。預設的追蹤檔案保留期間為 7 天。若要修改您資料庫執行個體的追蹤檔案保留期間，請參閱 [設定追蹤和傾印檔案的保留期間](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles)。  | 
|  傾印檔案  |  傾印檔案會依據您資料庫執行個體的傾印檔案保留期間進行保存。預設的傾印檔案保留期間為 7 天。若要修改您資料庫執行個體的傾印檔案保留期間，請參閱 [設定追蹤和傾印檔案的保留期間](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles)。  | 

## 使用 rds\$1read\$1error\$1log 程序檢視 SQL Server 錯誤
<a name="USER_LogAccess.Concepts.SQLServer.Proc"></a>

您可以使用 Amazon RDS 預存程序 `rds_read_error_log` 來檢視錯誤日誌與代理程式日誌。如需更多詳細資訊，請參閱 [檢視錯誤和代理程式日誌](Appendix.SQLServer.CommonDBATasks.Logs.md#Appendix.SQLServer.CommonDBATasks.Logs.SP)。

## 將 SQL Server 日誌發佈至 Amazon CloudWatch Logs
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs"></a>

透過 Amazon RDS for SQL Server，您可以將錯誤和代理程式日誌事件直接發佈至 Amazon CloudWatch Logs。使用 CloudWatch Logs 分析日誌資料，然後使用 CloudWatch 建立警示和檢視指標。

透過 CloudWatch Logs，您可以執行下列操作：
+ 將日誌存放在高耐用性儲存空間，並由您定義保留期間。
+ 搜尋和篩選日誌資料。
+ 在帳戶之間共享日誌資料。
+ 將日誌匯出至 Amazon S3。
+ 將資料串流至 Amazon OpenSearch Service。
+ 使用 Amazon Kinesis Data Streams 即時處理日誌資料。如需詳細資訊，請參閱《適用於 SQL 應用程式的 Amazon Managed Service for Apache Flink 開發人員指南》**中的[使用 Amazon CloudWatch Logs](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html)。

 Amazon RDS 將每個 SQL Server 資料庫日誌發佈為日誌群組中獨立的資料庫流。例如，如果您發佈代理程式日誌和錯誤日誌，錯誤資料會存放在 `/aws/rds/instance/my_instance.node1/error` 日誌群組的錯誤日誌串流中，而代理程式日誌資料則存放在 `/aws/rds/instance/my_instance.node1/agent` 日誌群組中。

對於多可用區域資料庫執行個體，Amazon RDS 會在日誌群組中以兩個獨立的串流形式發佈資料庫日誌。例如，如果您發佈錯誤日誌，錯誤資料會分別存放在錯誤日誌串流 `/aws/rds/instance/my_instance.node1/error` 和 `/aws/rds/instance/my_instance.node2/error` 中。日誌串流在容錯移轉期間不會變更，而且每個節點的錯誤日誌串流可能包含來自主要或次要執行個體的錯誤日誌。使用多可用區域時，會自動為 `/aws/rds/instance/my_instance/rds-events` 建立日誌串流，以存放資料庫執行個體容錯移轉等事件資料。

**注意**  
預設不會將 SQL Server 日誌發佈至 CloudWatch Logs。不支援發佈追蹤檔案和傾印檔案。所有區域都支援將 SQL Server 日誌發佈至 CloudWatch Logs。

### 主控台
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs.console"></a>

**從 將 SQL Server 資料庫日誌發佈至 CloudWatch Logs AWS 管理主控台**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要修改的資料庫執行個體。

1. 選擇 **Modify (修改)**。

1. 在 **Log exports (日誌匯出)** 區段中，選擇您要開始發佈至 CloudWatch Logs 的日誌。

   您可以選擇 **Agent log (代理程式日誌)**、**Error log (錯誤日誌)**，或兩者皆選。

1. 選擇 **Continue (繼續)**，然後在摘要頁面上選擇 **Modify DB Instance (修改資料庫執行個體)**。

### AWS CLI
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs.CLI"></a>

若要發佈 SQL Server 日誌，您可搭配下列參數使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令：
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注意**  
`--cloudwatch-logs-export-configuration` 選項的變更一律立即套用到資料庫執行個體。因此，`--apply-immediately` 和 `--no-apply-immediately` 選項沒有效果。

您亦可使用下列命令來發佈 SQL Server 日誌：
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
下列範例建立 SQL Server 資料庫執行個體並啟用發佈至 CloudWatch Logs。`--enable-cloudwatch-logs-exports` 值是 JSON 字串陣列，可包含 `error`、`agent` 或兩者。  
針對 Linux、macOS 或 Unix：  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --enable-cloudwatch-logs-exports '["error","agent"]' \
    --db-instance-class db.m4.large \
    --engine sqlserver-se
```
在 Windows 中：  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --enable-cloudwatch-logs-exports "[\"error\",\"agent\"]" ^
    --db-instance-class db.m4.large ^
    --engine sqlserver-se
```
使用 Windows 命令提示字元時，您必須在 JSON 程式碼中的雙引號 (") 開頭加上反斜線 (\$1)，以逸出雙引號。

**Example**  
下列範例修改現有的 SQL Server 資料庫執行個體，以將日誌檔案發佈至 CloudWatch Logs。`--cloudwatch-logs-export-configuration` 值為 JSON 物件。此物件的金鑰為 `EnableLogTypes`，而值為字串陣列，可包含 `error`、`agent` 或兩者。  
針對 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","agent"]}'
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"error\",\"agent\"]}"
```
使用 Windows 命令提示字元時，您必須在 JSON 程式碼中的雙引號 (") 開頭加上反斜線 (\$1)，以逸出雙引號。

**Example**  
下列範例修改現有的 SQL Server 資料庫執行個體，以停用將代理程式日誌檔案發佈至 CloudWatch Logs。`--cloudwatch-logs-export-configuration` 值為 JSON 物件。此物件的金鑰為 `DisableLogTypes`，而值為字串陣列，可包含 `error`、`agent` 或兩者。  
針對 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["agent"]}'
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"agent\"]}"
```
使用 Windows 命令提示字元時，您必須在 JSON 程式碼中的雙引號 (") 開頭加上反斜線 (\$1)，以逸出雙引號。