スキップしてコンテンツを表示

データベースを Amazon EC2 インスタンスまたはオンプレミスの VM から、Amazon RDS for SQL Server に移行する方法を教えてください。

所要時間2分
0

データベースを Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたはオンプレミスの Microsoft SQL Server インスタンスから、Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server に移行したいです。

解決策

データを移行する方法

ネイティブ SQL Server のバックアップと復元

ネイティブバックアップと復元を使用すると、SQL Server データベースをオンプレミスまたは Amazon EC2 インスタンスから、Amazon RDS for SQL Server インスタンスに移行できます。次の手順を実行します。

  1. Amazon Simple Storage Service (Amazon S3) バケットを作成し、ソースインスタンスからバックアップを保存します。Amazon S3 バケットは Amazon RDS インスタンスと同じ AWS リージョンにある必要があります。

  2. バケットにアクセスするための AWS Identity and Access Management (IAM) ロールを作成します

  3. Amazon RDS for SQL Server インスタンスに関連付けられたオプショングループに SQLSERVER_BACKUP_RESTORE オプションを追加します。

  4. ソースインスタンス (オンプレミスまたは Amazon EC2) からバックアップを作成し、ステップ 1 で作成した Amazon S3 バケットにコピーします。

  5. 次のスクリプトを実行し、バックアップを Amazon RDS for SQL Server インスタンスに復元します。

    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';
  6. 次のスクリプトを実行し、Amazon RDS インスタンスのデータベースを S3 にバックアップします。

    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;

    注: 差分バックアップをバックアップおよび復元してもかまいません。

AWS Database Migration Service (AWS DMS)

次の手順を実行します。

  1. SQL Server を AWS DMS のソースまたはターゲットとして使用する際の前提条件と制限事項を確認してください。
  2. AWS DMS レプリケーションインスタンスを作成する
  3. AWS DMS を使用してソースおよびターゲットのエンドポイントを作成する
  4. 移行タスクを作成する

トランザクションレプリケーション

オンプレミスまたは EC2 SQL Server インスタンスから、Amazon RDS for SQL Server インスタンスへのトランザクションレプリケーションを設定できます。ただし、Amazon RDS for SQL Server インスタンス以外はサブスクライバーに設定できません。また、プッシュサブスクリプションでは、オンプレミスまたは EC2 SQL Server インスタンスはパブリッシャーまたはディストリビューターにのみ設定できます。

オンプレミスまたは Amazon EC2 SQL Server インスタンスからトランザクションレプリケーションを設定する方法については、次の手順を確認してください。

バックアップパッケージ (.bacpac) ファイル

.bacpac ファイルは、コピーされたメタデータとファイルに圧縮されたデータで構成されます。約 200 GB のデータベースには、.bacpac ファイルの使用をおすすめします。Export/Import または SQLPackage.exe (コマンドライン) ユーティリティを使用すると、.bacpac ファイルを作成できます。.bacpac ファイルの詳細については、「bacpac 方式を使用して SQL Server データベースを Azure SQL データベースから Amazon RDS for SQL Server に移行する」を参照してください。

データをインポートする方法

スクリプトの生成と発行ウィザード

データベースが 1 GB 未満の場合は、スクリプトの生成と発行ウィザードを使用できます。大規模なデータベースの場合は、インポート/エクスポートウィザードまたは一括コピー手法を使用すると、データベースのスキーマをスクリプト化できます。スクリプトの生成と発行ウィザードの詳細については、Microsoft SQL Server ドキュメントの「ハウツー: スクリプトの生成 (QL Server Management Studio)」を参照してください。

注: [スクリプトオプションの設定] ページで [スクリプトを特定の場所に保存][詳細設定] を選択したことを確認してください。[詳細設定] には、インポートおよびエクスポート中にテーブルにオブジェクトを含めるか除外するための追加オプションが用意されています。

インポート/エクスポートウィザード

インポート/エクスポートウィザード は、統合パッケージを作成します。統合パッケージは、オンプレミスまたは Amazon EC2 SQL Server データベースから Amazon RDS for SQL Server インスタンスにデータをコピーするのに使用します。Amazon RDS インスタンスにコピーする特定のテーブルを絞り込むことができます。

インポート/エクスポートウィザードの詳細については、Microsoft SQL Server ドキュメントの「ハウツー: SQL Server のインポート/エクスポートウィザードを実行する」を参照してください。

注: インポート/エクスポートウィザードを実行する際は、宛先 Amazon RDS for SQL Server インスタンスでは次のオプションを選択する必要があります。

  • [サーバー名] に Amazon RDS DB インスタンスのエンドポイント名を入力します。
  • [認証モード][SQL Server 認証] を選択します。
  • [ユーザー名][パスワード] には、Amazon RDS インスタンスで作成したメインユーザーを入力します。

Bulk Copy Program ユーティリティ

Bulk Copy Program (bcp) は、SQL Server インスタンス間でのデータ一括コピーに使用するコマンドラインユーティリティです。bcp ユーティリティを使用すると、大量のデータを SQL Server インスタンスにインポートしたり、ファイルにエクスポートしたりできます。

IN コマンドと OUT コマンドの例を次に示します。

OUT: 次のコマンドを使用し、テーブルのレコードをファイルにエクスポートまたはダンプします。

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P     password -b 10000

上記のコードには次のオプションが含まれています。

  • -n: 一括コピーでは、コピーするデータのネイティブデータ型を使用することを指定します。
  • -S: bcp ユーティリティの接続先となる SQL Server インスタンスを指定します。
  • -U: SQL Server インスタンスにログインする AWS アカウントのユーザー名を指定します。
  • -P: -U で指定されたユーザーのパスワードを指定します。
  • -b: インポートしたデータのバッチあたりの行数を指定します。

IN: このコマンドを使用し、ダンプファイルから既存のテーブルにすべてのレコードをインポートします。bcp コマンドを実行する前に、テーブルを作成する必要があります。

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000

詳細については、Microsoft SQL Server ドキュメントの「bcp ユーティリティ」を参照してください。

コメントはありません

関連するコンテンツ