

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

# 使用 RDS for SQL Server 存取交易日誌備份
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess"></a>

藉由取 RDS for SQL Server 的交易日誌備份，您可以列出資料庫的交易日誌備份檔案，並將其複製到目標 Amazon S3 儲存貯體。透過在 Amazon S3 儲存貯體中複製交易日誌備份，您可以結合完整和差異資料庫備份使用它們，以執行時間點資料庫還原。您可以使用 RDS 預存程序來設定交易日誌備份的存取、列出可用的交易日誌備份，以及將它們複製到 Amazon S3 儲存貯體。

存取交易日誌備份可提供下列功能和優點：
+ 列出和檢視 RDS for SQL Server 資料庫執行個體上資料庫之可用交易日誌備份的中繼資料。
+ 將可用的交易日誌備份從 RDS for SQL Server 複製到目標 Amazon S3 儲存貯體。
+ 執行資料庫的時間點還原，而不需還原整個資料庫執行個體。如需將資料庫執行個體還原至某個時間點的詳細資訊，請參閱 [將 Amazon RDS 的資料庫執行個體還原至指定時間](USER_PIT.md)。

## 可用性與支援
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Availability"></a>

所有 AWS 區域都支援存取交易日誌備份。Amazon RDS 上支援的所有 Microsoft SQL Server 版本都可以存取交易日誌備份。

## 要求
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements"></a>

必須符合下列需求，才能啟用對交易日誌備份的存取：
+  必須在資料庫執行個體上啟用自動備份，且備份保留必須設為一或多天的值。如需啟用自動備份和設定保留政策的詳細資訊，請參閱 [啟用自動備份](USER_WorkingWithAutomatedBackups.Enabling.md)。
+ Amazon S3 儲存貯體與來源資料庫執行個體必須存在於相同的帳戶和區域中。在啟用對交易日誌備份的存取之前，請選擇現有的 Amazon S3 儲存貯體，或[建立新的儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html)，用於交易日誌備份檔案。
+ Amazon S3 儲存貯體許可政策必須設定如下，才能允許 Amazon RDS 將交易日誌檔複製到其中：

  1. 將儲存貯體上的物件帳戶擁有權屬性設為 **Bucket Owner Preferred** (偏好的儲存貯體擁有者)。

  1. 新增下列政策。根據預設，將沒有任何政策，因此請使用儲存貯體存取控制清單 (ACL) 來編輯儲存貯體政策並加以新增。

  

  下列範例使用 ARN 來指定資源。建議您在資源型信任關係中使用 `SourceArn` 和 `SourceAccount` 全域條件內容金鑰，將服務的許可限定於特定資來源。如需使用 ARN 的詳細資訊，請參閱 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 和 [Amazon RDS 中的 Amazon Resource Name (ARN)](USER_Tagging.ARN.md)。

    
**Example 用於存取交易日誌備份的 Amazon S3 許可政策範例**  

------
#### [ JSON ]

****  

  ```
      {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Only allow writes to my bucket with bucket owner full control",
              "Effect": "Allow",
              "Principal": {
                  "Service": "backups.rds.amazonaws.com"
              },
              "Action": "s3:PutObject",
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/{customer_path}/*",
              "Condition": {
                  "StringEquals": {
                      "s3:x-amz-acl": "bucket-owner-full-control",
                      "aws:sourceAccount": "{customer_account}",
                      "aws:sourceArn": "{db_instance_arn}"
                  }
              }
          }
      ]
  }
  ```

------
+ 存取 Amazon S3 儲存貯體的 AWS Identity and Access Management (IAM) 角色。如果您已經有 IAM 角色，則可直接使用。當您使用 AWS 管理主控台新增 `SQLSERVER_BACKUP_RESTORE` 選項時，可以選擇替您建立新的 IAM 角色。或者，您也可以手動建立新的。如需使用 `SQLSERVER_BACKUP_RESTORE` 建立和設定 IAM 角色的詳細資訊，請參閱 [手動建立原生備份與還原的 IAM 角色](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)。
+ `SQLSERVER_BACKUP_RESTORE` 選項必須新增至資料庫執行個體上的選項群組。如需新增 `SQLSERVER_BACKUP_RESTORE` 選項的詳細資訊，請參閱 [SQL Server 對原生備份與還原的支援](Appendix.SQLServer.Options.BackupRestore.md)。
**注意**  
如果您的資料庫執行個體已啟用儲存加密，則必須在原生備份和還原選項群組中提供的 IAM 角色中提供 AWS KMS (KMS) 動作和金鑰。

  或者，如果您打算使用 `rds_restore_log` 預存程序執行時間點資料庫還原，建議將相同的 Amazon S3 路徑用於原生備份和還原選項群組，以及存取交易日誌備份。此方法可確保 Amazon RDS 擔任選項群組中的角色來執行還原日誌功能時，可以從相同的 Amazon S3 路徑中擷取交易日誌備份。
