レッスン 6:ソースからデータベースの移行のターゲット コンピューターに Windows Azure にオンプレミスのマシンLesson 6: Migrate a database from a source machine on-premises to a destination machine in Windows Azure

このレッスンでは、別の内部設置型コンピューターまたは Windows Azure 仮想マシンに存在している別の SQL Server が既にあるものと仮定します。This lesson assumes that you already have another SQL Server, which might reside in another on-premises computer or in a virtual machine in Windows Azure. Windows Azure で SQL Server の仮想マシンを作成する方法については、次を参照してください。 Windows Azure で SQL Server 仮想マシンのプロビジョニングします。For information on how to create a SQL Server virtual machine in Windows Azure, see Provisioning a SQL Server Virtual Machine on Windows Azure. Windows Azure で SQL Server 仮想マシンを準備した後、別のコンピューターの SQL Server Management Studio 経由でこの仮想マシンの SQL Server インスタンスに接続できることを確認します。After provisioning a SQL Server virtual machine in Windows Azure, make sure that you can connect to an instance of SQL Server in this virtual machine via SQL Server Management Studio in another computer.

このレッスンは、次の手順を完了済みであることも前提としています。This lesson also assumes that you already completed the following steps:

  • Windows Azure ストレージ アカウントを入手しました。You have a Windows Azure Storage account.

  • Windows Azure ストレージ アカウントにコンテナーを作成しました。You have created a container under your Windows Azure Storage account.

  • 読み取り、書き込み、一覧表示の権限のあるコンテナーに対するポリシーを作成しました。You have created a policy on a container with read, write, and list rights. SAS キーも生成しました。You also generated a SAS key.

  • ソース コンピューターで SQL Server 資格情報を作成しました。You have created a SQL Server credential on the source machine.

  • Windows Azure で対象の SQL Server 仮想マシンを既に作成しました。You already have created a destination SQL Server virtual machine in Windows Azure. 仮想マシンは、SQL Server 2014 を含んでいるプラットフォーム イメージを選択して作成することをお勧めします。We recommend that you create it by selecting a platform image that includes SQL Server 2014.

    内部設置型 SQL Server から Windows Azure の別の仮想マシンにデータベースを移行するには、次の手順を実行します。To migrate a database from SQL Server on-premises to another virtual machine in Windows Azure, you can follow these steps:

  1. ソース コンピューター (このチュートリアルでは内部設置型コンピューター) で、SQL Server Management Studio のクエリ ウィンドウを開きます。In the source machine (which is an on-premises computer in this tutorial), open a query window in SQL Server Management Studio. 次のステートメントを実行して、データベースをデタッチし、別のコンピューターに移動します。Detach your database to move it to another machine by executing these statements:

    -- Detach the database in the source machine   
    USE master  
    EXEC sp_detach_db 'TestDB1', 'true';  
    
  2. ターゲット コンピューターにデータベースを転送する必要がある場合は、まずデータベースを準備しておく必要があります。If you need to transfer a database to a destination machine, first you must prepare it. ターゲット コンピューターを準備するには、まずターゲット コンピューターで SQL Server 資格情報を作成する必要があります。To prepare your destination machine, first you need to create a SQL Server credential in the destination machine. 暗号化されたデータベースの場合は、証明書もソース コンピューターからターゲット コンピューターにインポートする必要があります。If it is an encrypted database, you need to import the certificate from the source machine to the destination machine as well.

    1. ターゲット コンピューターで SQL Server 資格情報を作成するには、次の手順を実行します。To create a SQL Server Credential in the destination machine, follow these steps:

      1. ソース コンピューターの SQL Server Management Studio 経由でターゲット コンピューターに接続します。Connect to the destination machine via SQL Server Management Studio in your source computer. または、ターゲット コンピューターで SQL Server Management Studio を直接起動します。Or, start SQL Server Management Studio in your destination computer directly.

      2. 標準のツール バーで、新しいクエリします。On the Standard tool bar, click New Query.

      3. 次の例をコピーしてクエリ ウィンドウに貼り付け、必要に応じて変更します。Copy and paste the following example into the query window, modify as needed. 次のステートメントは、ストレージ コンテナーの共有アクセス証明書を格納する SQL Server の資格情報を作成します。The following statement creates a SQL Server Credential to store your storage container's Shared Access Certificate.

        
        USE master   
        GO   
        CREATE CREDENTIAL [http://teststorageaccnt.blob.core.windows.net/testcontainer]   
        WITH IDENTITY='SHARED ACCESS SIGNATURE',   
        SECRET = 'your SAS key'   
        GO  
        
      4. 使用可能なすべての資格情報を表示するには、クエリ ウィンドウで次のステートメントを実行します。To see all available credentials, you can run the following statement in the query window:

        SELECT * from sys.credentials   
        
      5. ターゲット サーバーに接続して、クエリ ウィンドウを開き、次のステートメントを実行します。When connected to the destination server, open query window, and run:

        
        -- Create a master key and a server certificate   
        USE master   
        GO   
        CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MySQLKey01'; -- You may use a different password.   
        GO   
        CREATE CERTIFICATE MySQLCert   
        FROM FILE = 'C:\certs\MySQLCert.CER'   
        WITH PRIVATE KEY   
        (   
        FILE = 'C:\certs\MySQLPrivateKeyFile.PVK',   
        DECRYPTION BY PASSWORD = 'MySQLKey01'   
        );   
        GO  
        

        この手順が終了すると、ソース コンピューターからバックアップされた暗号化証明書がターゲット コンピューターにインポートされます。At the end of this step, the destination machine has imported the encryption certificate that was backed up from the source machine. 次に、ターゲット コンピューターでデータ ファイルをアタッチできます。Next, you can attach the data files in the destination machine.

    2. 次に、FOR ATTACH オプションを使用して Windows Azure ストレージの既存のファイルを指すデータ ファイルとログ ファイルを持つデータベースを作成します。Then, create a database with data and log files pointing to the existing files in Windows Azure Storage by using FOR ATTACH option. クエリ ウィンドウで、次のステートメントを実行します。In the query window, run the following statement:

      
      --Create a database on the destination server   
      CREATE DATABASE TestDB1onDest   
      ON   
      (NAME = TestDB1_data,   
          FILENAME = 'https://teststorageaccnt.blob.core.windows.net/testcontainer/TestDB1Data.mdf' )   
      LOG ON   
       (NAME = TestDB1_log,   
          FILENAME = 'https://teststorageaccnt.blob.core.windows.net/testcontainer/TestDB1Log.ldf')   
      FOR ATTACH   
      GO  
      
    3. オブジェクト エクスプローラーで、[データベース] を右クリックし、[更新] をクリックします。On the Object Explorer, click Databases, right-click Refresh. 新しく作成したデータベース TestDB1onDest が一覧に表示されることを確認します。You should be able to see the newly created database TestDB1onDest listed.

    4. 次に、クエリ ウィンドウで次のステートメントを実行します。Next, run the following statement in the query window:

      
      USE TestDB1onDest   
      SELECT * FROM Table1;   
      GO  
      

      これでレッスン 4 で入力したデータがすべて表示されます。This should list all the data you entered in Lesson 4.

    暗号化されたデータベースがデータ移動なしで別のコンピューター インスタンスに転送されたことに注意してください。Note that the encrypted database was transferred to another compute instance with no data movement.

    SQL Server Management Studio を使用して、Windows Azure ストレージの既存のファイルを指すデータ ファイルとログ ファイルを持つデータベースを作成するには、次の手順を実行します。To create a database with data and log files pointing to the existing files in Windows Azure Storage using SQL Server Management Studio user interface, perform these steps:

  3. オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。In Object Explorer, connect to an instance of the SQL Server Database Engine and then expand that instance.

  4. [データベース] を右クリックし、 [新しいデータベース] をクリックします。Right-click Databases, and then click New Database. 次に [TestDB1] を右クリックします。Then, right-click TestDB1. [タスク] をクリックし、[デタッチ] をクリックします。Click Tasks, and then click Detach. [デタッチ] ダイアログ ウィンドウで、[接続の削除] チェック ボックスをオンにします。In the Detach dialog window, check Drop Connections. [OK] をクリックします。Click OK.

  5. SQL Server 2014 CTP2 以降がインストールされたターゲット コンピューターに接続します。Connect to the destination machine, which has SQL Server 2014 CTP2 or later. ターゲット コンピューターを準備するには、ターゲット コンピューターで、TestDB1 を格納した同じコンテナーを指す SQL Server 資格情報を作成する必要があります。To prepare your destination machine, you need to create a SQL Server credential in the destination machine to point to the same container that you put TestDB1 in. 同じコンピューターで再アタッチする場合、別の資格情報を作成する必要はありません。If you are going to re-attach in the same computer, you do not need to create another credential.

  6. オブジェクト エクスプ ローラーを右クリックしてデータベースクリックアタッチIn Object Explorer, right-click Databases and click Attach.

  7. データベースのアタッチダイアログ ボックスで、アタッチするデータベースを指定する をクリックして追加します。In the Attach Databases dialog box, to specify the database to be attached, click Add. データベース ファイルの検索ダイアログ ウィンドウ。In the Locate Database Files dialog window:

    データベース データ ファイルの場所を入力:https://teststorageaccnt.blob.core.windows.net/testcontainer/します。For Database Data File Location, type: https://teststorageaccnt.blob.core.windows.net/testcontainer/.

    ファイル名を入力:TestDB1Data.mdfします。For File name, type: TestDB1Data.mdf.

  8. [OK] をクリックします。Click OK.

    SQL 14 CTP2SQL 14 CTP2

    次のレッスン:Next Lesson:

    レッスン 7:Windows Azure ストレージにデータ ファイルを移動します。Lesson 7: Move your data files to Windows Azure Storage