匯出 (0) 列印
全部展開

移轉至 Azure 虛擬機器中的 SQL Server

更新日期: 2014年3月

本主題提供下列項目的相關資訊:如何將建置於 Windows Server 平台的現有內部部署 SQL Server 資料庫,移轉到 Azure 虛擬機器 (VM) 中的 SQL Server。本主題也包含選擇在雲端的虛擬機器中執行 SQL Server 應用程式的時機,或將現有的 SQL Server 資料庫移轉到 Azure SQL Database (SQL Database) 等決策工作流程。

虛擬機器中的 SQL Server 可讓您輕鬆地將應用程式移轉至 Azure,減少企業規模應用程式部署、管理和維護的擁有權總成本。現有 SQL Server 應用程式幾乎不需要任何程式碼變更,即可移轉到 Azure 虛擬機器。透過虛擬機器中的 SQL Server,管理員和開發人員仍然可以使用內部部署的相同開發和管理工具。

作者: Selcin Turkarslan
審稿者:Evgeny Krivosheev、Paolo Salvatori、Lindsey Allen、Steve Howard

本文件的章節

使用 Azure 虛擬機器中的 SQL Server,可支援雲端中的許多內部部署案例:

  • 快速應用程式開發和測試: 開發資料庫應用程式,需要在類似生產的環境中執行一些驗證。請使用虛擬機器中的 SQL Server,而不是購買新硬體,對新應用程式進行驗證或測試。只要使用包含 SQL Server 的平台映像建立虛擬機器,或上傳您自己的映像到 Azure。然後,連接至新的虛擬機器,移動資料及安裝應用程式,測試並執行修正。

  • 虛擬化平台擁有權的總成本: 將現有的內部部署虛擬化平台移至 Azure。請利用 Azure 虛擬機器中的 SQL Server 基礎結構,將企業應用程式移至 Azure,而不要購買新硬體,在您自己內部部署的虛擬化平台上執行愈來愈多的應用程式。

  • 視需要快速延展: 取得額外的電腦、儲存體和網路資源,來處理季節性應用程式使用尖峰。請使用 Azure 虛擬機器中的 SQL Server 基礎結構,而不是購買只在特定時間週期內需要的額外硬體。

  • 資料可用性和行動性: 裝載在 Azure 虛擬機器中的 SQL Server 資料庫可供內部部署與雲端應用程式使用。

下列決策工作流程說明何時選擇 Azure 虛擬機器的 SQL Server 或 Azure SQL Database:

  • 對於新的資料庫應用程式,請使用 Azure SQL Database (SQL Database) 或 Azure 虛擬機器中的 SQL Server:

    • 如果 SQL Database 支援所有必要功能,在 Azure 佈建新的 SQL Database 執行個體。透過適用於 Visual Studio、Java、PHP 或 Node.js 的 Azure SDK 和外掛程式,您可以開發新的資料庫應用程式。將應用程式部署到 Azure,並在 SQL Database 中建立資料表。

    • 如果 SQL Database 不支援所有必要功能,而且您不想要對應用程式資料庫的重新設計變更進行投資,請使用新的 管理入口網站所提供的 SQL Server 平台映像,來佈建新的虛擬機器。使用 SQL Server Data Tools,建立資料庫部署封裝。將此資料庫封裝部署到虛擬機器中的 SQL Server。您可以使用傳統的管理工具,例如 SQL Server Management Studio,管理、升級和監視您的資料庫。

  • 對於現有資料庫應用程式,請識別要先將哪些資料庫移轉到 Azure 虛擬機器中的 SQL Server。然後,遵循下列兩個選項之一:

    • 使用 System Center 2012 Virtual Machine Manager 實體轉換至虛擬機器 (P2V) 或虛擬轉換至虛擬 (V2V) 精靈,將實體或虛擬機器轉換成 Hyper-V VHD。使用 Add-AzureVHD Cmdlet,來將 VHD 檔案上傳到 Azure 儲存體。然後您可以使用上傳的 VHD,部署新的虛擬機器。您可以使用傳統的管理工具,例如 SQL Server Management Studio,管理、升級和監視您的資料庫。

    • 使用 Azure 管理入口網站所提供的 SQL Server 平台映像,以及應用程式層雲端計算資源,佈建新的虛擬機器。使用 SQL Server Data Tools 和 SQL Server Management Studio,建立資料庫部署封裝。透過適用於 Visual Studio、Java、PHP 或 Node.js 的 Azure SDK 和外掛程式,將現有的應用程式層移轉到 Azure 專案。將應用程式層部署到 Azure,並存取雲端上的資料。

