SQL Server 2008 R2 バージョンのインスタンスでは、クラウドデータベースへ簡単にデータを移行できます。 Microsoft の公式バックアップ機能を使って自作のデータベース内にあるすべてのデータをバックアップし、Alibaba Cloud の OSS (Object Storage Service) へアップロードします。RDS コンソールを使用して、データを RDS の指定されたデータベースに完全に移行できます。 この機能は、Microsoft の公式のバックアップおよび復元プログラムを利用し、OSS の強力な機能と組み合わされ、100% の互換性を実現でき、 これらすべての機能は、クラウドデータベースへデータを移行するために非常に効率的な機能です。

前提条件

ターゲットデータベースは RDS に作成されています。 詳細については、「SQL Sver 2008 R2 用のデータベースとアカウントの作成」をご参照ください。

RDS の対象データベースの名前は、 移行するローカルデータベースの名前と同じにすることができます。

請求明細

データをクラウドに移行するとき、RDS で追加料金はかかりません。しかし 次の図に示すとおり、OSS には料金がかかります。



図について

  • OSS へのローカル データバックアップファイルのアップロードは、無料です。
  • OSS にバックアップファイルを保存する場合、OSS ストレージを変更できます。 詳細は、「料金」をご参照ください。
  • イントラネットを使って OSS から RDS にバックアップファイルを移行した場合、追加料金は発生しません。 インターネットを使った場合、OSS ではインターネットのアウトバウンドトラフィックに対して料金が発生します。 詳細は、「料金」をご参照ください。
    RDS インスタンスと OSS バケットが同じリージョンにある場合にのみ、イントラネットを使って相互へ接続することができます。 そのため、バックアップファイルをアップロードする OSS のバケットリージョンは移行先の RDS インスタンスと同じリージョンに属していることを確認してください。

手順

  1. ローカルデータベースを準備します。 操作手順は次のとおりです。
    1. SSMS (Microsoft SQL Server Managemen-USt Studio) クライアントを起動します。
    2. 移行するデータベースにログインします。
    3. 次のコマンドを実行して、ローカルデータベースの復元モードを確認します。
      use master;
      go
      select name, case recovery_model
      when 1 then FULL
      when 2 then BULD_LOGGED
      when 3 then SIMPLE end model from sys.databases
      where name not in (master,tempdb,model,msdb);
      go

      ローカルデータベースのモデル値を確認します。

      • モデル値が FULL でない場合は、手順 d へ進みます。
      • モデル値が FULL の場合は、手順 e へ進みます。
    4. 次のコマンドを実行して、ソースデータベースの復元モードを FULL に設定します。
      復元モードを FULL に設定すると、SQL Server ログの数が増えます。 したがって、ログ用に十分なディスク容量があることを確認します。
      ALTER DATABASE [dbname] SET RECOVERY FULL;
      go
      ALTER DATABASE [dbname] SET AUTO_CLOSE OFF;
      go
    5. 次のコマンドを実行して、ソースデータベースをバックアップします。 次の例では filename.bak をバックアップファイル名として使用します。
      use master;
      go
      BACKUP DATABASE [testdbdb] to disk =d:\backup\filename.bak WITH COMPRESSION,INIT;
      go
    6. 次のコマンドを実行してバックアップファイルの整合性を確認します。
       USE master
       GO
       RESTORE FILELISTONLY 
         FROM DISK = ND:\Backup\filename.bak;

      返される結果の説明:

      • 結果セットが返された場合、バックアップファイルは有効です。
      • エラーが返された場合、バックアップファイルは無効です。 この場合は、もう一度データベースをバックアップします。
    7. 次のコマンドを実行して、ソースデータベースのRecover Mode を元に戻します。
      手順 iv (データベースの Recover Mode を FULLにする) を実行しない場合は、この手順を省略します。
      ALTER DATABASE [dbname] SET RECOVERY SIMPLE;
      go
  2. ローカルバックアップファイルを OSS へアップロードし、ファイル URL を取得します。 詳しい手順は、 次のとおりです。
    1. OSS へバックアップファイルをアップロードします。
    2. OSS コンソールの左側のナビゲーションウィンドウで、バックアップファイルが入っているバケットを選択します。


    3. [Files] を選択します。
    4. 対象バックアップファイルの名前をクリックします。


    5. [署名] 欄で、リンクの有効期間を変更します。 有効期間を 28,800 秒、つまり 8 時間に設定することを推奨します。
      バックアップファイルを OSS から RDS に移行するときは、バックアップファイルの URL が必要です。 URL のリンク有効期間が切れると、データ移行は失敗します。 そのため、有効期間を最大値の 28,800 秒に設定することを推奨します。
    6. [ファイル URL のコピー] をクリックします。 デフォルトの URL は、ファイルのインターネット接続アドレスです。


    7. イントラネットを使ってデータを移行する場合は、バックアップファイル URL のエンドポイントをイントラネットエンドポイントに変更します。 イントラネットエンドポイントは、ネットワークタイプとリージョンによって異なります。 詳しくは、「ドメイン名とデータセンターへのアクセス」をご参照ください。

      たとえば、バックアップファイル URL が http://rdstest-yanhua.oss-cn-shanghai.aliyuncs.com/testmigraterds_20170906143807_FULL.bak?Expires=1514189963&OSSAccessKeyId=TMP.AQGVf994YTPfArSpw78uix2rdGBi-dPe_FzQSLwOLP7MVlR-XXXX の場合、URL のインターネットエンドポイント oss-cn-shanghai.aliyuncs.com をイントラネットエンドポイント oss-cn-shanghai-internal.aliyuncs.com へ変更します。

  3. バックアップファイルを OSS から RDS に移行します。 詳しい手順は次のとおりです。
    1. RDS コンソールにログインします。
    2. 対象インスタンスのリージョンを選択します。
    3. 対象インスタンスの ID をクリックして、[基本情報] ページに移動します。
    4. 左側のナビゲーションウィンドウで、[Databases] をクリックして、[Databases] ページを開きます。
    5. 対象データベースを探して、[アクション]カラムの [OSS からバックアップファイルを移行する] をクリックします。


    6. [インポートガイド] ダイアログボックスで、プロンプトを読み、[次へ] をクリックして、 [バックアップファイルのアップロード] ページを開きます。
    7. プロンプトを読み、[次へ] をクリックして、[データのインポート] ページを開きます。
    8. [OSS URL ファイルのバックアップ] ボックスで、OSS のバックアップファイル URL を入力します。
      現在、 RDS では、フルバックアップのワンタイム 移行をサポートしています。


    9. [OK] をクリックします。
    10. 左側のナビゲーションウィンドウで、 [クラウドへのデータ移行] をクリックし、OSS から RDS へバックアップファイルを移行するタスク一覧ページを開きます。
    11. 移行タスクを検索します。 タスクの状態成功 になっている場合、データは RDS データベースへ正常に移行されています。 長時間移行タスクの状態が 成功 にならない場合、移行タスクの横にある [ファイルの詳細の表示] をクリックし、失敗した原因を確認します。 問題を解決したら、必要な手順を行って再度バックアップファイルを移行します。