適用於:Azure SQL 受控執行個體
本文提供受控執行個體連結的概述,可啟用 SQL Server 與 Azure SQL 受控執行個體 之間的幾乎即時數據複寫。 連結提供混合式彈性和資料庫行動力,因為這可以啟用多種情境,例如擴展唯讀工作負載、將分析和報告轉移至 Azure,以及遷移至 Azure。 而且,透過 SQL Server 2022,連結可讓在線災害復原與容錯回復到 SQL Server,以及設定從 SQL 受管理執行個體 到 SQL Server 2022 的連結。
若要開始,請檢閱準備您的環境以供連結。
概觀
受控執行個體連結會使用 分散式可用性群組 ,以安全可靠的方式擴充您的資料資產。 它會將資料從裝載於任何地方的 SQL Server 近乎即時地複寫至 Azure SQL 受控執行個體,或從 Azure SQL 受控執行個體複寫至裝載在任何地方的 SQL Server 2022。
連結支援單一節點,也支援具有或無現有可用性群組的多重節點 SQL Server 執行個體。 透過連結,您可以利用 Azure 的優勢,無需將 SQL Server 資料資產移轉至雲端。
雖然連結支援每個連結複寫一個資料庫,但您可以設定多個連結,將多個資料庫從單一 SQL Server 執行個體複寫到一或多個 SQL 受控執行個體,或將相同的資料庫複寫到多個 SQL 受控執行個體,方法是設定多個連結 - 每個資料庫到受控執行個體配對的一個連結。
連結功能目前提供下列特性:
- SQL Server 2016、2017 和 2019 版的單向複寫:使用連結功能將數據從 SQL 實例單向復寫至 Azure SQL 受控實例。 雖然您可以在發生災害時手動切換至受管理的執行個體,但這樣做會中斷連結,而且不支援恢復。
- 災害復原 (SQL Server 2022):使用連結功能在 SQL Server 2022 與 SQL 受控執行個體之間複寫資料、在災害期間手動容錯移轉至次要,並在緩解災害之後容錯回復至主要資料庫。 SQL Server 或 SQL 受控執行個體可以作為初始的主要伺服器。
您可以在需要時連續使用這個連結,甚至長達數月或數年。 而在您現代化的過程中,如果或當您準備好移轉至 Azure 時,連結會帶來一定程度的改善移轉體驗。 透過此連結進行移轉,與所有其他可用的移轉選項相比,提供最短的停機時間,實現真正的線上移轉至您的 SQL 受控執行個體。
您可以針對數個案例使用透過 SQL Server 與 Azure SQL 受控執行個體之間的連結複寫的資料庫,例如:
- 災害復原
- 使用 Azure 服務,而無需移轉至雲端
- 將唯讀工作負載卸載到 Azure
- 遷移至 Azure
- 複製本地端資料
版本可支援性
Azure SQL 受控執行個體的一般用途和業務關鍵服務層級都支援受控執行個體連結。 連結功能可與 SQL Server 的 Enterprise、Developer 和 Standard 版本搭配使用。
從 SQL Server 到 Azure SQL 管理實例的單向複寫功能,通常適用於所有支援的 SQL Server 版本。 自 SQL Server 2022 起,支援具備雙向複寫與失敗回溯的災難復原,並依據 SQL 管理實例所設定的 更新政策 而定。
下表列出連結功能和有支援的最低 SQL Server 版本功能:
| 初始主要版本 | 作業系統 (OS) | 災害復原選項 | 最低限度維修需求更新 |
|---|---|---|---|
| Azure SQL 受控執行個體 | Windows Server 和 Linux 的次要 SQL Server 實例複本 | 雙向 | 從 Azure SQL 管理實例設定連結到雙向故障轉移,支援以下方式: - SQL Server 2025 與 SQL MI 搭配 SQL Server 2025 更新政策 - SQL Server 2022 與 SQL MI 搭配 SQL Server 2022 更新政策 |
| SQL Server 2025 (17.x) | Windows Server 和 Linux | 雙向 | SQL Server 2025 RTM (17.0.1000.7) |
| SQL Server 2022 (16.x) | Windows Server 和 Linux | 雙向 | - SQL Server 2022 RTM(16.0.1000.6):在SQL Server 2022上建立連結到SQL MI - SQL Server 2022 CU10 (16.0.4095.4):建立從 SQL MI 到 SQL Server 20221 的連結 - SQL Server 2022 CU13 (16.0.4125.3):使用 Transact-SQL 失敗於連結上 |
| SQL Server 2019 (15.x) | 僅限 Windows Server | 僅限從 SQL Server 到 SQL MI | SQL Server 2019 CU20 (15.0.4312.2) |
| SQL Server 2017 (14.x) | 僅限 Windows Server | 僅限從 SQL Server 到 SQL MI | SQL Server 2017 CU31 (14.0.3456.2) 及相應的 SQL Server 2017 Azure Connect pack (14.0.3490.10) |
| SQL Server 2016 (13.x) | 僅限 Windows Server | 僅限從 SQL Server 到 SQL MI | SQL Server 2016 SP3 (13.0.6300.2) 及相應的 SQL Server 2016 Azure Connect pack (13.0.7000.253) |
| SQL Server 2014 (12.x) 和更早版本 | N/A | N/A | 不支援比 SQL Server 2016 更舊的版本。 |
1 從 SQL Server 2022 的 RTM 版本開始,支援使用作為初始主要複本的 SQL Server 2022 來建立連結;只有從 SQL Server 2022 CU10 開始,才支援使用作為初始主要複本的 Azure SQL 受控執行個體來建立連結。 如果您從 SQL 受控實例的初始主節點建立連結,則在連結處於作用中時,不支援將 SQL Server 降級至 CU10 以下,因為這會導致在任一方向進行容錯移轉後出現問題。
不支援 SQL Server 2016 之前的版本 (SQL Server 2008 - 2014),因為連結功能依賴 SQL Server 2016 引進的分散式可用性群組技術。
除了受支援的 SQL Server 版本之外,您需要:
- 您的 SQL Server 實例和受控執行個體之間的網路連線能力。 如果 SQL Server 是在內部部署上執行,請使用 VPN 連結或 Azure ExpressRoute。 如果 SQL Server 在 Azure 虛擬機器上執行 (VM),請將 VM 部署至與受控執行個體相同的虛擬網路,或使用虛擬網路對等互連來連線這兩個不同的子網路。
- 在任何服務層級上配置的 Azure SQL 受控執行個體部署。
您還需要以下工具:
| 工具 | 附註 |
|---|---|
| 最新的 SSMS | SQL Server Management Studio (SSMS) 是使用受控執行個體連結的最簡單方式,因為它會提供自動化執行連結設定的精靈。 |
| 最新的 Az.SQL 或 Azure CLI | 如需透過腳本進行連結設定。 |
注意
受控實例連結功能適用於所有全域 Azure 區域和國家或政府雲端。
連結如何運作
SQL 受控執行個體的連結功能可在 SQL Server 與 Azure SQL 受控執行個體之間建立分散式可用性群組。 解決方案支援沒有現有可用性群組的單一節點系統,或是具有或不具有現有可用性群組的多重節點系統。
私人連線,例如 VPN 或 Azure ExpressRoute,會連線內部部署網路和 Azure。 如果您在 Azure VM 上託管 SQL Server,Azure 的內部骨幹網路可以連線 VM 和 SQL 受控執行個體,例如使用虛擬網路對等互通。 這兩個系統會使用憑證型驗證來建立信任,其中 SQL Server 和 SQL 受控執行個體會交換其各自憑證的公開金鑰。
Azure SQL 受控執行個體支援從相同或不同的 SQL Server 來源到單一 Azure SQL 受控執行個體的多個連結。 連結數目取決於受控執行個體可同時裝載的資料庫數目 - 一般用途和業務關鍵服務層級最多 100 個連結,以及 下一代一般用途層級升級的 500 個連結。 單一 SQL Server 執行個體可以建立多個平行資料庫同步處理連結,與數個 SQL 受控執行個體 (即使在不同的 Azure 區域中),資料庫與受控執行個體之間具有一對一關聯性。
使用這個連結
若要協助您設定初始環境,請參閱準備 SQL Server 環境以搭配 SQL 受控執行個體使用連結功能的指南:
- 讓環境為連結做好準備 (適用於 SQL Server 2019 及更新版本或適用於 SQL Server 2016)
- 使用可下載的指令碼,自動準備受控執行個體連結的環境。 如需詳細資訊,請參閱自動化連結設定部落格。
符合初始環境需求之後,請使用 SQL Server Management Studio (SSMS) 中的自動化精靈來建立連結,或使用指令碼手動設定連結:
建立連結之後,請遵循最佳實務來維護連結:
災害復原
管理執行個體連結可實現災害復原功能,在發生災害時,您可以手動將工作負載從主要執行個體切換至次要執行個體。 若要開始使用,請檢閱受控執行個體的災害復原連結。
使用 SQL Server 2016 到 SQL Server 2019 時,主要伺服器一律是 SQL Server,而容錯移轉至次要 SQL 受控執行個體是單向的。 不支援容錯回復到 SQL Server。 不過,您可以使用資料移動選項 (例如 交易式複寫 或 匯出 bacpac) 將資料復原至 SQL Server。
在 SQL Server 2022 和 SQL Server 2025 中,SQL Server 或 SQL Managed Instance(搭配相應 更新政策)可以作為初始主節點,你可以從 SQL Server 或 SQL Managed Instance 建立連結。 您可以在主要和次要之間對工作負荷執行回切,從而實現真正的雙向災難復原。
當回切至 SQL Server 時,您可以選擇回切方式:
- 線上直接使用受控執行個體連結。
- 將您的資料庫從 SQL 管理實例備份離線,然後還原到 SQL Server 實例。
使用 Azure 服務
藉由使用連結功能,以利用 SQL Server 資料來利用 Azure 服務,而無需移轉至雲端。 範例包括報告、分析、備份、機器學習,以及將資料傳送至 Azure 的其他作業。
將工作負載卸載至 Azure
您也可以使用連結功能,將工作負載卸載至 Azure。 例如,應用程式可以將 SQL Server 用於讀取/寫入工作負載,同時將唯讀工作負載卸載至 Azure 全球區域中任何一個 SQL 受控執行個體部署。 建立連結之後,SQL Server 上的主要資料庫可讀寫,而複製到 Azure 中 SQL 受控執行個體的資料則可唯讀。 此安排允許多種場景,其中,SQL 受控執行個體上的複寫資料庫可用於讀取擴展,並卸載唯讀工作負載到 Azure。 您的 SQL 受控執行個體平行裝載獨立的讀取/寫入資料庫,這也容許將複寫的資料庫複製到相同 SQL 受控執行個體上的另一個讀取/寫入資料庫,以進行進一步的資料處理。
連結受資料庫範圍限定 (每個資料庫一個連結),這允許在 Azure 中合併和解除合併工作負載。 例如,您可以從多部 SQL Server 執行個體將資料庫複寫至 Azure 中的單一 SQL 受控執行個體部署 (合併),或您可以透過資料庫與受控執行個體之間的一對一關係,從單一 SQL Server 執行個體將資料庫複寫至多個受控執行個體,再複寫至全球任一 Azure 區域 (解除合併)。 後者選項提供了一種有效方式,能快速將您的工作負載拉近至全球任一地區的客戶,並可將其作為唯讀複本使用。
移轉至 Azure
連結功能也有助於從 SQL Server 移轉至 SQL 受控執行個體,這能啟用:
- 相較於今天市面上的其他方案,這是最具效能和停機時間最短的移轉。
- 在所有服務層級中實現 SQL 受控執行個體的真正線上遷移。
因為連結功能能夠實現最少停機時間的移轉,您可以在維持主要工作負載在線的同時,移轉到受管理的執行個體。 雖然目前可以透過其他解決方案達成在線移轉至 一般用途 服務層級,但連結功能是唯一允許在線移轉至 業務關鍵 服務層級的解決方案。 如需深入比較使用連結與使用 Log Replay Service 進行移轉的差異,請參閱 比較 Managed Instance 連結 與 LRS。
注意
您現在可以直接透過 Azure 入口網站將 Azure Arc 啟用的 SQL Server 執行個體移轉至 Azure SQL 受控執行個體。 如需詳細資訊,請參閱 移轉至 Azure SQL 受控執行個體。
複製本地端的資料
使用 SQL Server 2022,您可以建立從 SQL 受控執行個體到 SQL Server 的連結,從而解鎖更多案例,例如在 Azure 外部建立近即時的資料庫複本、測試商務持續性計劃,以及符合合規性需求。
自動備份
設定 Azure SQL 受控執行個體的連結之後,無論 SQL 受控執行個體是否為主要執行個體,SQL 受控執行個體上的資料庫都會自動備份至 Azure 儲存體。 具有連結的自動備份會進行完整備份和交易記錄備份,但不會進行差異備份,這可能會導致還原時間更長。
您可以降低內部部署的管理和作業成本,同時複寫的資料庫也具有 Azure 備份的可靠性。 然後,您可以對複寫的資料庫執行時間點還原,將其還原到相同區域內的任何 SQL 受控執行個體,就像執行其他任何自動備份一樣。
免授權被動 DR 複本
若您只是為了實現次要被動災害復原而針對沒有任何工作負載的 SQL 受控執行個體啟用混合式容錯移轉權益,則可以節省虛擬核心的授權成本。
若要開始使用,請檢閱免授權被動複本。
成本效益
若您指定受控執行個體複本僅用於災害復原,則 Microsoft 不會針對次要執行個體所使用的虛擬核心而向您收取 SQL Server 授權費用。 執行個體會以一小時精細度計費,如果您在一小時內更新授權權益,則可能仍會向您收取整整一小時的授權成本。
不同於 Azure 混合式權益,這項權益在隨用隨付計費模型中具有不同的運作方式。 在隨用隨付的計費模式下,虛擬核心會在發票上打折。 若將 Azure Hybrid Benefit 用於被動複本,會將次要複本所使用的虛擬核心數量傳回至授權集區。
例如,作為按需付費的客戶,如果您向次要執行個體分配了 16 個虛擬核心,當您將次要執行個體指定為混合式容錯移轉時,您的發票上將顯示 16 個虛擬核心的折扣。
再例如,若您有 16 個 Azure Hybrid Benefit 授權,且次要 SQL 受控執行個體使用 8 個虛擬核心,則在指定混合式容錯移轉的次要執行個體後,會將 8 個虛擬核心傳回至授權集區,供您用於其他 Azure SQL 部署。
如需混合式故障轉移許可權權益的精確條款及條件,請參閱 SQL Server – 故障轉移許可權 一節中的 SQL Server 授權條款在線。
限制
當您使用連結時,請考量下列限制。
版本支援性限制包括:
- 您無法使用 Windows 10 和 11 個用戶端來裝載 SQL Server 執行個體,因為無法啟用連結所需的 Always On 可用性群組功能。 您必須在 Windows Server 2012 或更新版本上裝載 SQL Server 執行個體。
- 連結功能不支援 SQL Server 2008 至 2014 版,因為這些版本的 SQL 引擎沒有連結所需的分散式可用性群組的內建支援。 升級至較新版本的 SQL Server 以使用連結。
- 已使用 Always-up-to-date 更新原則設定的執行個體,不支援從 SQL 受控執行個體到 SQL Server 2022 的資料複寫和容錯移轉。 必須將此執行個體設定為使用 SQL Server 2022 更新原則,才能執行以下動作:
- 建立從 SQL 受控執行個體至 SQL Server 的連結。
- 從 SQL 管理執行個體移轉至 SQL Server 2022。
- 雖然您可以建立從 SQL Server 2022 到設定為 Always-up-to-date 更新原則的 SQL 受控執行個體連結,但在容錯移轉至 SQL 受控執行個體之後,您無法複寫資料或容錯回復至 SQL Server 2022。
資料複寫限制包括:
- 您只能複製使用者資料庫。 不支援複寫系統資料庫。
- 此解決方案不會將伺服器層級物件、代理程式作業或使用者登入資訊從 SQL Server 複寫到受控執行個體。
- 對於 SQL Server 版本 2016、2017 和 2019,將使用者資料庫從 SQL Server 實例複寫到 SQL 受控實例部署是單向方式。 您無法透過連結將使用者資料庫從 SQL 受控執行個體部署複寫回 SQL Server 執行個體。 回切至 SQL Server 執行個體的雙向複寫僅在 SQL Server 2022 中提供。
- 已連結的 SQL 受控執行個體資料庫不支援設定從 SQL 受控執行個體到 SQL Server 的連結。
設定限制包含:
- 如果伺服器上有多個 SQL Server 執行個體,您可以為每個執行個體設定連結,但您必須將每個執行個體設定為使用個別的資料庫鏡像端點,每個執行個體都有專用連接埠。 只有預設執行個體應該使用 5022 作為資料庫鏡像端點的連接埠。
- 您只能將一個資料庫放入一個受控執行個體連結的單一可用性群組中。 不過,您可以藉由建立多個連結,在單一 SQL Server 執行個體中複寫多個資料庫。
- 您可以將現有的可用性群組與單一資料庫連結在一起。 如果您現有的可用性群組有多個資料庫,則只有在移除可用性群組以外的所有資料庫時,您才能建立與可用性群組的連結。
- 單一般用途或業務關鍵 SQL 受控實例最多可支援 100 個連結,而單一新一代一般用途 SQL 受控實例最多可支援 500 個連結、來自相同或多個 SQL Server 來源。
- 如果符合所選目標 SQL 受控執行個體部署的儲存體大小,則受控執行個體連結可以複寫任何大小的資料庫。
- SQL Server 與 SQL 受控執行個體之間的受控執行個體連結驗證是以憑證為基礎,且只能透過憑證交換來使用。 您無法使用 Windows 驗證來建立 SQL Server 執行個體與 SQL 受控執行個體之間的連結。
- 您只能建立 VNet 本機端點 至 SQL 受控執行個體的連結。
- 您無法使用公用端點或私人端點來建立與受控執行個體的連結。
- 您無法複寫具有多個記錄檔的資料庫,因為 SQL 受控執行個體不支援多個記錄檔。
功能限制包括:
- 您無法將 容錯移轉群組 與使用連結功能的執行個體搭配使用。 您無法在屬於容錯移轉群組的 SQL 受控執行個體上建立連結,相反地,您無法在已建立連結的執行個體上設定容錯移轉群組。
- 假如您正在使用異動資料擷取 (CDC)、記錄傳送或服務代理,這些工具與在 SQL Server 實例上已複寫的資料庫搭配使用,那麼當資料庫移轉到 SQL 受控執行個體時,在發生容錯移轉至 Azure 期間,用戶端需要使用當前全域主要副本的實例名稱來進行連線。 您需要手動重新配置這些設定。
- 如果您在具有已建立連結的資料庫上使用 事務複製 ,請考慮下列事項:
- 次要複本上的鏈接資料庫不能成為交易性複寫拓撲中的發行者。
- 如果您要使用 連結來移轉設定為事務複製拓撲中發行者的資料庫,則必須在移轉完成之後,將資料庫重新設定為目標實例上的發行者。
- 如果您使用分散式交易搭配從 SQL Server 執行個體複寫的資料庫,且在移轉過渡至雲端時,不會傳輸分散式交易協調器的功能。 因為 SQL 受控執行個體部署目前不支援具有 SQL Server 的分散式交易,所以移轉資料庫沒有涉入具有 SQL Server 的分散式交易的可能性。 SQL 受控執行個體目前僅支援其他受控執行個體之間的分散式交易。 如需詳細資訊,請參閱跨雲端資料庫的分散式交易。
- 如果您使用透明資料加密 (TDE) 來加密 SQL Server 資料庫,您必須從 SQL Server 匯出資料庫加密金鑰,並將其上傳至 Azure 金鑰保存庫,而且您也必須在建立連結之前在 SQL 受控執行個體上設定 BYOK TDE 選項。
- 您無法將使用服務受控 TDE 金鑰加密的 SQL 受控執行個體資料庫連結至 SQL Server。 只有在您使用客戶管理的金鑰加密的資料庫,且目的地伺服器可以存取用來加密資料庫的相同金鑰時,才能將加密資料庫連結至 SQL Server。 詳情請參閱使用 Azure Key Vault 設定 SQL Server TDE。
- 如果 SQL 受控執行個體不支援您在 SQL Server 執行個體上使用的功能,則無法在 SQL Server 與 SQL 受控執行個體之間建立連結。 例如:
- 您無法使用檔案資料表和檔案資料流程複寫資料庫,因為 SQL 受控執行個體不支援檔案資料表或檔案資料流程。
- 您只能將使用 In-Memory OLTP 的資料庫複寫至 業務關鍵 服務層級中的 SQL 受控執行個體,因為 一般用途 服務層級不支援 In-Memory OLTP。 SQL 受控執行個體不支援具有多個 In-Memory OLTP 檔案的資料庫,而且您無法複寫它們。
嘗試將不支援的功能新增到複寫資料庫:
- SQL Server 2017、2019 和 2022 失敗,並出現錯誤。
- SQL Server 2016 會導致中斷連結,然後您必須刪除並重新建立連結。
如需 SQL Server 與 SQL 受控執行個體之間功能差異的完整清單,請參閱 SQL Server 中 T-SQL 與 Azure SQL 受控執行個體的差異。
相關內容
若要使用連結:
- 讓環境為受控執行個體連結做好準備
- 使用 SSMS 設定 SQL Server 與 SQL 受控執行個體之間的連結
- 使用指令碼設定 SQL Server 與 SQL 受控執行個體之間的連結
- 連結故障轉移
- 使用連結移轉
- 維護連結的最佳做法
- 針對連結 的問題進行疑難解答
若要進一步了解此連結內容:
針對其他複製和移轉情境,請考慮: