將數據移至 SQL 受管理執行個體

已完成

許多移轉都會有一段內部部署和雲端資料庫必須保持同步的時期。 例如,用戶端可能要在某段時間,同時對兩個資料庫進行變更。

您已將體育零售產品資料庫移轉至 Azure SQL 受控執行個體。 而網站已在使用雲端資料庫。 現在正要開始重新將用戶端設定為使用新的資料庫。 您已決定以批次方式將用戶轉換為新的系統。 針對每個小組,您都要花一些時間來解決所有問題,之後再移轉下一批使用者。 這種方法可讓您進行疑難解答和問題解決,而不會一次中斷所有使用者。 接下來,您要重新設定資料分析系統,以在 Azure 中使用新的資料庫。 在這段期間,您希望確保每小時都能同步處理一次雲端和內部部署資料庫。

您將探索實作數據同步處理的各種方法。 如果您只需要傳輸數據表的子集,這些方法也可以用於選擇性地移轉數據。 這種彈性可讓您更量身打造的數據遷移方法。

使用內部部署伺服器的連線選項

您通常會想要讓內部部署資料庫中的數據與 Azure SQL 受控執行個體 保持同步。 例如,可能想要籌畫用戶端應用程式移轉至新資料庫的作業,這表示會有一段時間用戶端要連線到這兩個資料庫。

選擇資料同步處理方法之前,請務必確認您的連線安全。 您有三種不同的連線選擇,可以在內部部署電腦與 Azure 中資源之間,建立通訊。

  • 點對站。 點對站 (P2S) VPN 閘道連線可讓您建立從個別用戶端電腦至虛擬網路的安全連線。
  • 站對站。 站對站 VPN 閘道可用於將整個內部部署網站連線至 Azure 網路。
  • ExpressRoute。 您可利用 Azure ExpressRoute,在 Azure 資料中心和內部部署基礎結構或代管環境的基礎結構之間,建立私人連線。 ExpressRoute 連線不會經過公用網際網路,相較於一般的網際網路連線,更加可靠、速度更快、延遲更少且更為安全。

公用端點

SQL 受管理執行個體的公用端點可協助您從因特網連線到資料庫,而不需使用 VPN,且專為數據通訊所設計。 資料的公用端點可以同時與私人端點並存。 基於安全性理由,在啟用公用端點時,此實作可確保資料庫管理員與網路系統管理員之間的職責區分 (SoD)。

若要為受控執行個體啟用公用端點,需要進行兩個步驟。 針對 SoD,需要兩個不同的角色 (具有下列資料庫和網路權限) 才可完成下列步驟:

  1. 在 Microsoft.Sql/managedInstances/* 範圍內具有角色型訪問控制許可權的資料庫管理員,必須執行 PowerShell 腳本,以啟用受控實例的公用端點。
  2. 在 Microsoft.Network/* 範圍內具有角色型訪問控制許可權的網路管理員,必須開啟網路安全組 (NSG) 上公用端點所使用的埠 3342,並提供 UDR 路由以避免非對稱路由。

Diagram showing how public endpoint works for Azure SQL Managed Instance.

選擇同步處理方法

您可以使用許多方法,將數據從 SQL 資料庫 受控實例同步處理到內部部署伺服器和備份。

原生備份與還原

您可以使用共用存取簽章(SAS),從 Azure Blob 儲存體 檔案還原 Azure SQL 受控執行個體 中的資料庫。

這牽涉到建立具有存取 Azure Blob 儲存體 的認證,然後使用 BACKUP DATABASE 命令搭配 COPY_ONLY 選項。 如果您的資料庫大於 200 GB,您可以藉由提供數個 URL 位置來使用等量備份。

BACKUP DATABASE YourDatabase TO URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak' WITH COPY_ONLY

若要在 SQL 受管理執行個體 中還原資料庫:

RESTORE DATABASE YourDatabase FROM URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak'

使用 SqlPackage 的 BACPAC 檔案

BACPAC 檔案基本上是資料庫的元數據和數據壓縮版本。 雖然此部署方法與 SQL 資料庫 相容,但 SQL 受管理執行個體 不支援在 Azure 入口網站 內透過 BACPAC 進行移轉。 或者, SQLPackage 公用程式 應該與 BACPAC 檔案搭配使用。

大量複製程式 (BCP)

BCP 公用程式是命令行工具,可將數據表匯出至檔案,以便匯入它們。 使用此方法從單一 SQL 資料庫 移轉至 SQL 受管理執行個體和移回。

Azure Data Factory (ADF)

Azure Data Factory 是針對數據移動和協調流程所建置,著重於擷取。 ADF 具有執行 SSIS 套件的整合運行時間支援,以及 SQL 受管理執行個體 的公用因特網支援。

異動複寫

異動複寫是在連續連線的資料庫伺服器之間移動資料的方法。

此流程從發行集資料庫物件和資料的快照開始。 建立初始快照集之後,發行者端數據或架構的任何後續變更通常會在發生時以近乎即時的方式傳遞至 Azure SQL 受控執行個體。

SQL 受管理執行個體 具有彈性,因為它可以是發行者、散發者和訂閱者。

複寫是其中一項可讓您複寫資料表不同部分的技術。 我們會將這些數據表元件 稱為文章。 接著,這項資料會傳送給散發者,由散發者將資料提供給任意數目的訂閱者。

需求

  • 連線會在複寫參與者之間使用 SQL 驗證。
  • 複寫所使用的工作目錄 Azure 儲存體 帳戶共用。
  • 在受控實例子網的安全性規則中開啟埠 445 (TCP 輸出),以存取 Azure 檔案共用。
  • 如果發行者或散發者位於受控實例上,且訂閱者位於內部部署,請開啟埠 1433 (TCP 輸出)。

將應用程式 連線 至 SQL 受控實例

SQL 受控實例必須放在專用於受控實例的 Azure 虛擬網路子網內。 此部署可為您提供安全的私人 IP 位址,以及連線到內部部署網路的能力。

Diagram showing how connectivity takes place in Azure SQL Managed Instance.

使用者和用戶端應用程式可以透過 Azure 入口網站、PowerShell、Azure CLI 和 REST API,連接到受控執行個體資料庫。

所有通訊都會使用憑證來加密及簽署。 為了檢查通訊方的可信度,受控執行個體會透過憑證撤銷清單持續驗證這些憑證。 如果憑證被撤銷,SQL 受控實例會關閉連線以保護數據。