共用方式為


第 6 課:將資料庫從內部部署來源電腦遷移至 Azure 中的目的地電腦

本課程假設您已經有另一部 SQL Server,這可能位於另一部內部部署電腦或 Azure 中的虛擬機中。 如需如何在 Azure 中建立 SQL Server 虛擬機的資訊,請參閱 在 Azure 上佈建 SQL Server 虛擬機。 在 Azure 中佈建 SQL Server 虛擬機之後,請確定您可以透過另一部電腦的 SQL Server Management Studio,連線到此虛擬機中的 SQL Server 實例。

本課程也假設您已經完成下列步驟:

  • 您擁有 Azure 儲存體帳戶。

  • 您已在 Azure 記憶體帳戶下建立容器。

  • 您已在具有讀取、寫入和列出權限的容器上建立原則。 您也產生了 SAS 金鑰。

  • 您已在來源電腦上建立 SQL Server 認證。

  • 您已在 Azure 中建立目的地 SQL Server 虛擬機。 建議您選取包含 SQL Server 2014 的平臺映射來建立它。

若要將資料庫從內部部署 SQL Server 移轉至 Azure 中的另一部虛擬機,您可以遵循下列步驟:

  1. 在本教學課程中,在來源計算機(這是內部部署計算機)中,於 SQL Server Management Studio 中開啟查詢視窗。 執行下列語句來將資料庫分離並移動到另一台電腦:

    -- Detach the database in the source machine   
    USE master  
    EXEC sp_detach_db 'TestDB1', 'true';  
    
  2. 如果您需要將資料庫傳送至目的地計算機,您必須先加以準備。 若要準備目的地計算機,您必須先在目的地機器中建立 SQL Server 認證。 如果是加密的資料庫,您也必須將憑證從來源計算機匯入目的地計算機。

    1. 若要在目的地機器中建立 SQL Server 認證,請遵循下列步驟:

      1. 透過來源計算機中的 SQL Server Management Studio 連線到目的地電腦。 或者,直接在目的地計算機中啟動 SQL Server Management Studio。

      2. 在 [標準] 工具列上,按兩下 [ 新增查詢]。

      3. 複製下列範例並貼到查詢視窗中,視需要修改。 下列語句會建立 SQL Server 認證來儲存記憶體容器的共用存取憑證。

        
        USE master   
        GO   
        CREATE CREDENTIAL [http://teststorageaccnt.blob.core.windows.net/testcontainer]   
        WITH IDENTITY='SHARED ACCESS SIGNATURE',   
        SECRET = 'your SAS key'   
        GO  
        
        
      4. 若要查看所有可用的認證,您可以在查詢視窗中執行下列語句:

        SELECT * from sys.credentials   
        
      5. 連線到目的地伺服器時,請開啟查詢視窗,然後執行:

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

        在此步驟結束時,目的地計算機已匯入從來源計算機備份的加密憑證。 接下來,您可以在目的地機器中附加數據檔。

    2. 然後,使用 FOR ATTACH 選項,建立具有指向 Azure 記憶體中現有檔案之數據和記錄檔的資料庫。 在查詢視窗中,執行下列語句:

      
      --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. 在 [物件瀏覽器] 上,按一下 [資料庫],以滑鼠右鍵按一下 [重新整理]。 您應該能看到新建立的資料庫「TestDB1onDest」列出在清單中。

    4. 接下來,在查詢視窗中執行下列語句:

      
      USE TestDB1onDest   
      SELECT * FROM Table1;   
      GO  
      
      

      這應該會列出您在第 4 課中輸入的所有數據。

請注意,加密的資料庫已傳輸至沒有數據移動的另一個計算實例。

若要使用 SQL Server Management Studio 使用者介面建立具有指向 Azure 記憶體中現有檔案之數據和記錄檔的資料庫,請執行下列步驟:

  1. 在物件總管中,連接到 SQL Server Database Engine 的實例,然後展開該實例。

  2. 以滑鼠右鍵按兩下 [資料庫],然後按兩下 [ 新增資料庫]。 然後,以滑鼠右鍵按兩下 [TestDB1]。 按一下 [工作],然後按一下 [分離]。 在 [中斷連結] 對話框視窗中,勾選 [卸除連線]。 按一下 [確定]

  3. 連接到具有 SQL Server 2014 CTP2 或更新版本的目的地電腦。 若要準備目的地計算機,您必須在目的地機器中建立 SQL Server 認證,以指向您放入 TestDB1 的相同容器。 如果您要重新附加在同一部計算機上,則不需要建立另一個認證。

  4. [物件總管] 中,以滑鼠右鍵按兩下 [ 資料庫 ],然後按兩下 [ 附加]。

  5. 在 [ 附加資料庫] 對話框中,若要指定要附加的資料庫,請按兩下 [ 新增]。 在 [ 尋找資料庫檔案] 對話框視窗中:

    針對 [資料庫數據檔位置],輸入: https://teststorageaccnt.blob.core.windows.net/testcontainer/

    針對檔案名稱,輸入: TestDB1Data.mdf

  6. 按一下 [確定]

    SQL 14 CTP2

下一課:

第 7 課:將資料檔移至 Azure 記憶體