Azure SQL 受控執行個體連線類型
適用於:Azure SQL 受控執行個體
本文將說明用戶端如何根據連線類型來連線到 Azure SQL 受控執行個體。 以下提供變更連線類型的指令碼範例,以及變更預設連線設定的相關考量。
連線類型
Azure SQL 受控執行個體的 VNet 本地端點支援下列兩個連線類型:
- 重新導向 (建議): 這是 SQL 用戶端連線到受控執行個體的慣用方式。 透過重新導向,用戶端可直接與託管資料庫的節點建立連線。 若要啟用重新導向,需要設定防火牆和網路安全性群組 (NSG),以允許在連接埠 1433 和連接埠範圍 11000-11999 上進行存取。 相較於代理,重新導向表現出優越的延遲和輸送量效能。 重新導向還可將閘道元件計劃性維護事件的影響將至最低,因為重新導向連線一旦建立,就不再依賴閘道。 重新導向功能依靠 SQL 驅動程式來了解 TDS (表格式資料流) 7.4 或更新版本。 TDS 7.4 首次與 Microsoft SQL Server 2012 一起發行,因此比這更新的任何用戶端都能夠運作。
- 代理 (預設):這是舊版連線機制,旨在支援實作 7.4 版之前的 TDS 版本的 SQL 驅動程式。 在此模式中,所有連線都會透過內部閘道進行代理,而且只需要開啟連接埠 1433。 在 Proxy 方法中,閘道會處理指示,以找出主要 SQL 復本節點以轉送連線。 根據此工作負載的性質,網關可能會瓶頸連線。 Proxy 模式可能會嚴重降低延遲,而且相較於重新導向,輸送量會降低,因為網關元件的計劃性維護事件較容易失去即時連線。 基於這個理由,強烈建議您將所有受控實例設定為使用重新導向連線原則,除非您的 SQL 用戶端不支援 TDS 重新導向。
請注意,重新導向選項只會對 VNet 本機端點產生影響。 Azure SQL 受控執行個體的公用端點和私人端點一律在代理模式中運作。
重要
強烈建議將所有受控實例設定為使用重新導向連線原則,但 SQL 用戶端不支援 TDS 重新導向時除外。
重新導向連線類型
在重新導向連線類型中,在對 SQL 引擎建立 TCP 工作階段之後,用戶端工作階段會從負載平衡器取得虛擬叢集節點的目的地虛擬 IP。 後續的封包會直接流向虛擬叢集節點,並略過閘道。 下圖說明此流量。
重要
重新導向連線類型目前僅影響 VNet 本機端點。 不論連線類型設定為何,經由公用或私人端點的連線都會使用代理連線類型來處理。
Proxy 連線類型
警告
只有不支援表格式資料流 (TDS) 標準 7.4 或更新版本 (自 SQL Server 2012 起提供) 的舊版用戶端和應用程式才建議使用代理連線類型。 受控執行個體應設定為盡可能使用重新導向連線類型。
在 Proxy 連線類型中,系統會使用閘道建立 TCP 工作階段,且所有後續封包都會流經此閘道。 下圖說明此流量。
變更連線類型
使用入口網站:若要使用 Azure 入口網站來變更連線類型,請開啟 [虛擬網路] 頁面,並使用 [連線類型] 設定來變更連線類型,並儲存變更。
使用 PowerShell 變更連線類型設定的指令碼:
注意
本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。
下列 PowerShell 指令碼說明如何將受控執行個體的連線類型變更為 Redirect
。
Install-Module -Name Az
Import-Module Az.Accounts
Import-Module Az.Sql
Connect-AzAccount
# Get your SubscriptionId from the Get-AzSubscription command
Get-AzSubscription
# Use your SubscriptionId in place of {subscription-id} below
Select-AzSubscription -SubscriptionId {subscription-id}
# Replace {rg-name} with the resource group for your managed instance, and replace {mi-name} with the name of your managed instance
$mi = Get-AzSqlInstance -ResourceGroupName {rg-name} -Name {mi-name}
$mi = $mi | Set-AzSqlInstance -ProxyOverride "Redirect" -force