將資料移至 SQL 受控執行個體
許多移轉都會有一段內部部署和雲端資料庫必須保持同步的時期。 例如,用戶端可能要在某段時間,同時對兩個資料庫進行變更。
您已將體育零售產品的資料庫移轉至 Azure SQL 受控執行個體。 而網站已在使用雲端資料庫。 現在正要開始重新將用戶端設定為使用新的資料庫。 您已決定以分批的方式將使用者轉換至新的系統。 針對每個小組,您都要花一些時間來解決所有問題,之後再移轉下一批使用者。 這種方法可讓您在進行疑難排解和問題解決時,不會一次中斷所有使用者。 接下來,您要重新設定資料分析系統,以在 Azure 中使用新的資料庫。 在這段期間,您希望確保每小時都能同步處理一次雲端和內部部署資料庫。
您將探索實作資料同步處理的各種方法。 如果您只需要傳輸資料表的子集,這些方法也可以用於選擇性地移轉資料。 這種彈性讓您可採用更量身打造的方式移轉資料。
使用內部部署伺服器的連線選項
一般來說,您會想要將內部部署資料庫中的資料,與 Azure SQL 受控執行個體中的資料同步。 例如,可能想要籌畫用戶端應用程式移轉至新資料庫的作業,這表示會有一段時間用戶端要連線到這兩個資料庫。
選擇資料同步處理方法之前,請務必確認您的連線安全。 您有三種不同的連線選擇,可以在內部部署電腦與 Azure 中資源之間,建立通訊。
- 點對站。 點對站 (P2S) VPN 閘道連線可讓您建立從個別用戶端電腦至虛擬網路的安全連線。
- 站對站。 站對站 VPN 閘道可用於將整個內部部署網站連線至 Azure 網路。
- ExpressRoute。 您可利用 Azure ExpressRoute,在 Azure 資料中心和內部部署基礎結構或代管環境的基礎結構之間,建立私人連線。 ExpressRoute 連線不會經過公用網際網路,相較於一般的網際網路連線,更加可靠、速度更快、延遲更少且更為安全。
公用端點
SQL 受控執行個體的公用端點,可協助您從網際網路連線到資料庫,而無須使用 VPN,且僅適用於資料通訊。 資料的公用端點可以同時與私人端點並存。 基於安全性理由,在啟用公用端點時,此實作可確保資料庫管理員與網路系統管理員之間的職責區分 (SoD)。
若要為受控執行個體啟用公用端點,需要進行兩個步驟。 針對 SoD,需要兩個不同的角色 (具有下列資料庫和網路權限) 才可完成下列步驟:
- 具有 Microsoft.Sql/managedInstances/* 範圍中角色型存取控制權限的資料庫管理員必須執行 PowerShell 指令碼,才可啟用受控執行個體的公用端點。
- 具有 Microsoft.Network/* 範圍中角色型存取控制權限的網路系統管理員必須開啟網路安全性群組 (NSG) 上公用端點所使用的連接埠 3342,並提供 UDR 路由以避免非對稱的路由傳送。
選擇同步處理方法
您可以使用許多方法,將 SQL Database 受控執行個體的資料,同步處理到內部部署伺服器並傳回。
原生備份與還原
您可以使用共用存取簽章 (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 Database 相容,SQL 受控執行個體不支援在 Azure 入口網站中使用 BACPAC 進行移轉。 作為替代方案,SQLPackage 公用程式應該搭配 BACPAC 檔案一起使用。
大量複製程式 (BCP)
BCP 公用程式是一種命令列工具,將資料表匯出至檔案,以便您可以匯入這些資料表。 使用此方法,從單一 SQL Database 移轉至 Azure 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 位址,以及連線到內部部署網路的能力。
使用者和用戶端應用程式可以透過 Azure 入口網站、PowerShell、Azure CLI 和 REST API,連接到受控執行個體資料庫。
所有通訊都會使用憑證來加密及簽署。 為了檢查通訊方的可信度,受控執行個體會透過憑證撤銷清單持續驗證這些憑證。 如果憑證遭到撤銷,SQL 受控執行個體就會關閉連線來保護資料。