

# ネイティブバックアップおよび復元の使用
<a name="SQLServer.Procedural.Importing.Native.Using"></a>

ネイティブバックアップおよび復元を有効に設定した後、使用を開始できます。最初に、Microsoft SQL Server データベースに接続し、Amazon RDS ストアドプロシージャを呼び出して作業を行います。データベースに接続する手順については、「[SQL Server DB インスタンスへの接続](USER_ConnectToMicrosoftSQLServerInstance.md)」を参照してください。

ストアドプロシージャによっては、Amazon リソースネーム (ARN) を Amazon S3 バケットおよびファイルに指定する必要があります。ARN の形式は `arn:aws:s3:::bucket_name/file_name.extension` です。Amazon S3 には、ARN のアカウント番号または AWS リージョンは不要です。

オプションの KMS キーも指定する場合、キーの ARN の形式は `arn:aws:kms:region:account-id:key/key-id` となります。詳細については、「[Amazon リソースネーム (ARN) と AWS のサービスの名前空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください。バックアップを暗号化するには、対称暗号化 KMS キーを使用する必要があります。Amazon RDS は非対称 KMS キーをサポートしていません。詳細については、*AWS Key Management Service デベロッパーガイド*の「[非対称 KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」を参照してください。

**注記**  
KMS キーを使用するかどうかにかかわらず、ネイティブバックアップおよび復元タスクでは、S3 にアップロードされたファイルに対して、SSE-S3 を介した Advanced Encryption Standard (AES) 256 ビット暗号化がデフォルトで有効になります。バックアップストアドプロシージャに `@enable_bucket_default_encryption=1` を渡すと、S3 バケットで設定されたデフォルトの暗号化キーが使用されます。

各ストアドプロシージャを呼び出す方法については、以下のトピックを参照してください。
+ [データベースのバックアップ](#SQLServer.Procedural.Importing.Native.Using.Backup)
+ [データベースの復元](#SQLServer.Procedural.Importing.Native.Using.Restore)
+ [ログの復元](#SQLServer.Procedural.Importing.Native.Restore.Log)
+ [データベースの復元を終了する](#SQLServer.Procedural.Importing.Native.Finish.Restore)
+ [部分的に復元したデータベースの使用](#SQLServer.Procedural.Importing.Native.Partially.Restored)
+ [タスクのキャンセル](#SQLServer.Procedural.Importing.Native.Using.Cancel)
+ [タスクのステータスの追跡](#SQLServer.Procedural.Importing.Native.Tracking)

## データベースのバックアップ
<a name="SQLServer.Procedural.Importing.Native.Using.Backup"></a>

データベースをバックアップするには、`rds_backup_database` ストアドプロシージャを呼び出します。

**注記**  
メンテナンスウィンドウが開いている間または Amazon RDS がスナップショットを作成している間は、データベースをバックアップできません。

### Usage
<a name="SQLServer.Procedural.Importing.Native.Backup.Syntax"></a>

```
exec msdb.dbo.rds_backup_database
	@source_db_name='database_name',
	@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name.extension',
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@overwrite_s3_backup_file=0|1],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'],
	[@number_of_files=n],
	[@enable_bucket_default_encryption=0|1];
```

以下のパラメータは必須です。
+ `@source_db_name` – バックアップするデータベースの名前。
+ `@s3_arn_to_backup_to` - バックアップに使用する Amazon S3 バケット、アクセスポイント、ディレクトリバケット、またはディレクトリバケットのアクセスポイントとバックアップファイル名を表示する ARN。

  ファイルは任意の拡張子を持つことができますが、通常は `.bak` が使用されます。アクセスポイント ARN は `arn:aws:s3:us-east-1:111122223333:access-point-name/object/key` の形式である必要があります。

以下のパラメータはオプションです。
+ `@kms_master_key_arn` - 項目の暗号化に使用する対称暗号化 KMS キーの ARN。
  + デフォルトの暗号化キーは使用できません。デフォルトキーを使用すると、データベースはバックアップされません。
  +  KMS キー識別子を指定しない場合、バックアップファイルは暗号化されません。詳細については、「[Amazon RDS リソースの暗号化](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html)」を参照してください。
  + KMS キーを指定すると、クライアント側の暗号化が使用されます。
  + Amazon RDS は非対称 KMS キーをサポートしていません。詳細については、*AWS Key Management Service デベロッパーガイド*の「[非対称 KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」を参照してください。
+ `@overwrite_s3_backup_file` – 既存のバックアップファイルを上書きするかどうかを表す値。
  + `0` – 既存のファイルを上書きしません。この値はデフォルト値です。

    設定 `@overwrite_s3_backup_file` を 0 にすると、ファイルが既に存在している場合はエラーが返されます。
  + `1` – バックアップファイルではない場合でも、指定された名前を持つ既存のファイルを上書きします。
+ `@type` – バックアップのタイプ。
  + `DIFFERENTIAL` – 差分バックアップを取ります。
  + `FULL` – 完全バックアップを取ります。この値はデフォルト値です。

  差分バックアップは、最後の完全バックアップに基づいています。差分バックアップを機能させるには、最後の完全バックアップと差分バックアップの間でスナップショットを作成することはできません。差分バックアップを取りたいがスナップショットが存在する場合、差分バックアップを続行する前に別の完全バックアップを作成してください。

  最後のフルバックアップまたはスナップショットは、以下の SQL クエリの例を使用して検索できます。

  ```
  select top 1
  database_name
  , 	backup_start_date
  , 	backup_finish_date
  from    msdb.dbo.backupset
  where   database_name='mydatabase'
  and     type = 'D'
  order by backup_start_date desc;
  ```
+ `@number_of_files` – バックアップが分割される (チャンク) ファイルの数。最大数は 10 です。
  + マルチファイルバックアップは、完全バックアップと差分バックアップの両方でサポートされています。
  + 値 1 を入力するか、パラメータを省略すると、1 つのバックアップファイルが作成されます。

  ファイルに共通のプレフィックスを付けてから、そのプレフィックスにアスタリスクを付けます (`*`)。アスタリスクは、S3 ARN の *file\$1name* 部分のどこにでも使用できます。生成されたファイルのアスタリスクは、`1-of-number_of_files` で始まる一連の英数字文字列に置き換えられます。

  例えば、S3 ARN のファイル名が `backup*.bak` で `@number_of_files=4` を設定した場合、生成されるバックアップファイルは `backup1-of-4.bak`、`backup2-of-4.bak`、`backup3-of-4.bak`、`backup4-of-4.bak` です。
  + いずれかのファイル名が既に存在し、`@overwrite_s3_backup_file` が 0 の場合は、エラーが返されます。
  + マルチファイルバックアップでは、S3 ARN の *file\$1name* 部分にアスタリスクを 1 つだけ含めることができます。
  + シングルファイルバックアップでは、S3 ARN の *file\$1name* 部分にアスタリスクをいくつでも含めることができます。アスタリスクは、生成されたファイル名から削除されません。
+ `@block_size` – バックアップ処理の物理ブロックサイズをバイト単位で指定します。有効な値は 512、1024、2048、4096、8192、16384、32768、および 65536 です
+ `@max_transfer_size` – バックアッププロセス中、I/O オペレーションごとに転送されるデータボリュームの上限 (バイト単位) を示す最大転送サイズ。有効な値は、65536 バイト (64 KB) から 4194304 バイト (4 MB) までの倍数です。
+ `@buffer_count` – バックアッププロセスに使用する I/O バッファの合計数。
+ `@enable_bucket_default_encryption` - S3 のサーバー側の暗号化に S3 バケットのデフォルトの暗号化設定を使用するかどうかを示す値。ディレクトリバケットは、この設定に関係なく、常にバケットのデフォルトの暗号化設定を使用します。
  + `0` – のサーバー側の暗号化では、SSE-S3 を介した Advanced Encryption Standard (AES) 256 ビット暗号化が使用されます。
  + `1` – サーバー側の暗号化は、S3 バケットで設定された[デフォルトの暗号化](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-encryption.html)を使用します。

### 例
<a name="SQLServer.Procedural.Importing.Native.Backup.Examples"></a>

**Example 差分バックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak',
@overwrite_s3_backup_file=1,
@type='DIFFERENTIAL';
```

**Example クライアント側の暗号化による完全バックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE',
@overwrite_s3_backup_file=1,
@type='FULL';
```

**Example マルチファイルバックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=4;
```

**Example マルチファイル差分バックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@type='DIFFERENTIAL',
@number_of_files=4;
```

**Example 暗号化によるマルチファイルバックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE',
@number_of_files=4;
```

**Example S3 の上書きによるマルチファイルバックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@overwrite_s3_backup_file=1,
@number_of_files=4;
```

**Example ブロックサイズによるバックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@block_size=512;
```

**Example `@max_transfer_size` と `@buffer_count` によるマルチファイルバックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=4,
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example @number\$1of\$1files パラメータを使用したシングルファイルバックアップ**  
この例では、`backup*.bak` という名前のバックアップファイルを生成します。  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=1;
```

**Example サーバー側の暗号化による完全バックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@overwrite_s3_backup_file=1,
@type='FULL',
@enable_bucket_default_encryption=1;
```

**Example アクセスポイントを使用した完全バックアップ**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

**Example ディレクトリバケットのアクセスポイントを使用したフルバックアップの**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3express:us-east-1:123456789012:accesspoint/my-access-point--use1-az6--xa-s3/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

## データベースの復元
<a name="SQLServer.Procedural.Importing.Native.Using.Restore"></a>

データベースを復元するには、`rds_restore_database` ストアドプロシージャを呼び出します。復元タスクが完了しデータベースが開くと、Amazon RDSによりデータベースの最初のスナップショットが作成されます。

### Usage
<a name="SQLServer.Procedural.Importing.Native.Restore.Syntax"></a>

```
exec msdb.dbo.rds_restore_database
	@restore_db_name='database_name',
	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name.extension',
	@with_norecovery=0|1,
	[@keep_cdc=0|1],
	[@data_file_volume='D:|H:|I:|J:'],
	[@log_file_volume='D:|H:|I:|J:'],
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
        [@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'];
```

以下のパラメータは必須です。
+ `@restore_db_name` – 復元するデータベースの名前。データベース名は一意です。既存のデータベースと同じ名前のデータベースを復元することはできません。
+ `@s3_arn_to_restore_from` – Amazon S3 プレフィックスと、データベースの復元に使用するバックアップファイルの名前を示す ARN。
  + 単一ファイルのバックアップの場合は、ファイル名全体を入力します。
  + マルチファイルのバックアップの場合は、ファイルに共通のプレフィックスを付けてから、そのプレフィックスにアスタリスクを付けます (`*`)。
    + ディレクトリバケットを使用する場合、[ディレクトリバケットの違い](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html)により、ARN は `/*` で終わる必要があります。
  + `@s3_arn_to_restore_from` が空の場合は、次のエラーメッセージが返ります: S3 ARN prefix cannot be empty。

以下のパラメータは、差分復元には必須ですが、完全復元ではオプションです。
+ `@with_norecovery` – 復元操作に使用する復元句。
  + `0` に設定して、RECOVERY で復元します。この場合、復元後にデータベースがオンラインになります。
  + `1` に設定して、NORECOVERY で復元します。この場合、復元タスクの完了後もデータベースが RESTORING 状態を保持します。このアプローチで、後から差分復元も実行することができます。
  + DIFFERENTIAL 復元は、`0` または `1` を指定してください。
  + `FULL` 復元の場合、この値はデフォルトで `0` です。

以下のパラメータはオプションです。
+ `@keep_cdc` – 復元されたデータベースに変更データキャプチャ (CDC) 設定を保持するかどうかを示します。KEEP\$1CDC を有効にするには `1` に、無効にするには `0` に設定します。デフォルト値は `0` です。
+ `@data_file_volume` – データベースデータファイルのドライブ文字を指定します。デフォルト値は `D:` です。
+ `@log_file_volume` – データベースログファイルのドライブ文字を指定します。デフォルト値は `D:` です。
+ `@kms_master_key_arn` - バックアップファイルを暗号化した場合の、ファイルの復号に使用する KMS キー。

  KMS キーを指定すると、クライアント側の暗号化が使用されます。
+ `@type` – 復元のタイプ。有効なタイプは、`DIFFERENTIAL`と`FULL` です。デフォルト値は `FULL` です。
+ `@block_size` – バックアップ処理の物理ブロックサイズをバイト単位で指定します。有効な値は 512、1024、2048、4096、8192、16384、32768、および 65536 です
+ `@max_transfer_size` – バックアッププロセス中、I/O オペレーションごとに転送されるデータボリュームの上限 (バイト単位) を示す最大転送サイズ。有効な値は、65536 バイト (64 KB) から 4194304 バイト (4 MB) までの倍数です。
+ `@buffer_count` – バックアッププロセスに使用する I/O バッファの合計数。

**注記**  
差分復元は、データベースが RESTORING 状態にあるか、NORECOVERY で復元するタスクが既に存在している必要があります。  
データベースがオンラインの場合、後から差分バックアップを復元することはできません。  
データベースに、RECOVERY を使用した復元中のタスクがある場合、復元タスクを提出することはできません。  
NORECOVERY と KEEP\$1CDC の両方を使用した完全な復元はサポートされていません。  
クロスリージョンリードレプリカを持つインスタンスでは、いずれのネイティブ復元もサポートされていません。  
サポートされている設定の場合、リードレプリカを持つマルチ AZ インスタンスでのデータベースの復元は、マルチ AZ インスタンスでのデータベースの復元に似ています。レプリカ上のデータベースを復元するために、追加のアクションを実行する必要はありません。

### 例
<a name="SQLServer.Procedural.Importing.Native.Restore.Examples"></a>

**Example 単一ファイルの復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
```

**Example マルチファイルの復元**  
複数ファイル復元中のエラーを回避するために、すべてのバックアップファイルに同じプレフィックスがあり、他のファイルでそのプレフィックスが使用されていないことを確認します。  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*';
```

**Example RECOVERY を使用したデータベースの復元**  
以下の 3 つの例は、RECOVERY を使用した完全復元という同じタスクを実行します。  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
```

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
[@type='DIFFERENTIAL|FULL'];
```

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='FULL',
@with_norecovery=0;
```

**Example 暗号化を使用したデータベースの完全復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

**Example ブロックサイズによる復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@block_size=512;
```

**Example @max\$1transfer\$1size と @buffer\$1count によるマルチファイル復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*',
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example NORECOVERY を使用したデータベースの完全復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='FULL',
@with_norecovery=1;
```

**Example NORECOVERY を使用した差分復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='DIFFERENTIAL',
@with_norecovery=1;
```

**Example RECOVERY を使用した差分復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='DIFFERENTIAL',
@with_norecovery=0;
```

**Example アクセスポイントを使用した RECOVERY によるデータベース全体の復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@with_norecovery=0;
```

**Example KEEP\$1CDC を使用したデータベースの復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## ログの復元
<a name="SQLServer.Procedural.Importing.Native.Restore.Log"></a>

ログを復元するには、`rds_restore_log` ストアドプロシージャを呼び出します。

### Usage
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Syntax"></a>

```
exec msdb.dbo.rds_restore_log 
	@restore_db_name='database_name',
	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/log_file_name.extension',
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
	[@with_norecovery=0|1],
	[@keep_cdc=0|1],
	[@stopat='datetime'],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n];
```

以下のパラメータは必須です。
+ `@restore_db_name` – 復元するログのデータベース名。
+ `@s3_arn_to_restore_from` – ARN が、Amazon S3プレフィックスと、ログを復元する際に使用するログファイル名を表示します。ファイルは任意の拡張子を持つことができますが、通常は `.trn` が使用されます。

  `@s3_arn_to_restore_from` が空の場合は、次のエラーメッセージが返ります: S3 ARN prefix cannot be empty。

以下のパラメータはオプションです。
+ `@keep_cdc` – 復元されたデータベースに変更データキャプチャ (CDC) 設定を保持するかどうかを示します。KEEP\$1CDC を有効にするには 1 に、無効にするには 0 に設定します。デフォルト値は 0 です。
+ `@kms_master_key_arn` - ログを暗号化した場合の、ログの復号に使用する KMS キー。
+ `@with_norecovery` – 復元操作に使用する復元句。この値のデフォルト値は`1`です。
  + `0` に設定して、RECOVERY で復元します。この場合、復元後にデータベースがオンラインになります。データベースがオンラインの場合、さらにログバックアップを復元することはできません。
  + `1` に設定して、NORECOVERY で復元します。この場合、復元タスクの完了後もデータベースが RESTORING 状態を保持します。このアプローチで、後からログ復元も実行することができます。
+ `@stopat` – データべ－スが、指定の日付と時間の状態に復元されたこと（日付時間形式）を指定するための値。指定の日時以前に書き込まれた取引きログ記録のみが、データベースに適用されます。

  このパラメータを指定していない場合 (NULL)、完全なログが復元されます。
+ `@block_size` – バックアップ処理の物理ブロックサイズをバイト単位で指定します。有効な値は 512、1024、2048、4096、8192、16384、32768、および 65536 です
+ `@max_transfer_size` – バックアッププロセス中、I/O オペレーションごとに転送されるデータボリュームの上限 (バイト単位) を示す最大転送サイズ。有効な値は、65536 バイト (64 KB) から 4194304 バイト (4 MB) までの倍数です。
+ `@buffer_count` – バックアッププロセスに使用する I/O バッファの合計数。

**注記**  
ログ復元は、データベースが復元状態にあるか、NORECOVERY で復元するタスクが既に存在している必要があります。  
データベースがオンラインの場合、ログバックアップを復元することはできません。  
データベースに、RECOVERY を使用した復元中のタスクがある場合、ログ復元タスクを提出することはできません。

### 例
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Examples"></a>

**Example ログの復元**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
```

**Example 暗号化を使用したログの復元**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

**Example NORECOVERY を使用したログの復元**  
以下の 2 つの例は、NORECOVERY を使用したログ復元という同じタスクを実行します。  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=1;
```

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
```

**Example ブロックサイズによる復元**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@block_size=512;
```

**Example RECOVERY を使用したログの復元**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=0;
```

**Example STOPAT 句を使用したログの復元**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=0,
@stopat='2019-12-01 03:57:09';
```

**Example KEEP\$1CDC を使用したログの復元**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## データベースの復元を終了する
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore"></a>

データベースの最後の復元タスクを `@with_norecovery=1` を使用して実行した場合、データベースが RESTORING 状態になります。`rds_finish_restore`ストアドプロシージャを使用して、このデータベースを通常操作用に開きます。

### Usage
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore.Syntax"></a>

```
exec msdb.dbo.rds_finish_restore @db_name='database_name';
```

**注記**  
このアプローチを使用するには、実行中の復元タスクのない状態で、データベースが RESTORING 状態である必要があります。  
データベースの復元が終了したら、マスターログインを使用してください。または、NORECOVERY を使用して直近にデータベースを復元したユーザーログインを使用またはログします。

## 部分的に復元したデータベースの使用
<a name="SQLServer.Procedural.Importing.Native.Partially.Restored"></a>

### 部分的に復元したデータベースの削除
<a name="SQLServer.Procedural.Importing.Native.Drop.Partially.Restored"></a>

部分的に復元したデータベースを削除するには（RESTORING状態のまま）、`rds_drop_database` ストアドプロシージャを使用してください。

```
exec msdb.dbo.rds_drop_database @db_name='database_name';
```

**注記**  
復元の中断中または復元タスクが完了したデータベースに対し、DROP データベースリクエストを送信することはできません。  
データベースを削除するには、マスターログインを使用します。または、NORECOVERY を使用して直近にデータベースを復元したユーザーログインを使用またはログします。

### 部分的に復元したデータベースのスナップショット復元とポイントインタイム復元の動作
<a name="SQLServer.Procedural.Importing.Native.Snapshot.Restore"></a>

ソースインスタンス内の部分的に復元されたデータベース（RESTORING状態のまま）は、スナップショットの復元またはポイントインタイム復元中に対象のインスタンスから削除されます。

## タスクのキャンセル
<a name="SQLServer.Procedural.Importing.Native.Using.Cancel"></a>

バックアップまたは復元タスクをキャンセルするには、`rds_cancel_task` ストアドプロシージャを呼び出します。

**注記**  
FINISH\$1RESTORE タスクはキャンセルできません。

### Usage
<a name="SQLServer.Procedural.Importing.Native.Cancel.Syntax"></a>

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

以下のパラメータは必須です。
+ `@task_id` – キャンセルするタスクの ID。`rds_task_status` を呼び出すことにより、タスク ID を取得できます。

## タスクのステータスの追跡
<a name="SQLServer.Procedural.Importing.Native.Tracking"></a>

バックアップおよび復元タスクのステータスを追跡するには、`rds_task_status` ストアドプロシージャを呼び出します。パラメータを何も指定しない場合、ストアドプロシージャによりすべてのタスクのステータスが返されます。タスクのステータスは、約 2 分ごとに更新されます。タスクの履歴は 36 日間保持されます。

### Usage
<a name="SQLServer.Procedural.Importing.Native.Tracking.Syntax"></a>

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

以下のパラメータはオプションです。
+ `@db_name` – タスクのステータスを表示するデータベースの名前。
+ `@task_id` – タスクのステータスを表示するタスクの ID。

### 例
<a name="SQLServer.Procedural.Importing.Native.Tracking.Examples"></a>

**Example 特定タスクのステータスのリスト化**  

```
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="SQLServer.Procedural.Importing.Native.Tracking.Response"></a>

`rds_task_status` ストアドプロシージャは、次の列を返します。


****  

| 列 | 説明 | 
| --- | --- | 
| `task_id` |  タスクの ID。  | 
| `task_type` |  入力パラメータによるタスクタイプは以下の通りです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html) 以下の復元タスクが完了してデータベースが開くと、Amazon RDSが初期のスナップショットを作成します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `database_name` |  タスクが関連付けられているデータベースの名前。  | 
| `% complete` |  タスクの進行状況の割合値。  | 
| `duration (mins)` |  タスクにかかった時間 (分単位)。  | 
| `lifecycle` |  タスクのステータス。有効な状態には、以下が含まれます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `task_info` |  タスクに関する追加情報。 データベースのバックアップまたは復元中にエラーが発生した場合は、この列にエラーに関する情報が表示されます。発生する可能性があるエラーのリストと軽減戦略については、「[トラブルシューティング](SQLServer.Procedural.Importing.Native.Troubleshooting.md)」を参照してください。  | 
| `last_updated` |  タスクのステータスが最後に更新された日時。5% 進行するたびに、ステータスが更新されます。  | 
| `created_at` | タスクが作成された日時。 | 
| S3\$1object\$1arn | Amazon S3プレフィックスを表す ARN とバックアップまたは復元したファイルの名前。 | 
| `overwrite_s3_backup_file` |  バックアップタスクを呼び出すときに指定される `@overwrite_s3_backup_file` パラメータの値。詳細については、「[データベースのバックアップ](#SQLServer.Procedural.Importing.Native.Using.Backup)」を参照してください。  | 
| KMS\$1master\$1key\$1arn | (バックアップ時の) 暗号化および (復元時の) 復号に使用する KMS キーの ARN。 | 
| filepath | ネイティブバックアップおよびタスクの復元には適用されません。 | 
| overwrite\$1file | ネイティブバックアップおよびタスクの復元には適用されません。 | 