Amazon RDS-MS SQLDBエクスポートインポート

Amazon RDS MSSQLは、DBをエクスポートおよびインポートするメカニズムとして、ネイティブのバックアップと復元を提供します。フルバックアップファイルは、オンプレミスデータベースから作成し、AmazonS3に保存できます。次に、このバックアップファイルは、SQLサーバーを実行している既存のAmazon RDSDBインスタンスに復元されます。同様の手順に従って、Amazon RDS MSSQLインスタンスからデータをエクスポートし、オンプレミスのSQLServerデータベースに復元できます。

次の図は、アプローチを説明しています。

上記で作成したバックアップファイルを、ターゲットRDSMSSQLデータベースが存在するのと同じリージョンにある事前に決定されたAmazonS3バケットにアップロードします。このリンクをたどって、アップロードする方法を学ぶことができます。

このネイティブのバックアップと復元のメカニズムには、次の利点があります。

  • データベースをAmazonRDSに移行します。

  • Amazon RDS SQL ServerDBインスタンス間でデータベースを移動します。

  • データをインポートおよびエクスポートします。

  • スキーマ、ストアドプロシージャ、トリガー、その他のデータベースコードを移行します。

  • DBインスタンス全体ではなく、単一のデータベースをバックアップおよび復元します。

  • テスト、トレーニング、およびデモンストレーション用のデータベースのコピーを作成します。

  • バックアップファイルをAmazonS3を介してAmazonRDSとの間で保存および転送し、ディザスタリカバリの保護層を追加します。

データベースをバックアップするには、SSMSクライアントソフトウェアからAmazon RDS MSSQLインスタンスに接続した後、rds_backup_databaseストアドプロシージャを呼び出します。ストアドプロシージャは、次のパラメータを使用して実行されます。

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,
        @type='FULL';

上記のストアドプロシージャが正常に完了すると、バックアップファイルが作成され、前述のS3のバケットに保存されます。

データベースを復元するには、SSMSクライアントソフトウェアからAmazon RDS MSSQLインスタンスに接続した後、rds_restore_databaseストアドプロシージャを呼び出します。ストアドプロシージャは、次のパラメータを使用して実行されます。

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';