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

このレッスンでは、別のオンプレミスコンピューターまたは 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 Azure. Azure で SQL Server 仮想マシンを作成する方法の詳細については、「 azure での SQL Server 仮想マシンのプロビジョニング」を参照してください。For information on how to create a SQL Server virtual machine in Azure, see Provisioning a SQL Server Virtual Machine on Azure. Azure に SQL Server 仮想マシンをプロビジョニングした後、別のコンピューターの SQL Server Management Studio を使用して、この仮想マシンの SQL Server のインスタンスに接続できることを確認してください。After provisioning a SQL Server virtual machine in 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:

  • Azure Storage アカウントを持っています。You have an Azure Storage account.

  • Azure Storage アカウントでコンテナーを作成しました。You have created a container under your 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.

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

オンプレミスの SQL Server から Azure の別の仮想マシンにデータベースを移行するには、次の手順を実行します。To migrate a database from SQL Server on-premises to another virtual machine in 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 オプションを使用して Azure Storage 内の既存のファイルを指すデータファイルとログファイルを含むデータベースを作成します。Then, create a database with data and log files pointing to the existing files in 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 ユーザーインターフェイスを使用して Azure Storage 内の既存のファイルを指すデータファイルとログファイルを含むデータベースを作成するには、次の手順を実行します。To create a database with data and log files pointing to the existing files in Azure Storage using SQL Server Management Studio user interface, perform these steps:

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

  2. [データベース] を右クリックし、[新しいデータベース] をクリックします。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.

  3. 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.

  4. オブジェクトエクスプローラーで、[データベース] を右クリックし、[アタッチ] をクリックします。In Object Explorer, right-click Databases and click Attach.

  5. [データベースのアタッチ] ダイアログボックスで、アタッチするデータベースを指定するために、[追加] をクリックします。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.

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

    SQL 14 CTP2SQL 14 CTP2

次のレッスン:Next Lesson:

レッスン 7: Azure Storage にデータ ファイルを移動するLesson 7: Move your data files to Azure Storage