當您將資料庫和資料移轉至 Azure 虛擬機器中的 SQL Server 時,請依照指定順序執行下列步驟:

  1. 使用 DAC、備份或卸離,準備內部部署的資料庫結構描述和資料檔。如需詳細資訊,請參閱以下的<如何準備內部部署結構描述和資料,並將它們上傳至虛擬機器中的 SQL Server 執行個體>。

  2. (選擇性) 傳送至 Azure 之前,先壓縮及加密檔案。

  3. 將資料庫結構描述、資料和記錄檔傳送到 Azure。如果您使用 Add-AzureVHD Cmdlet,請先將檔案儲存在虛擬硬碟 (VHD),然後再將 VHD 上傳到 Azure。如需詳細資訊,請參閱以下的<如何將資料庫結構描述和資料檔移至 Azure 虛擬機器>。

  4. 將資料庫結構描述和資料檔載入到虛擬機器中的 SQL Server。如需詳細資訊,請參閱以下的<如何準備內部部署結構描述和資料,並將它們上傳至虛擬機器中的 SQL Server 執行個體>。

  5. 在 Azure 虛擬機器的 SQL Server,重新建立移轉工具所無法建立的任何中繼資料。

從 SQL Server 2014 版本開始,您也可以使用 SQL Server Management Studio 將 SQL Server 資料庫部署至 Azure VM 精靈,藉以將資料庫從 Database Engine 的執行個體部署至 Azure 虛擬機器中的 SQL Server。如需詳細資訊,請參閱將 SQL Server 資料庫部署到 Azure 虛擬機器

本節描述如何準備內部部署的資料庫結構描述和資料檔。您可以根據需求選擇幾個選項:

您可以使用資料層應用程式 (DAC),準備要從內部部署傳送到 Azure 的資料庫結構描述和資料檔:

  • .DACPAC 檔案:.dacpac 檔案包含與使用者資料庫相關聯的所有 SQL Server 物件 (例如資料表、檢視表和執行個體物件) 定義。DACPAC 專注於擷取及部署資料庫結構描述,包括升級現有資料庫。如需有關從現有的 SQL Server 資料庫中擷取資料層應用程式 (DAC) 封裝的詳細資訊,請參閱<從資料庫中擷取 DAC>。

  • .BACPAC 檔案:.bacpac 檔案包含資料庫結構描述,以及儲存在資料庫中的資料。BACPAC 著重於擷取結構描述和資料。它是資料庫備份的邏輯對等項目,並不能用來升級現有資料庫。如需有關如何建立 .bacpac 檔案的詳細資訊,請參閱<匯出資料層應用程式>。

您可以將資料庫的結構描述和資料匯出至 BACPAC 檔案。然後,您可以將結構描述和資料匯入主機伺服器中的新資料庫。這些功能都受到資料庫管理工具支援:Server Management Studio 和 DACFx API。如需詳細資訊,請參閱 MSDN Library 中的<匯入 BACPAC 檔案以建立新的使用者資料庫>和<Microsoft.SqlServer.Dac 命名空間>。

注意:

  • DAC 作業不會自動加密 BACPAC 或 DACPAC 檔案。您應該確定在內部部署和 Azure 之間的通訊是安全的。此外,在 Azure Blob 儲存體或內部部署磁碟儲存體儲存 bacpac 或 dacpac 檔案時,您也可以分別加密檔案,取得額外的保護。

  • DAC 不支援全文檢索目錄。

  • 為了提高安全性,SQL Server 驗證登入會儲存在 DAC 封裝中,而且沒有密碼。當您部署或升級此封裝時,此登入會建立為停用的登入,而且會產生密碼。若要啟用登入,請使用具有 ALTER ANY LOGIN 權限的登入進行登入,並使用 ALTER LOGIN 來啟用登入,然後指派可以傳達給使用者的新密碼。Windows 驗證登入不需要這項處理,因為這類登入的密碼不是由 SQL Server 所管理。

若要將資料庫移到 SQL Server 的另一個執行個體或移到其他伺服器,您可以使用備份和還原作業。如果內部部署 SQL Server 和虛擬機器中的 SQL Server 具有相同的版本,您可以複製資料庫備份檔案至虛擬機器,然後再復原資料庫。如需詳細資訊,請參閱<SQL Server 資料庫的備份與還原>。

注意:

  • 備份與還原比 DAC 更快。

  • 您可以建立資料的壓縮備份。如需詳細資訊,請參閱<備份壓縮>。

  • 您可以使用現有和熟悉的工具 (例如 SQL Server Management Studio 備份精靈) 以及協力廠商工具。

  • 當您將資料庫移動到其他伺服器執行個體時,您必須在目的地伺服器執行個體上重新建立 master 和 msdb 中的相依實體及物件的所有中繼資料。如需詳細資訊,請參閱在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料

若要將資料庫移到 SQL Server 的另一個執行個體或移到其他伺服器,您可以使用卸離和附加作業。將資料檔 (.mdf 和 .ndf) 以及記錄檔 (.ldf) 複製到虛擬機器的本機資料夾,然後附加資料庫。如需詳細資訊,請參閱<使用卸離與附加移動資料庫>。

注意:

  • 卸離資料庫時會從 SQL Server 執行個體移除該資料庫,但會保留資料庫中的資料檔和交易記錄檔。這需要來源資料庫離線。這個選項適合升級資料庫或移動極大型資料庫。

  • 如果下列任一情況為真,則您不能卸離資料庫:

    • 資料庫已複寫和發佈。

    • 資料庫有資料庫快照集存在。

    • 資料庫正在資料庫鏡像工作階段中進行鏡像。

    • 資料庫受質疑。

    • 此資料庫是系統資料庫。

  • 建議您在卸離之前,先建立新的完整備份並重新啟動差異備份。

  • 執行資料庫中斷連接與連接作業時,您可以使用資料壓縮功能協助壓縮資料庫內的資料,並協助縮小資料庫的大小。此外,您可以對中斷連接的檔案使用不同的壓縮和解壓縮工具。

  • 將資料庫附加至另一個伺服器執行個體時,為了提供一致的經驗給使用者和應用程式,您可能會需要在其他伺服器執行個體上為資料庫重新建立部分或所有中繼資料,例如登入和作業。如需詳細資訊,請參閱在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料