+ 如果資料庫執行個體已加密，無論加密類型為何 （受AWS 管金鑰或客戶受管金鑰），您必須在 IAM 角色和`rds_tlog_backup_copy_to_S3`預存程序中提供客戶受管 KMS 金鑰。

## 限制與建議
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Limitations"></a>

存取交易日誌備份具有下列限制和建議：
+  對於備份保留設定為 1 到 35 天的任何資料庫執行個體，您最多可以列出並複製最後七天的交易日誌備份。
+  用於存取交易日誌備份的 Amazon S3 儲存貯體與來源資料庫執行個體必須存在於相同的帳戶和區域中。不支援跨帳戶與跨區域複本。
+  只能將一個 Amazon S3 儲存貯體設定為將交易日誌備份複製到的目標。您可以使用 `rds_tlog_copy_setup` 預存程序選擇新的目標 Amazon S3 儲存貯體。如需選擇新目標 Amazon S3 儲存貯體的詳細資訊，請參閱 [設定交易日誌備份的存取權](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md)。
+  如果未啟用您的 RDS 執行個體進行儲存體加密，則無法在使用 `rds_tlog_backup_copy_to_S3` 預存程序時指定 KMS 金鑰。
+  不支援多帳戶複製。用於複製的 IAM 角色只允許資料庫執行個體擁有者帳戶內 Amazon S3 儲存貯體的寫入存取權。
+  只有兩個任何類型的並行任務才能在 RDS for SQL Server 資料庫執行個體上執行。
+  在指定時間內，只能針對單一資料庫執行一個複製任務。如果您想要複製資料庫執行個體上多個資料庫的交易日誌備份，請針對每個資料庫使用個別的複製任務。
+  如果您複製已存在於 Amazon S3 儲存貯體且名稱相同的交易日誌備份，將覆寫現有的交易日誌備份。
+  您只能執行隨附的預存程序，存取主要資料庫執行個體上的交易日誌備份。您無法在 RDS for SQL Server 僅供讀取複本上，也無法在多可用區域資料庫叢集的次要執行個體上執行這些預存程序。
+  如果在 `rds_tlog_backup_copy_to_S3` 預存程序執行期間重新啟動 RDS for SQL Server 資料庫執行個體，則在資料庫執行個體再次上線時，任務將自動從頭開始重新啟動。在重新開機之前執行任務時，已複製到 Amazon S3 儲存貯體的任何交易日誌備份都會遭到覆寫。
+ 無法設定 Microsoft SQL Server 系統資料庫和 `RDSAdmin` 資料庫，進行交易日誌備份存取。
+  不支援複製到 SSE-KMS 加密的儲存貯體。

# 設定交易日誌備份的存取權
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling"></a>

若要設定交易日誌備份的存取權，請完成 [要求](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements) 區段中的需求清單，然後執行 `rds_tlog_copy_setup` 預存程序。此程序將在資料庫執行個體層級啟用對交易日誌備份功能的存取。您不需要針對資料庫執行個體上的每個個別資料庫執行個體執行此程序。

**重要**  
資料庫使用者必須在每個資料庫上獲授予 SQL Server 內的 `db_owner` 角色，才能設定和使用交易日誌備份功能的存取權。

**Example 使用方式：**  

```
exec msdb.dbo.rds_tlog_copy_setup
@target_s3_arn='arn:aws:s3:::amzn-s3-demo-bucket/myfolder';
```

以下是必要參數：
+ `@target_s3_arn` – 要將交易日誌備份檔案複製到其中之目標 Amazon S3 儲存貯體的 ARN。

**Example 設定 Amazon S3 目標儲存貯體的範例：**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket/mytestdb1';
```

若要驗證組態，請呼叫 `rds_show_configuration` 預存程序。

**Example 驗證組態的範例：**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

若要修改交易日誌備份的存取權，以指向不同的 Amazon S3 儲存貯體，您可以檢視目前的 Amazon S3 儲存貯體值，然後使用 `@target_s3_arn` 的新值重新執行預存程序 `rds_tlog_copy_setup`。

**Example 檢視為了存取交易日誌備份而設定現有 Amazon S3 儲存貯體的範例**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

**Example 更新為新目標 Amazon S3 儲存貯體的範例**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket1/mynewfolder';
```

