受控執行個體連結的概觀
適用於: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 和 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 版本功能:
初始主要版本 | 作業系統 (OS) | 單向複寫 | 災害復原選項 | 維護更新需求 |
---|---|---|---|---|
Azure SQL 受控執行個體 | Windows Server 和 Linux | 正式推出 | 雙向 | - SQL Server 2022 CU10 (KB5031778):建立從 Azure SQL 受控執行個體到 SQL Server 2022 1 的連結 - SQL Server 2022 CU13 (KB5036432):使用 Transact-SQL 容錯移轉該連結 – 只有使用 SQL Server 2022 更新原則設定的執行個體,才支援從 Azure SQL 受控執行個體到 SQL Server 2022 的連結設定 |
SQL Server 2022 (16.x) | Windows Server 和 Linux | 正式推出 | 雙向 | SQL Server 2022 RTM |
SQL Server 2019 (15.x) | 僅限 Windows Server | 正式推出 | 僅限從 SQL Server 至 SQL MI | SQL Server 2019 CU20 (KB5024276) |
SQL Server 2017 (14.x) | N/A | N/A | N/A | 目前不支援 Linux SQL Server 2017。 |
SQL Server 2016 (13.x) | 僅限 Windows Server | 正式推出 | 僅限從 SQL Server 至 SQL MI | 最新的 SQL Server 2016 SP3 組建和相符的 SQL Server 2016 Azure Connect 套件組建 |
SQL Server 2014 (12.x) 和以下版本 | N/A | 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 20.2 或更新版本 | SQL Server Management Studio (SSMS) 是使用受控執行個體連結的最簡單方式,因為它會提供自動化執行連結設定的精靈。 |
Az.SQL 3.9.0 或更新版本 | 手動設定步驟需要 PowerShell 模組。 |
注意
受控執行個體連結功能適用於所有公用 Azure 區域和國家或政府雲端。
連結如何運作
SQL 受控執行個體連結功能背後的基礎技術在於建立 SQL Server 與 Azure SQL 受控執行個體之間的分散式可用性群組。 解決方案支援沒有現有可用性群組的單一節點系統,或是具有或不具有現有可用性群組的多重節點系統。
在內部部署網路與 Azure 之間使用的私人連線能力,例如 VPN 或 Azure ExpressRoute。 如果 SQL Server 裝載於 Azure VM 上,則內部 Azure 骨幹可在 VM 與受控執行個體之間使用 – 例如,虛擬網路對等互連。 這兩個系統之間的信任是使用憑證型驗證建立的,在此驗證中,SQL Server 和 SQL 受控執行個體會交換其相應憑證的公開金鑰。
Azure SQL 受控執行個體支援從相同或各種 SQL Server 來源到單一 Azure SQL 受控執行個體的多個連結,只受限於可同時裝載在受控執行個體上的資料庫數目 – 一般用途和業務關鍵服務層級最多為 100 個連結,而下一代一般用途層升級為 500 個。 同樣地,在資料庫和受控執行個體之間的一對一關係中,單一 SQL Server 執行個體可與數個受控執行個體建立多個平行資料庫同步連結,甚至可在不同 Azure 區域這麼做。
使用連結
為了協助進行初始環境設定,請檢閱下列指南,介紹如何將您的 SQL Server 環境準備好,以搭配 SQL 受控執行個體的連結功能使用:
- 讓環境為連結做好準備 (適用於 SQL Server 2019 及更新版本或適用於 SQL Server 2016)
- 您可以使用可下載的指令碼,以便自動讓環境為受控執行個體連結做好準備。 請檢閱自動化連結設定部落格以詳細了解。
確保符合初始環境需求後,可以使用 SQL Server Management Studio (SSMS) 中的自動化精靈來建立連結,或者可以選擇使用指令碼手動設定連結:
建立連結之後,請遵循維護連結的最佳做法:
災害復原
受控執行個體連結可實現災害復原,若發生災害,可以手動將工作負載從主要複本容錯移轉至次要複本。 若要開始使用,請檢閱使用受控執行個體連結執行災害復原。
若使用 SQL Server 2016 及 SQL Server 2019,則主要複本一律是 SQL Server,而且到次要受控執行個體的容錯移轉是單向的。 不支援容錯回復到 SQL Server。 不過,可以使用諸如異動複寫或匯出 bacpac 等資料移動選項將資料復原到 SQL Server。
若使用 SQL Server 2022,則 SQL Server 或 SQL 受控執行個體可以是初始主要複本,您可以從 SQL Server 或 SQL 受控執行個體建立連結。 您可以在主要複本和次要複本之間對工作負載執行容錯回復,從而實現真正的雙向災害復原。
容錯回復至 SQL Server 時,可以選擇以下容錯回復方式:
- 線上方式,即直接使用受控執行個體連結。
- 離線方式,即從 SQL 受控執行個體擷取資料庫備份,然後將其還原至 SQL Server 2022 執行個體。
使用 Azure 服務
藉由使用連結功能,以利用 SQL Server 資料來利用 Azure 服務,而無需移轉至雲端。 範例包括報告、分析、備份、機器學習,以及將資料傳送至 Azure 的其他作業。
將工作負載卸載至 Azure
您也可以使用連結功能,將工作負載卸載至 Azure。 例如,應用程式可以將 SQL Server 用於讀取/寫入工作負載,同時將唯讀工作負載卸載至 Azure 全球區域中任何一個 SQL 受控執行個體部署。 建立了連結後,SQL Server 上的主要資料庫就可供讀取/寫入,同時複寫至 Azure 中您的受控執行個體的資料是可唯讀存取的。 這種安排允許各種案例,其中您受控執行個體上的複寫資料庫可以用於讀取縮放,並將唯讀工作負載卸載至 Azure。 您的受控執行個體也可以採取平行方式裝載獨立的讀取/寫入資料庫。 這允許將複寫的資料庫複製到相同受控執行個體上的另一個讀取/寫入資料庫,以進行進一步的資料處理。
連結受資料庫範圍限定 (每個資料庫一個連結),這允許在 Azure 中合併和解除合併工作負載。 例如,您可以從多部 SQL Server 執行個體將資料庫複寫至 Azure 中的單一 SQL 受控執行個體部署 (合併),或您可以透過資料庫與受控執行個體之間的一對一關係,從單一 SQL Server 執行個體將資料庫複寫至多個受控執行個體,再複寫至全球任一 Azure 區域 (解除合併)。 後者的選項為您提供一種有效方式,快速地讓您的工作負載接近全球任何區域中的客戶,而您可以將其用作唯讀複本。
移轉至 Azure
連結功能也有助於從 SQL Server 移轉至 SQL 受控執行個體,這能啟用:
- 相較於現今所有其他可用的解決方案,效能最高、停機時間最低的移轉。
- 任何服務層級中 SQL 受控執行個體的真正線上移轉。
因為連結功能啟用停機時間最短的移轉,因此您可以移轉至受控執行個體,同時維持主要工作負載連線。 雖然目前可以透過其他解決方案將線上移轉至常規用途服務層級,但連結功能是唯一允許線上移轉至業務關鍵層的解決方案。
複製內部部署的資料
使用 SQL Server 2022,您可以建立從 SQL 受控執行個體到 SQL Server 的連結,從而解鎖更多案例,例如在 Azure 外部建立近即時的資料庫複本、測試商務持續性計劃,以及符合合規性需求。
自動備份
設定與 Azure SQL 受控執行個體的連結後,受控執行個體上的資料庫將自動備份至 Azure 儲存體,無論 SQL 受控執行個體是否為主要複本。 具有連結的自動備份會進行完整備份和交易記錄備份,但不會進行差異備份,這可能會導致還原時間更長。
您可以降低內部部署的管理和作業成本,同時複寫的資料庫也具有 Azure 備份的可靠性。 然後,您可以在相同區域中的任何 SQL 受控執行個體部署執行複寫資料庫的時間點還原,就像任何其他自動備份一樣。
免授權被動 DR 複本
若您只是為了實現次要被動災害復原而針對沒有任何工作負載的 SQL 受控執行個體啟用混合式容錯移轉權益,則可以節省虛擬核心的授權成本。
若要開始使用,請檢閱免授權被動複本。
成本效益
若您指定受控執行個體複本僅用於災害復原,則 Microsoft 不會針對次要執行個體所使用的虛擬核心而向您收取 SQL Server 授權費用。 請注意,對執行個體的計費以小時為單位,若您更新授權權益的時間不滿一小時,可能仍需要支付滿一小時的授權費用。
隨用隨付計費模型與 Azure Hybrid Benefit 表現出不同的權益。 對於隨用隨付計費模型,會在發票上提供虛擬核心折扣。 若將 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 可用性群組功能。 SQL Server 執行個體必須裝載於 Windows Server 2012 或更新版本。
- 連結功能不支援 SQL Server 版本 2008 到 2014,因為這些版本的 SQL 引擎不支援連結所需的分散式可用性群組內建支援。 升級至較新版本的 SQL Server 以使用連結。
- 已使用一律保持最新更新原則設定的執行個體,不支援從 SQL 受控執行個體至 SQL Server 2022 的資料複寫和容錯移轉。 必須已使用 SQL Server 2022 更新原則設定執行個體,才能執行以下動作:
- 建立從 SQL 受控執行個體至 SQL Server 的連結。
- 從 SQL 受控執行個體容錯移轉至 SQL Server 2022。
- 雖然您可以建立從 SQL Server 2022 至已設定一律保持最新的更新原則的 SQL 受控執行個體的連結,但容錯移轉至 SQL 受控執行個體之後,將無法再複寫資料或容錯回復至 SQL Server 2022。
資料複寫限制包括:
- 只有使用者資料庫可加以複寫。 不支援複寫系統資料庫。
- 此解決方案不會將伺服器層級物件、代理程式作業或使用者登入資訊從 SQL Server 複寫到受控執行個體。
- 對於 2016 和 2019 版 SQL Server,將使用者資料庫從 SQL Server 執行個體複寫到 SQL 受控執行個體部署是一種方式。 來自 SQL 受控執行個體部署的使用者資料庫無法複寫回 SQL Server 執行個體。 容錯回復至 SQL Server 執行個體的雙向複寫僅適用於 SQL Server 2022。
- 對於已連結的 SQL 受控執行個體資料庫,不支援在資料庫上設定從 SQL 受控執行個體到 SQL Server 的連結。
設定限制包含:
- 如果伺服器上有多個 SQL Server 執行個體,您可以設定每個執行個體的連結,但每個執行個體都必須設定為使用不同的資料庫鏡像端點,且每個執行個體都有專用連接埠。 只有預設執行個體應該針對資料庫鏡像端點使用連接埠 5022。
- 一個受控執行個體連結只能將一個資料庫放在單一可用性群組中。 不過,建立多個連結,即可在單一 SQL Server 執行個體中複寫多個資料庫。
- 單一受控執行個體可支援來自多個 SQL Server 執行個體的最多 100 個連結。
- 如果符合所選目標 SQL 受控執行個體部署的儲存體大小,則受控執行個體連結可以複寫任何大小的資料庫。
- SQL Server 與 SQL 受控執行個體之間的受控執行個體連結驗證是以憑證為基礎,且只能透過憑證交換來使用。 不支援使用 Windows 驗證建立 SQL Server 執行個體與受受控執行個體之間的連結。
- 僅支援 VNet 本機端點,以建立具有 SQL 受控執行個體的連結。
- 您無法使用公用端點或私人端點來建立與受控執行個體的連結。
- 無法複寫具有多個記錄檔的資料庫,因為 SQL 受控執行個體不支援多個記錄檔。
功能限制包括:
- 使用連結功能的執行個體不支援容錯移轉群組。 您無法在屬於容錯移轉群組的受控執行個體上建立連結,反過來說,您無法在已建立連結的執行個體上設定容錯移轉群組。
- 假如您正在使用異動資料擷取 (CDC)、記錄傳送或服務代理是搭配 SQL Server 上執行個體複寫的資料庫,當資料庫為移轉至 SQL 受控執行個體部署時,在容錯移轉至 Azure 期間,用戶端就必須使用目前全域主要複本的執行個體名稱進行連線。 這些設定應該手動重新設定。
- 如果您在移轉案例中,使用異動複寫搭配 SQL Server 執行個體上的資料庫,則在容錯移轉至 Azure 期間,SQL 受控執行個體部署上的異動複寫將失敗,應手動對其重新設定。
- 如果您使用分散式交易搭配從 SQL Server 執行個體複寫的資料庫,而且在移轉案例中,不會傳輸到雲端的分散式交易協調器功能。 因為 SQL 受控執行個體部署目前不支援具有 SQL Server 的分散式交易,所以移轉資料庫沒有涉入具有 SQL Server 的分散式交易的可能性。 SQL 受控執行個體目前僅支援其他受控執行個體之間的分散式交易。 如需詳細資訊,請參閱跨雲端資料庫的分散式交易。
- 若使用透明資料加密 (TDE) 對 SQL Server 資料庫進行加密,需要匯出 SQL Server 中的資料庫加密金鑰,並將其上傳至 Azure Key Vault,還需要在 SQL 受控執行個體上設定 BYOK TDE 選項,然後建立連結。
- 使用受服務管理的 TDE 金鑰加密的 SQL 受控執行個體資料庫無法連接至 SQL Server。 只有在資料庫是使用客戶自控金鑰加密,且目的地伺服器可以存取加密該資料庫所使用的相同金鑰時,才能將該加密資料庫連接至 SQL Server。 詳情請參閱使用 Azure Key Vault 設定 SQL Server TDE。
- 如果受控執行個體不支援在 SQL Server 執行個體上使用的功能,您就無法建立 SQL Server 與 SQL 受控執行個體之間的連結。 例如:
- 無法複寫具有檔案資料表和檔案資料流程的資料庫,因為 SQL 受控執行個體不支援檔案資料表或檔案資料流程。
- 對於使用記憶體內部 OLTP 的資料庫,只能將其複寫至 SQL 受控執行個體的業務關鍵服務層級,因為一般用途服務層級不支援記憶體內部 OLTP。 SQL 受控執行個體不支援具有多個記憶體內部 OLTP 檔案的資料庫,無法複寫這些資料庫。
若嘗試將不支援的功能新增至:
- SQL Server 2019 與 2022 中的複寫資料庫,會失敗並發生錯誤。
- SQL Server 2016 中的複寫資料庫,會導致連結中斷,隨後需要刪除並重新建立該連結。
如需 SQL Server 與 SQL 受控執行個體之間功能差異的完整清單,請參閱 SQL Server 中 T-SQL 與 Azure SQL 受控執行個體的差異。
相關內容
若要使用連結:
- 讓環境為受控執行個體連結做好準備
- 使用 SSMS 設定 SQL Server 與 SQL 受控執行個體之間的連結
- 使用指令碼設定 SQL Server 與 SQL 受控執行個體之間的連結
- 容錯移轉連結
- 使用連結移轉
- 維護連結的最佳做法
若要深入了解連結:
針對其他複寫和移轉案例,請考慮: