Viqash が RDS SQL Server インスタンスの
ネイティブバックアップを作成する方法について
説明する

native-backup-rds-sql-server-Viqash

Amazon Relational Database Service (Amazon RDS) SQL Server DB インスタンスのネイティブバックアップを作成し、バックアップファイルを Amazon Simple Storage Service (Amazon S3) に保存しておいて、後ほど必要なときにはバックアップファイルを使用して RDS インスタンスを復元できるようにしたいと思っています。

Amazon RDS は、Microsoft SQL Server データベースのネイティブバックアップと復元をサポートしています。オンプレミスのデータベースの完全バックアップを作成して、ファイルを Amazon S3 に保存しておくこと、そのバックアップファイルを、SQL Server を実行している既存の Amazon DB インスタンスに復元することができます。また、このバックアップファイルを、オンプレミスのサーバーや、SQL Server を実行している別の Amazon DB インスタンスに復元することもできます。

SQL Server データベースのネイティブバックアップをセットアップするには、次のものが必要です。

  • バックアップファイルを保存する Amazon S3 バケット
  • バケットにアクセスするための AWS Identity and Access Management (IAM) ロール
  • DB インスタンスのオプショングループに、SQLSERVER_BACKUP_RESTORE オプションが追加されていること

注記: S3 バケットは、RDS DB インスタンスと同じリージョンに作成してください。

  1. Amazon RDS コンソールを開いて、ナビゲーションペインで、[Option Groups (オプショングループ)] を選択します。[Create Group (グループの作成)] を選択して、サーバーの名前、説明、エンジン、エンジンのバージョンを入力します。それから [Create (作成)] を選択します。
  2. 作成したオプショングループを選択して、[Add Option (オプションの追加)] を選択します。 [SQLSERVER_BACKUP_RESTORE] オプションを選択します。ここで新しい IAM ロールを作成して [Add Option (オプションの追加)] を選択し、IAM ロールに必要な権限を持たせておくことを推奨します。自分の S3 バケットを選択するか、新しい S3 バケットを作成します。それから [Apply Immediately (今すぐ適用)] と [Add Option (オプションの追加)] を選択します。
  3. ナビゲーションペインで [Instances (インスタンス)] を選択して、オプショングループと RDS インスタンスを関連付け、バックアップするインスタンスを選択します。[Instance Actions (インスタンスの操作)] で、[Modify (変更)] を選択します。
  4. [Database Options (データベースオプション)] の下で、作成した [Option Group (オプショングループ)] を選択し、[Apply Immediately (直ちに適用)] と [Continue (続行)] を選択します。情報を見直してから、[Modify DB Instance (DB インスタンスの変更)] を選択します。このようなオプショングループの変更では、ダウンタイムは生じません。インスタンスの再起動は必要ないからです。
  5. ステータスが [modifying (変更中)] から [available (利用可能)] に変わったら、SQL Server Management Studio を使用して RDS インスタンスに接続し、[New Query (新規クエリ)] を選択します。以下のいずれかの 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 (アカウント ID)、および key-id (キー ID) は、自分のシナリオに合わせて置き換えてください。S3 バケット内に生成されるバックアップファイルは、後で、新しい RDS DB に復元することができます。rds_backup_database/rds_restore_database ストアドプロシージャが呼び出されると、タスクが開始し、タスクについての情報が出力されます。

タスクのライフサイクルが SUCCESS になると、タスクは完了しています。その後で、Amazon S3 コンソールを開き、バックアップを作成したバケットを選択すれば、バックアップファイルを確認できます。このファイルはダウンロードすること、または新しい RDS インスタンスに復元することができます。

S3 バケット内のバックアップファイルから復元を行うには、以下のいずれかの SQL ステートメントを使用します。

暗号化されていないデータベースの復元

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


このページは役に立ちましたか? はい | いいえ

AWS サポートナレッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2017 年 5 月 17 日

更新: 2018 年 4 月 11 日