# 列出可用的交易日誌備份
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Listing"></a>

使用 RDS for SQL Server 時，資料庫若設定為使用完整復原模式，且其資料庫執行個體備份保留設為一或多天，則會自動啟用交易日誌備份。透過啟用對交易日誌備份的存取，最多七天的這些交易日誌備份可供您複製到 Amazon S3 儲存貯體。

在啟用對交易日誌備份的存取之後，您可以開始使用它，來列出和複製可用的交易日誌備份檔案。

**列出交易日誌備份**

若要列出個別資料庫可用的所有交易日誌備份，請呼叫 `rds_fn_list_tlog_backup_metadata` 函數。您可以在呼叫函數時使用 `ORDER BY` 或 `WHERE` 子句。

**Example 列出並篩選可用交易日誌備份檔案的範例**  

```
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename');
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE rds_backup_seq_id = 3507;
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE backup_file_time_utc > '2022-09-15 20:44:01' ORDER BY backup_file_time_utc DESC;
```

![\[來自 rds_fn_list_tlog_backup_metadata 的輸出\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_func.png)


`rds_fn_list_tlog_backup_metadata` 函數會傳回下列輸出：


****  

| 欄名稱 | 資料類型 | Description | 
| --- | --- | --- | 
| `db_name` | sysname | 提供用來列出其交易日誌備份的資料庫名稱。 | 
| `db_id` | int | 輸入參數 `db_name` 的內部資料庫識別符。 | 
| `family_guid` | uniqueidentifier | 建立時原始資料庫的唯一 ID。此值會在資料庫還原時會保持相同，即使是不同的資料庫名稱也是如此。 | 
| `rds_backup_seq_id` | int | RDS 在內部用來維護每個交易日誌備份檔案之序號的 ID。 | 
| `backup_file_epoch` | bigint | 產生交易備份檔案的 epoch 時間。 | 
| `backup_file_time_utc` | datetime | `backup_file_epoch` 值的 UTC 時間轉換值。 | 
| `starting_lsn` | numeric(250) | 交易日誌備份檔案之第一個或最舊日誌記錄的日誌序號。 | 
| `ending_lsn` | numeric(250) | 交易日誌備份檔案之最後一個或下一個日誌記錄的日誌序號。 | 
| `is_log_chain_broken` | bit | 布林值，指出目前交易日誌備份檔案與上一個交易日誌備份檔案之間的日誌鏈是否中斷。 | 
| `file_size_bytes` | bigint | 交易備份集的大小 (以位元組為單位)。 | 
| `Error` | varchar(4000) | 錯誤訊息，如果 `rds_fn_list_tlog_backup_metadata` 函數擲出例外狀況的話。NULL，如果沒有例外狀況的話。 | 

# 複製交易日誌備份
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying"></a>

若要將個別資料庫的一組可用交易日誌備份複製到 Amazon S3 儲存貯體，請呼叫 `rds_tlog_backup_copy_to_S3` 預存程序。`rds_tlog_backup_copy_to_S3` 預存程序將起始新任務以複製交易日誌備份。

**注意**  
`rds_tlog_backup_copy_to_S3` 預存程序將複製交易日誌備份，而不會根據 `is_log_chain_broken` 屬性進行驗證。因此，您應該在執行 `rds_tlog_backup_copy_to_S3` 預存程序之前，手動確認未中斷的日誌鏈。如需進一步說明，請參閱 [驗證交易日誌備份日誌鏈](#USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain)。

**Example `rds_tlog_backup_copy_to_S3` 預存程序的使用方式**  

```
exec msdb.dbo.rds_tlog_backup_copy_to_S3
	@db_name='mydatabasename',
	[@kms_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@backup_file_start_time='2022-09-01 01:00:15'],
	[@backup_file_end_time='2022-09-01 21:30:45'],
	[@starting_lsn=149000000112100001],
	[@ending_lsn=149000000120400001],
	[@rds_backup_starting_seq_id=5],
	[@rds_backup_ending_seq_id=10];
```

下列是可用的輸入參數：


****  

| 參數 | Description | 
| --- | --- | 
| `@db_name` | 要複製其交易日誌備份的資料庫名稱。 | 
| `@kms_key_arn` |  客戶管理的 KMS 金鑰。如果您使用 AWS 受管 KMS 金鑰加密資料庫執行個體，則必須建立客戶受管金鑰。如果您使用客戶管理的金鑰為資料庫執行個體加密，則可以使用相同的 KMS 金鑰 ARN。 | 
| `@backup_file_start_time` | 從 `rds_fn_list_tlog_backup_metadata` 函數的 `[backup_file_time_utc]` 資料欄提供的 UTC 時間戳記。 | 
| `@backup_file_end_time` | 從 `rds_fn_list_tlog_backup_metadata` 函數的 `[backup_file_time_utc]` 資料欄提供的 UTC 時間戳記。 | 
| `@starting_lsn` | 從 `rds_fn_list_tlog_backup_metadata` 函數的 `[starting_lsn]` 資料欄提供的日誌序號 (LSN) | 
| `@ending_lsn` | 從 `rds_fn_list_tlog_backup_metadata` 函數的 `[ending_lsn]` 資料欄提供的日誌序號 (LSN)。 | 
| `@rds_backup_starting_seq_id` | 從 `rds_fn_list_tlog_backup_metadata` 函數的 `[rds_backup_seq_id]` 資料欄提供的序號。 | 
| `@rds_backup_ending_seq_id` | 從 `rds_fn_list_tlog_backup_metadata` 函數的 `[rds_backup_seq_id]` 資料欄提供的序號。 | 

您可以指定一組時間、LSN 或序列 ID 參數。只需要一組參數。

您也可以在任何集合中只指定單一參數。例如，透過僅針對 `backup_file_end_time` 參數提供一值，七天限制內在該時間之前的所有可用交易日誌備份檔案都會複製到 Amazon S3 儲存貯體。

下列是 `rds_tlog_backup_copy_to_S3` 預存程序的有效輸入參數組合。


****  

| 提供的參數 | 預期的結果 | 
| --- | --- | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3  <br />	@db_name = 'testdb1',<br />            @backup_file_start_time='2022-08-23 00:00:00',<br />            @backup_file_end_time='2022-08-30 00:00:00';</pre>  | 複製過去七天的交易日誌備份，且存在於提供的範圍 `backup_file_start_time` 與 `backup_file_end_time` 之間。在此範例中，預存程序會複製已在 '2022-08-23 00:00:00' 與 '2022-08-30 00:00:00'之間產生的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />           @db_name = 'testdb1',<br />           @backup_file_start_time='2022-08-23 00:00:00';</pre>  | 複製過去七天的交易日誌備份，並從提供的 `backup_file_start_time` 開始。在此範例中，預存程序會複製來自 '2022-08-23 00:00:00' 的交易日誌備份，直到最新的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />          @db_name = 'testdb1',<br />          @backup_file_end_time='2022-08-30 00:00:00';</pre>  | 複製過去七天的交易日誌備份，直到提供的 `backup_file_end_time`。在此範例中，預存程序會複製來自 '2022-08-23 00:00:00' 直到 '2022-08-30 00:00:00' 的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />         @db_name='testdb1',<br />         @starting_lsn =1490000000040007,<br />         @ending_lsn =  1490000000050009;</pre>  | 複製過去七天可用且在所提供範圍 `starting_lsn` 與 `ending_lsn` 之間的交易日誌備份。在此範例中，預存程序會複製過去七天，LSN 範圍介於 1490000000040007 和 1490000000050009 之間的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @starting_lsn =1490000000040007;</pre>  |  複製過去七天可用的交易日誌備份，從提供的 `starting_lsn` 開始。在此範例中，預存程序會複製來自 LSN 1490000000040007 的交易日誌備份，直到最新的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @ending_lsn  =1490000000050009;</pre>  |  複製過去七天可用的交易日誌備份，直到提供的 `ending_lsn`。在此範例中，預存程序會複製從過去七天開始直到 lsn 1490000000050009 的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000,<br />       @rds_backup_ending_seq_id= 5000;</pre>  |  複製過去七天可用且存在於所提供範圍 `rds_backup_starting_seq_id` 與 `rds_backup_ending_seq_id` 之間的交易日誌備份。在此範例中，預存程序會複製從過去七天開始，並在所提供 rds 備份序列 ID 範圍內的交易日誌備份，從 seq\$1id 2000 開始，直到 to seq\$1id 5000。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000;</pre>  |  複製過去七天可用的交易日誌備份，從提供的 `rds_backup_starting_seq_id` 開始。在此範例中，預存程序會複製從 seq\$1id 2000 開始的交易日誌備份，直到最新的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_ending_seq_id= 5000;</pre>  |  複製過去七天可用的交易日誌備份，直到提供的 `rds_backup_ending_seq_id`。在此範例中，預存程序會複製從過去七天開始，直到 seq\$1id 5000 的交易日誌備份。  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_starting_seq_id= 2000;<br />      @rds_backup_ending_seq_id= 2000;</pre>  |  複製具有所提供 `rds_backup_starting_seq_id` 的單一交易日誌備份，如果是在過去七天內提供的話。在此範例中，預存程序會複製 seq\$1id 為 2000 的單一交易日誌備份 (如果它存在於過去七天內)。  | 

## 驗證交易日誌備份日誌鏈
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain"></a>

 設定用於存取交易日誌備份的資料庫必須已啟用自動備份保留。自動備份保留會將資料庫執行個體上的資料庫設為 `FULL` 復原模式。若要支援資料庫的時間點還原，請避免變更資料庫復原模式，這可能會導致日誌鏈中斷。建議您繼續將資料庫設為 `FULL` 復原模式。

若要在複製交易日誌備份之前手動驗證日誌鏈，請呼叫 `rds_fn_list_tlog_backup_metadata` 函數並檢閱 `is_log_chain_broken` 資料欄中的值。值「1」表示目前日誌備份與上一個日誌備份之間的日誌鏈已中斷。

下列範例會在 `rds_fn_list_tlog_backup_metadata` 預存程序的輸出中顯示中斷的日誌鏈。

![\[顯示中斷日誌鏈的 rds_fn_list_tlog_backup_metadata 輸出。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_logchain_error.png)


在一般日誌鏈中，所指定 rds\$1sequence\$1id 之 first\$1lsn 的日誌序號 (LSN) 值應該符合先前 rds\$1sequence\$1id 中 last\$1lsn 的值。在影像中，rds\$1sequence\$1id 45 具有 first\$1lsn 值 90987，其不符合先前 rds\$1sequence\$1id 44 的 last\$1lsn 值 90985。

如需 SQL Server 交易日誌架構和日誌序號的詳細資訊，請參閱 Microsoft SQL Server 文件中的[交易日誌邏輯架構](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15#Logical_Arch)。

# Amazon S3 儲存貯體資料夾和檔案結構
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.S3namingConvention"></a>

交易日誌備份在 Amazon S3 儲存貯體內具有下列標準結構和命名慣例：
+ 系統會在每個資料庫的 `target_s3_arn` 路徑下建立一個新資料夾，其命名結構為 `{db_id}.{family_guid}`。
+ 在資料夾內，交易日誌備份的檔案名稱結構為 `{db_id}.{family_guid}.{rds_backup_seq_id}.{backup_file_epoch}`。
+ 您可以使用 `rds_fn_list_tlog_backup_metadata` 函數檢視 `family_guid,db_id,rds_backup_seq_id and backup_file_epoch` 的詳細資訊。

下列範例顯示 Amazon S3 儲存貯體內一組交易日誌備份的資料夾和檔案結構。

![\[可存取交易日誌的 Amazon S3 儲存貯體結構\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_s3.png)


# 追蹤任務的狀態
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus"></a>

 若要追蹤複製任務的狀態，請呼叫 `rds_task_status` 預存程序。如果您不提供任何參數，預存程序會傳回所有任務的狀態。

**Example 使用方式：**  

```
exec msdb.dbo.rds_task_status
  @db_name='database_name',
  @task_id=ID_number;
```

下列是選用參數：
+ `@db_name`– 要顯示任務狀態之資料庫的名稱。
+ `@task_id`– 要顯示任務狀態之任務的 ID。

**Example 列出特定任務 ID 之狀態的範例：**  

```
exec msdb.dbo.rds_task_status @task_id=5;
```

**Example 列出特定資料庫和任務之狀態的範例：**  

```
exec msdb.dbo.rds_task_status@db_name='my_database',@task_id=5;
```

**Example 列出特定資料庫之所有任務及其狀態的範例：**  

```
exec msdb.dbo.rds_task_status @db_name='my_database';
```

**Example 列出目前執行個體上所有任務及其狀態的範例：**  

```
exec msdb.dbo.rds_task_status;
```

# 取消任務
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.CancelTask"></a>

若要取消執行中任務，請呼叫 `rds_cancel_task` 預存程序。

**Example 使用方式：**  

```
exec msdb.dbo.rds_cancel_task @task_id=ID_number;
```

以下是必要參數：
+ `@task_id`– 要取消之任務的 ID。您可以呼叫 `rds_task_status` 預存程序來檢視任務 ID。

如需檢視和取消執行中任務的詳細資訊，請參閱 [使用原生備份和還原，匯入和匯出 SQL Server 資料庫](SQLServer.Procedural.Importing.md)。

# 針對交易日誌備份的存取進行疑難排解
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Troubleshooting"></a>

下列是您使用預存程序存取交易日誌備份時可能遇到的問題。


****  

| 預存程序 | 錯誤訊息 | 問題 | 故障診斷建議 | 
| --- | --- | --- | --- | 
| rds\$1tlog\$1copy\$1setup | 此資料庫執行個體上停用備份。啟用其保留至少為 "1" 的資料庫執行個體備份，然後再試一次。 | 未針對資料庫執行個體啟用自動備份。 |  必須啟用其保留至少一天的資料庫執行個體備份保留。如需啟用自動備份和設定備份保留的詳細資訊，請參閱 [Backup retention period (備份保留期間)](USER_WorkingWithAutomatedBackups.BackupRetention.md)。 | 
| rds\$1tlog\$1copy\$1setup | 執行 rds\$1tlog\$1copy\$1setup 預存程序時發生錯誤。重新連線至 RDS 端點，然後再試一次。 | 發生內部錯誤。 | 重新連線至 RDS 端點，然後重新執行 `rds_tlog_copy_setup` 預存程序。 | 
| rds\$1tlog\$1copy\$1setup | 不支援在交易內執行 rds\$1tlog\$1backup\$1copy\$1setup 預存程序。驗證工作階段沒有已開啟的交易，然後再試一次。 | 已在交易內使用 `BEGIN` 和 `END` 嘗試預存程序。 | 避免在執行 `rds_tlog_copy_setup` 預存程序時使用 `BEGIN` 和 `END`。 | 
| rds\$1tlog\$1copy\$1setup | 輸入參數 `@target_s3_arn` 的 S3 儲存貯體名稱應該至少包含一個空格以外的字元。 | 提供給輸入參數 `@target_s3_arn` 的值不正確。 | 確定輸入參數 `@target_s3_arn` 指定完整的 Amazon S3 儲存貯體 ARN。 | 
| rds\$1tlog\$1copy\$1setup | `SQLSERVER_BACKUP_RESTORE` 選項未啟用，或正在進行啟用。啟用此選項，或稍後再試一次。 | `SQLSERVER_BACKUP_RESTORE` 選項未在資料庫執行個體上啟用，或者只是啟用並擱置內部啟用。 | 依 Requirements (需求) 區段中所指定，啟用 `SQLSERVER_BACKUP_RESTORE` 選項。稍候幾分鐘，然後重新執行 `rds_tlog_copy_setup` 預存程序。 | 
| rds\$1tlog\$1copy\$1setup | 輸入參數 `@target_s3_arn` 的目標 S3 arn 不能空白或為 null。 | 已提供 `NULL` 值給輸入參數 `@target_s3_arn`，或者未提供值。 | 確定輸入參數 `@target_s3_arn` 指定完整的 Amazon S3 儲存貯體 ARN。 | 
| rds\$1tlog\$1copy\$1setup | 輸入參數 `@target_s3_arn` 的目標 S3 arn 必須以 arn:aws 開頭。 | 已提供前面沒有 `arn:aws` 的輸入參數 `@target_s3_arn`。 | 確定輸入參數 `@target_s3_arn` 指定完整的 Amazon S3 儲存貯體 ARN。 | 
| rds\$1tlog\$1copy\$1setup | 目標 S3 ARN 已設為提供的值。 | 先前已執行 `rds_tlog_copy_setup` 預存程序，並使用了 Amazon S3 儲存貯體 ARN 進行設定。 | 若要修改 Amazon S3 儲存貯體值以存取交易日誌備份，請提供不同的 `target S3 ARN`。 | 
| rds\$1tlog\$1copy\$1setup | 無法產生憑證以啟用對交易日誌備份的存取。確認 `rds_tlog_copy_setup` 隨附 S3 路徑 ARN，稍後再試一次。 | 產生憑證以啟用對交易日誌備份的存取時發生未指定的錯誤。 | 檢閱您的設定組態，然後再試一次。 | 
| rds\$1tlog\$1copy\$1setup | 當有擱置中任務時，您無法執行 rds\$1tlog\$1copy\$1setup 預存程序。等待擱置中任務完成，然後再試一次。 | 隨時只能執行兩項任務。有擱置中任務等待完成。 | 檢視擱置中任務並等待它們完成。如需監控任務狀態的詳細資訊，請參閱 [追蹤任務的狀態](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 已針對資料庫 %s 發出 T-log 備份檔案複製任務，任務識別符為 %d。請稍後再試一次。 | 隨時只能針對指定資料庫執行一個複製任務。有擱置中複製任務等待完成。 | 檢視擱置中任務並等待它們完成。如需監控任務狀態的詳細資訊，請參閱 [追蹤任務的狀態](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 必須至少提供這三個參數集的其中一個。SET-1:(@backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET-2:(@starting\$1lsn, @ending\$1lsn) \$1 SET-3:(@rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id)  | 未提供這三個參數集的任一個，或提供的參數組缺少必要參數。 | 您可以指定時間、lsn 或序列 ID 參數。需要這三組參數中的一組。如需必要參數的詳細資訊，請參閱 [複製交易日誌備份](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 您的執行個體上停用備份。請啟用備份，一段時間後再試一次。 | 未針對資料庫執行個體啟用自動備份。 |  如需啟用自動備份和設定備份保留的詳細資訊，請參閱 [Backup retention period (備份保留期間)](USER_WorkingWithAutomatedBackups.BackupRetention.md)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 找不到指定的資料庫 %s。 | 提供給輸入參數 `@db_name` 的值與資料庫執行個體上的資料庫名稱不符。 | 使用正確的資料庫名稱。若要依名稱列出所有資料庫，請執行 `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 無法針對 SQL Server 系統資料庫或 rdsadmin 資料庫執行 rds\$1tlog\$1backup\$1copy\$1to\$1S3 預存程序。 | 提供給輸入參數 `@db_name` 的值與 SQL Server 系統資料庫名稱或 RDSAdmin 資料庫相符。 | 存取交易日誌備份時，不允許使用下列資料庫：`master, model, msdb, tempdb, RDSAdmin.` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 輸入參數 @db\$1name 的資料庫名稱不能空白或為 null。 | 提供給輸入參數 `@db_name` 的值空白或為 `NULL`。 | 使用正確的資料庫名稱。若要依名稱列出所有資料庫，請執行 `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 資料庫執行個體備份保留期間必須至少設為 1，才能執行 rds\$1tlog\$1backup\$1copy\$1setup 預存程序。 | 未針對資料庫執行個體啟用自動備份。 | 如需啟用自動備份和設定備份保留的詳細資訊，請參閱 [Backup retention period (備份保留期間)](USER_WorkingWithAutomatedBackups.BackupRetention.md)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 執行預存程序 rds\$1tlog\$1backup\$1copy\$1to\$1S3 時發生錯誤。重新連線至 RDS 端點，然後再試一次。 | 發生內部錯誤。 | 重新連線至 RDS 端點，然後重新執行 `rds_tlog_backup_copy_to_S3` 預存程序。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 只能提供這三個參數集的其中一個。SET-1:(@backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET-2:(@starting\$1lsn, @ending\$1lsn) \$1 SET-3:(@rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id)  | 提供了多個參數集。 | 您可以指定時間、lsn 或序列 ID 參數。需要這三組參數中的一組。如需必要參數的詳細資訊，請參閱 [複製交易日誌備份](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 不支援在交易內執行 rds\$1tlog\$1backup\$1copy\$1to\$1S3 預存程序。驗證工作階段沒有已開啟的交易，然後再試一次。 | 已在交易內使用 `BEGIN` 和 `END` 嘗試預存程序。 | 避免在執行 `rds_tlog_backup_copy_to_S3` 預存程序時使用 `BEGIN` 和 `END`。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 提供的參數落在交易日誌記錄保留期間之外。若要列出可用的交易日誌備份檔案，請執行 rds\$1fn\$1list\$1tlog\$1backup\$1metadata 函數。  | 對於適合複本保留時段的所提供輸入參數，沒有可用的交易日誌備份。 | 使用有效的一組參數再試一次。如需必要參數的詳細資訊，請參閱 [複製交易日誌備份](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 處理請求時發生許可錯誤。確保儲存貯體與資料庫執行個體位於相同的帳戶和區域中，並確認公開文件中針對範本的 S3 儲存貯體政策許可。  | 偵測到提供的 S3 儲存貯體或其政策許可發生問題。 | 確認您針對存取交易日誌備份進行的設定是正確的。如需 S3 儲存貯體設定需求的詳細資訊，請參閱 [要求](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements)。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 不允許在 RDS 僅供讀取複本執行個體上執行 `rds_tlog_backup_copy_to_S3` 預存程序。 | 已在 RDS 僅供讀取複本執行個體上嘗試預存程序。 | 更正至 RDS 主要資料庫執行個體以執行 `rds_tlog_backup_copy_to_S3` 預存程序。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 輸入參數 `@starting_lsn` 的 LSN 必須小於 `@ending_lsn`。 | 提供給輸入參數 `@starting_lsn` 的值大於提供給輸入參數 `@ending_lsn` 的值。 | 確定提供給輸入參數 `@starting_lsn` 的值小於提供給輸入參數 `@ending_lsn` 的值。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | `rds_tlog_backup_copy_to_S3` 預存程序只能由來源資料庫中的 `db_owner` 角色成員執行。 | 對於嘗試在提供的 `db_name` 上執行 `rds_tlog_backup_copy_to_S3` 預存程序的帳戶，尚未授予 `db_owner` 角色。 | 確定執行預存程序的帳戶是透過所提供 `db_name` 的 `db_owner` 角色獲得許可。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 輸入參數的序列 ID `@rds_backup_starting_seq_id` 必須小於或等於或等於`@rds_backup_ending_seq_id`。 | 提供給輸入參數 `@rds_backup_starting_seq_id` 的值大於提供給輸入參數 `@rds_backup_ending_seq_id` 的值。 | 確定提供給輸入參數 `@rds_backup_starting_seq_id` 的值小於提供給輸入參數 `@rds_backup_ending_seq_id` 的值。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | SQLSERVER\$1BACKUP\$1RESTORE 選項未啟用，或正在進行啟用。啟用此選項，或稍後再試一次。 | `SQLSERVER_BACKUP_RESTORE` 選項未在資料庫執行個體上啟用，或者只是啟用並擱置內部啟用。 | 依 Requirements (需求) 區段中所指定，啟用 `SQLSERVER_BACKUP_RESTORE` 選項。稍候幾分鐘，然後重新執行 `rds_tlog_backup_copy_to_S3` 預存程序。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 輸入參數 `@backup_file_start_time` 的開始時間必須小於 `@backup_file_end_time`。 | 提供給輸入參數 `@backup_file_start_time` 的值大於提供給輸入參數 `@backup_file_end_time` 的值。 | 確定提供給輸入參數 `@backup_file_start_time` 的值小於提供給輸入參數 `@backup_file_end_time` 的值。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 由於缺少存取權，我們無法處理請求。請檢查功能的設定和許可。 | Amazon S3 儲存貯體許可可能有問題，或提供的 Amazon S3 儲存貯體位於另一個帳戶或區域中。 | 確保授權 Amazon S3 儲存貯體政策獲得允許 RDS 存取的許可。確保 Amazon S3 儲存貯體與資料庫執行個體位於相同的帳戶和區域中。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 對於未經儲存體加密的執行個體，您無法提供 KMS 金鑰 ARN，作為預存程序的輸入參數。 | 未在資料庫執行個體上啟用儲存體加密時，不應提供輸入參數 `@kms_key_arn`。 | 請不要提供輸入參數給 `@kms_key_arn`。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 對於儲存體加密的執行個體，您必須提供 KMS 金鑰 ARN，作為預存程序的輸入參數。 | 在資料庫執行個體上啟用儲存體加密時，必須提供輸入參數 `@kms_key_arn`。 | 提供輸入參數給 `@kms_key_arn`，其中有一值符合用於交易日誌備份之 Amazon S3 儲存貯體的 ARN。 | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | 在執行 `rds_tlog_backup_copy_to_S3` 預存程序之前，您必須先執行 `rds_tlog_copy_setup` 預存程序並設定 `@target_s3_arn`。 | 在嘗試執行 `rds_tlog_backup_copy_to_S3` 預存程序之前，尚未完成對交易日誌備份設定程序的存取。 | 執行 `rds_tlog_copy_setup` 預存程序，然後再執行 `rds_tlog_backup_copy_to_S3` 預存程序。如需執行設定程序以存取交易日誌備份的詳細資訊，請參閱 [設定交易日誌備份的存取權](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md)。 | 