ネイティブバックアップおよび復元を有効に設定した後、使用を開始できます。最初に、Microsoft SQL Server データベースに接続し、Amazon RDS ストアドプロシージャを呼び出して作業を行います。データベースに接続する手順については、「SQL Server DB インスタンスへの接続」を参照してください。
ストアドプロシージャによっては、Amazon リソースネーム (ARN) を Amazon S3 バケットおよびファイルに指定する必要があります。ARN の形式は arn:aws:s3:::
です。Amazon S3 には、ARN のアカウント番号または AWS リージョンは不要です。bucket_name
/file_name.extension
オプションの KMS キーも指定する場合、キーの ARN の形式は arn:aws:kms:
となります。詳細については、「Amazon リソースネーム (ARN) と AWS のサービスの名前空間」を参照してください。バックアップを暗号化するには、対称暗号化 KMS キーを使用する必要があります。Amazon RDS は非対称 KMS キーをサポートしていません。詳細については、AWS Key Management Service デベロッパーガイドの「非対称 KMS キーを作成する」を参照してください。region
:account-id
:key/key-id
注記
KMS キーを使用するかどうかにかかわらず、ネイティブバックアップおよび復元タスクでは、S3 にアップロードされたファイルに対して、サーバー側の高度な暗号化標準 (AES) 256 ビット暗号化がデフォルトで有効になります。
各ストアドプロシージャを呼び出す方法については、以下のトピックを参照してください。
データベースのバックアップ
データベースをバックアップするには、rds_backup_database
ストアドプロシージャを呼び出します。
注記
メンテナンスウィンドウが開いている間または Amazon RDS がスナップショットを作成している間は、データベースをバックアップできません。
使用方法
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
];
以下のパラメータは必須です。
-
@source_db_name
– バックアップするデータベースの名前。 -
@s3_arn_to_backup_to
– バックアップに使用する Amazon S3 バケットとバックアップファイル名を表示する ARN。ファイルは任意の拡張子を持つことができますが、通常は
.bak
が使用されます。
以下のパラメータはオプションです。
-
@kms_master_key_arn
- 項目の暗号化に使用する対称暗号化 KMS キーの ARN。-
デフォルトの暗号化キーは使用できません。デフォルトキーを使用すると、データベースはバックアップされません。
-
KMS キー識別子を指定しない場合、バックアップファイルは暗号化されません。詳細については、「Amazon RDS リソースの暗号化」を参照してください。
-
KMS キーを指定すると、クライアント側の暗号化が使用されます。
-
Amazon RDS は非対称 KMS キーをサポートしていません。詳細については、AWS Key Management Service デベロッパーガイドの「非対称 KMS キーを作成する」を参照してください。
-
-
@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_name
部分のどこにでも使用できます。生成されたファイルのアスタリスクは、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_name
部分にアスタリスクを 1 つだけ含めることができます。 -
シングルファイルバックアップでは、S3 ARN の
file_name
部分にアスタリスクをいくつでも含めることができます。アスタリスクは、生成されたファイル名から削除されません。
-
-
@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 バッファの合計数。
例
例 差分バックアップ
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
';
例 暗号化による完全バックアップ
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
';
例 マルチファイルバックアップ
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
;
例 マルチファイル差分バックアップ
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
;
例 暗号化によるマルチファイルバックアップ
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
;
例 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
;
例 ブロックサイズによるバックアップ
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup*.bak
', @block_size=512
;
例 @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
;
例 @number_of_files パラメータを使用したシングルファイルバックアップ
この例では、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;
データベースの復元
データベースを復元するには、rds_restore_database
ストアドプロシージャを呼び出します。復元タスクが完了しデータベースが開くと、Amazon RDSによりデータベースの最初のスナップショットが作成されます。
使用方法
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
, [@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。-
単一ファイルのバックアップの場合は、ファイル名全体を入力します。
-
マルチファイルのバックアップの場合は、ファイルに共通のプレフィックスを付けてから、そのプレフィックスにアスタリスクを付けます (
*
)。 -
@s3_arn_to_restore_from
が空の場合は、次のエラーメッセージが返ります:S3 ARN prefix cannot be empty
。
-
以下のパラメータは、差分復元には必須ですが、完全復元ではオプションです。
-
@with_norecovery
– 復元操作に使用する復元句。-
0
に設定して、RECOVERY で復元します。この場合、復元後にデータベースがオンラインになります。 -
1
に設定して、NORECOVERY で復元します。この場合、復元タスクの完了後もデータベースが RESTORING 状態を保持します。このアプローチで、後から差分復元も実行することができます。 -
DIFFERENTIAL 復元は、
0
または1
を指定してください。 -
FULL
復元の場合、この値はデフォルトで0
です。
-
以下のパラメータはオプションです。
-
@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 を使用した復元中のタスクがある場合、復元タスクを提出することはできません。
マルチ AZ インスタンスでは、NORECOVERY を使用した完全復元および差分復元はサポートされていません。
リードレプリカを持つマルチ AZ インスタンス上のデータベースの復元は、マルチ AZ インスタンス上のデータベースの復元に似ています。レプリカ上のデータベースを復元するために、追加のアクションを実行する必要はありません。
例
例 単一ファイルの復元
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/backup*';
例 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;
例 暗号化を使用したデータベースの完全復元
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';
例 ブロックサイズによる復元
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@block_size=512;
例 @max_transfer_size と @buffer_count によるマルチファイル復元
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;
例 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;
例 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;
例 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;
ログの復元
ログを復元するには、rds_restore_log
ストアドプロシージャを呼び出します。
使用方法
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
], [@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
。
以下のパラメータはオプションです。
-
@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 を使用した復元中のタスクがある場合、ログ復元タスクを提出することはできません。
マルチ AZ インスタンスでは、ログの復元はサポートされていません。
例
例 ログの復元
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
例 暗号化を使用したログの復元
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';
例 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';
例 ブロックサイズによる復元
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@block_size=512;
例 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;
例 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';
データベースの復元を終了する
データベースの最後の復元タスクを @with_norecovery=1
を使用して実行した場合、データベースが RESTORING 状態になります。rds_finish_restore
ストアドプロシージャを使用して、このデータベースを通常操作用に開きます。
使用方法
exec msdb.dbo.rds_finish_restore @db_name='
database_name
';
注記
このアプローチを使用するには、実行中の復元タスクのない状態で、データベースが RESTORING 状態である必要があります。
rds_finish_restore
プロシージャは、マルチ AZ インスタンスではサポートされていません。
データベースの復元が終了したら、マスターログインを使用してください。または、NORECOVERY を使用して直近にデータベースを復元したユーザーログインを使用またはログします。
部分的に復元したデータベースの使用
部分的に復元したデータベースの削除
部分的に復元したデータベースを削除するには(RESTORING状態のまま)、rds_drop_database
ストアドプロシージャを使用してください。
exec msdb.dbo.rds_drop_database @db_name='
database_name
';
注記
復元の中断中または復元タスクが完了したデータベースに対し、DROP データベースリクエストを送信することはできません。
データベースを削除するには、マスターログインを使用します。または、NORECOVERY を使用して直近にデータベースを復元したユーザーログインを使用またはログします。
部分的に復元したデータベースのスナップショット復元とポイントインタイム復元の動作
ソースインスタンス内の部分的に復元されたデータベース(RESTORING状態のまま)は、スナップショットの復元またはポイントインタイム復元中に対象のインスタンスから削除されます。
タスクのキャンセル
バックアップまたは復元タスクをキャンセルするには、rds_cancel_task
ストアドプロシージャを呼び出します。
注記
FINISH_RESTORE タスクはキャンセルできません。
使用方法
exec msdb.dbo.rds_cancel_task @task_id=ID_number
;
以下のパラメータは必須です。
-
@task_id
– キャンセルするタスクの ID。rds_task_status
を呼び出すことにより、タスク ID を取得できます。
タスクのステータスの追跡
バックアップおよび復元タスクのステータスを追跡するには、rds_task_status
ストアドプロシージャを呼び出します。パラメータを何も指定しない場合、ストアドプロシージャによりすべてのタスクのステータスが返されます。タスクのステータスは、約 2 分ごとに更新されます。タスクの履歴は 36 日間保持されます。
使用方法
exec msdb.dbo.rds_task_status
[@db_name='database_name
'],
[@task_id=ID_number
];
以下のパラメータはオプションです。
-
@db_name
– タスクのステータスを表示するデータベースの名前。 -
@task_id
– タスクのステータスを表示するタスクの ID。
例
例 特定タスクのステータスのリスト化
exec msdb.dbo.rds_task_status @task_id=5;
例 特定データベースおよびタスクのステータスのリスト化
exec msdb.dbo.rds_task_status
@db_name='my_database',
@task_id=5;
例 特定データベースのすべてのタスクおよびステータスのリスト化
exec msdb.dbo.rds_task_status @db_name='my_database';
例 現在のインスタンスのすべてのタスクおよびステータスのリスト化
exec msdb.dbo.rds_task_status;
レスポンス
rds_task_status
ストアドプロシージャは、次の列を返します。
列 | 説明 |
---|---|
|
タスクの ID。 |
|
入力パラメータによるタスクタイプは以下の通りです。
以下の復元タスクが完了してデータベースが開くと、Amazon RDSが初期のスナップショットを作成します。
|
|
タスクが関連付けられているデータベースの名前。 |
|
タスクの進行状況の割合値。 |
|
タスクにかかった時間 (分単位)。 |
|
タスクのステータス。有効な状態には、以下が含まれます。
|
|
タスクに関する追加情報。 データベースのバックアップまたは復元中にエラーが発生した場合は、この列にエラーに関する情報が表示されます。発生する可能性があるエラーのリストと軽減戦略については、「トラブルシューティング」を参照してください。 |
|
タスクのステータスが最後に更新された日時。5% 進行するたびに、ステータスが更新されます。 |
|
タスクが作成された日時。 |
S3_object_arn |
Amazon S3プレフィックスを表す ARN とバックアップまたは復元したファイルの名前。 |
|
バックアップタスクを呼び出すときに指定される |
KMS_master_key_arn |
(バックアップ時の) 暗号化および (復元時の) 復号に使用する KMS キーの ARN。 |
filepath |
ネイティブバックアップおよびタスクの復元には適用されません。 |
overwrite_file |
ネイティブバックアップおよびタスクの復元には適用されません。 |