您可以使用下列其他技巧,在伺服器之間複製或移動資料庫:

  • 您可以使用 SQL Server Management Studio 中的複製資料庫精靈,在伺服器之間複製或移動資料庫,或將 SQL Server 資料庫升級至更新版本。如需詳細資訊,請參閱<使用複製資料庫精靈>。如果您要使用此工具將資料庫從內部部署複製到 Azure,您需要設定 Azure 虛擬網路來建立混合連線。

  • SQL Server 匯入和匯出精靈提供讓您在資料來源之間複製資料以及建構基本封裝的方法。如需此精靈的詳細資訊,請參閱<SQL Server 匯入和匯出精靈>。「SQL Server 匯入和匯出精靈」的用途在於將資料從來源複製到目的地。這個精靈也可以為您建立目的地資料庫和目的地資料表。不過,如果您必須複製多個資料庫或資料表,或複製其他種類的資料庫物件,則應該改用「複製資料庫精靈」。如果您要使用 SQL Server 匯入和匯出精靈將資料庫從內部部署複製到 Azure,您需要設定 Azure 虛擬網路來建立混合連線。

  • 您可以使用 [產生和發佈指令碼精靈] 建立指令碼,以在不同的 SQL Server Database Engine 執行個體之間傳送資料庫。產生的指令碼可以在另一個 Database Engine 執行個體上執行。您也可以使用此精靈,將資料庫內容直接發佈到使用資料庫發佈服務所建立的 Web 服務。您可以針對整個資料庫建立指令碼,或將它限制為特定物件。如需詳細資訊,請參閱<產生和發佈指令碼精靈>。

  • 您可以使用 SQL Server 管理物件 (SMO) 程式庫的 Transfer 類別。如需詳細資訊,請參閱<傳送資料>。SMO 允許來源和目標資料庫持續在線上運作,而且不需要在個別的步驟中將資料庫檔案移入或移出 Azure Blob 儲存體。SMO 的缺點是用戶端會使用 TDS 連接到任一端的資料庫,對大型資料集效率不佳。

  • 傳送資料庫工作會在 SQL Server 的兩個執行個體之間,複製或移動 SQL Server 資料庫。資料庫可以使用線上或離線模式傳送。當您使用線上模式時,資料庫會保持附加狀態,並使用 SQL Management Object (SMO) 複製資料庫物件來進行傳送。當您使用離線模式時,會卸離資料庫,複製或移動資料庫檔案,並在傳送成功完成後將資料庫附加至目的地。

當使用遠端桌面連接時,您可以使用複製/貼上,將小型檔案 (資料庫備份、BACPAC 或 DACPAC 檔案) 複製到虛擬機器。

若要傳送大型檔案,請選取下列其中一個選項:

  • 使用 Add-AzureVhd Cmdlet 來將 VHD 檔案上傳到 Azure。VHD 檔案可包含資料庫。如需詳細資訊,請參閱<建立和上傳包含 Windows Server 作業系統的虛擬硬碟>。

  • 將檔案上傳到 BLOB 儲存體 (和虛擬機器位在相同的資料中心),然後透過遠端桌面上傳至虛擬機器,並從 BLOB 儲存體下載檔案。如需詳細資訊,請參閱<了解雲端儲存體>。

  • 將結構描述和資料檔直接複製到虛擬機器中的共用資料夾。

  • 使用網頁瀏覽器,從網際網路下載資料庫。例如,您可以從 codeplex 下載 AdventureWorks 資料庫。

下表說明將檔案移至 Azure 虛擬機器時所能使用的一些常見傳輸方法。此表格也說明每個方法的優點和缺點。

 

傳送方法 優點 缺點

使用 add-AzureVhd Cmdlet,將 VHD 複製到 Azure Blob 儲存體

  • 快速,針對 Azure 最佳化

  • 工具可處理不可靠的連接

  • 安全傳送

  • Microsoft 提供 Add-AzureVhd Cmdlet。如果需要圖形化使用者介面,您目前可以使用協力廠商工具。

  • 在使用 Add-AzureVhd Cmdlet 將 VHD 上傳到 Azure 之前,您必須準備 VHD,然後在入口網站上建立並上傳管理憑證。

  • 您必須將上傳的 VHD 附加至 Azure 虛擬機器,當作資料磁碟。

檔案複製到虛擬機器共用

  • 方便好用

  • 有多個可用的用戶端工具

  • 檔案直接放在虛擬機器

  • 它需要 VPN 連接。

  • 只有少數檔案複製工具支援重新啟動及繼續。

如需如何在虛擬機器中安裝、設定和部署 SQL Server 的詳細資訊,請參閱<教學課程:在 Azure 上佈建 SQL Server 虛擬機器>。本教學課程說明如何使用 Azure 管理入口網站,從映像庫中選取並安裝虛擬機器。此外,它也說明如何使用遠端桌面連接到虛擬機器,以及如何使用 SQL Server Management Studio 連接到虛擬機器中的 SQL Server。

如需更完整的資訊,請參閱<準備移轉到 Azure 虛擬機器中的 SQL Server>和<Azure 虛擬機器中的 SQL Server 部署>。

另請參閱

顯示:
© 2014 Microsoft