Amazon RDS で SQL Server データベースのネイティブバックアップを実行し、バックアップファイルを Amazon S3 に保存する方法を学びたいと考えています。SQL Server を実行している同じまたは別の RDS DB インスタンスにこれらのバックアップを復元する方法を知りたいです。
簡単な説明
Amazon RDS バックアップを使用して、バックアップファイルを Amazon Simple Storage Service (Amazon S3) に保存できます。データベースのバックアップファイルを使用して、同じまたは別の Amazon RDS for SQL Server DB インスタンスに復元することもできます。
Amazon RDS は Microsoft SQL Server データベースのネイティブバックアップと復元をサポートしています。オンプレミスデータベースの完全バックアップを作成し、ファイルを Amazon S3 に保存できます。その後、SQL Server を実行している既存の Amazon RDS DB インスタンスにバックアップファイルを復元できます。このバックアップファイルは、オンプレミスのサーバーまたは SQL Server を実行している別の Amazon RDS DB インスタンスに復元することも可能です。詳細については、Microsoft ウェブサイトのバックアップを復元するを参照してください。
解決策
ネイティブバックアップを開始する前に、次のコンポーネントが揃っていることを確認してください。
SQL Server データベースのネイティブバックアップを設定するには、次の手順に従います。
- Amazon RDS コンソールを開き、ナビゲーションペインで オプショングループ を選択します。
- グループを作成 を選択して、サーバーの名前、説明、エンジン、およびエンジンのバージョンを入力します。
- 作成 を選択します。
- 作成したオプショングループを選択して、オプションの追加を選択します。
- SQLSERVER_BACKUP_RESTORE を選択します。新しい IAM ロールを作成して オプションの追加を選択し、IAM ロールに必要な権限を持たせるようにすることをお勧めします。
- S3 バケットを選択するか、新しい S3 バケットを作成します。
- 次に、今すぐ適用、オプションの追加の順に選択します。
- ナビゲーションペインで データベースを選択してオプショングループを DB インスタンスに関連付け、次にバックアップするインスタンスを選択します。
- アクション、変更の順に選択します。
- データベースオプション で、作成したオプショングループを選択し、次に 今すぐ適用、続行 の順に選択します。
- 情報を確認して、DB インスタンスを変更を選択します。インスタンスの再起動が不要なため、このオプショングループの変更にはダウンタイムがありません。
- ステータスが変更中から使用可能に変わるまで待ちます。SQL Server Management Studio を介して DB インスタンスに接続するには、RDS インスタンスのプライマリユーザーを使用します。
- 次に、新規クエリを選択し、以下の SQL ステートメントのいずれかを入力して、目的のデータベースのバックアップを開始します。
暗号化されていないデータベースのバックアップを開始する
exec msdb.dbo.rds_backup_database @source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',
@overwrite_S3_backup_file=1;
暗号化されたデータベースのバックアップを開始する
exec msdb.dbo.rds_backup_database @source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id',
@overwrite_S3_backup_file=1;
**注:**例に記載されている database_name, bucket_name, file_name_and_extension, region, account-id と key-id は、ご自身のシナリオに合うように置き換えてください。S3 バケットで生成されたバックアップファイルを使用して、ユーザーデータベースを新しい RDS DB インスタンスに復元できます。rds\ _backup\ _database または rds\ _restore\ _database ストアドプロシージャが呼び出されると、タスクが開始され、タスクに関する情報が出力されます。
タスクのライフサイクルステータスが SUCCESS の場合、タスクは完了しています。その後、Amazon S3 コンソールを開き、ユーザーデータベースバックアップを作成したバケットを選択し、バックアップファイルを表示します。DB インスタンスを復元するには、このファイルをダウンロードするか、ユーザーデータベースのバックアップファイルを使用してください。同じ Amazon RDS for SQL Server DB インスタンスを復元することも、新しい RDS DB インスタンスに復元することもできます。
以下のいずれかの SQL ステートメントを使用して、S3 バケットで使用可能なバックアップファイルから復元します。
暗号化されていないデータベースを復元する
exec msdb.dbo.rds_restore_database @restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';
暗号化されたデータベースを復元する
exec msdb.dbo.rds_restore_database @restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3::: bucket_name/file_name_and_extension',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id';
タスク ID は、バックアップまたは復元ステートメントを実行した後に取得できます。または、次のスクリプトを使用して、特定のデータベースに対して完了したタスクと保留中のタスクをすべて識別できます。
exec msdb.dbo.rds_task_status @db_name='database_name'
ジョブのステータスを追跡するには、次の SQL ステートメントを使用します。
exec msdb..rds_task_status @task_id= 5
潜在的なエラーと解決策のリストについては、Migrating Microsoft SQL Server Enterprise workloads to Amazon RDS を参照してください。
関連情報
バックアップの概要
データのバックアップ、復元、エクスポート
ネイティブバックアップと復元を使用した SQL Server データベースのインポートとエクスポート