Azure SQL 托管实例连接类型

适用于:Azure SQL 托管实例

本文介绍客户端如何根据连接类型连接到 Azure SQL 托管实例。 下面提供了更改连接类型的脚本示例,以及有关更改默认连接设置的注意事项。

连接类型

Azure SQL 托管实例的 VNet 本地终结点支持以下两种连接类型:

  • 重定向(建议): 客户端直接与托管数据库的节点建立连接。 若要启用使用重定向的连接,必须打开防火墙和网络安全组以允许访问端口 1433 和 11000-11999。 数据包将直接发送到数据库,因此使用“通过代理重定向”可以改善延迟和吞吐量性能。 与代理相比,使用重定向连接类型还可以最小化网关组件的计划内维护事件的影响,因为连接一旦建立,就不再依赖网关。
  • 代理(默认值): 在此模式下,所有连接都使用代理网关组件。 若要启用连接,只需打开专用网络的端口 1433 和公共连接的端口 3342。 选择此模式可能导致延迟增大、吞吐量降低,具体取决于工作负荷的性质。 此外,网关组件的计划内维护事件会中断代理模式下的所有实时连接。 我们强烈建议使用重定向连接策略而不要使用代理连接策略,以最大程度地降低延迟和提高吞吐量,同时最小化计划内维护的影响。

重定向连接类型

重定向连接类型指与 SQL 引擎建立 TCP 会话后,客户端会话从负载均衡器获取虚拟群集节点的目标虚拟 IP。 后续数据包会绕过网关直接流向虚拟群集节点。 下图演示了此流量流。

Diagram shows an on-premises network with redirect-find-db connected to a gateway in an Azure virtual network and a redirect-query connected to a database primary node in the virtual network.

重要

重定向连接类型当前仅适用于 VNet 本地终结点。 无论连接类型设置如何,通过公共终结点进行的连接都将通过代理。

代理连接类型

代理连接类型指通过网关建立 TCP 会话,并且所有后续数据包通过网关传输。 下图演示了此流量流。

Diagram shows an on-premises network with a proxy connected to a gateway in an Azure virtual network, connect next to a database primary node in the virtual network.

更改连接类型

  • 使用门户:若要使用 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 -Environment AzureChinaCloud
# 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

后续步骤