本文介绍 Azure SQL 托管实例如何解析专用域名。
概述
在某些情况下,SQL Server 数据库引擎必须解析公共 DNS 记录中不存在的域名。 例如,以下场景可能涉及专用域名:
Azure SQL 托管实例部署在 Azure 虚拟网络 中,默认使用 Azure 提供的名称解析来解析 Internet 地址。
要更改默认名称解析行为并启用专用域名解析,可以执行以下操作:
- 使用 Azure 专用 DNS 区域:什么是 Azure 专用 DNS?
- 使用自定义 DNS 服务器:Azure 虚拟网络中资源的名称解析
重要
在将虚拟网络的 DNS 服务器从 Azure 更改为自定义服务器或反之亦然时,必须通知该虚拟网络中的 SQL 托管实例这一变化。 “ 更新 SQL 托管实例 ”部分对此进行介绍。
仅将 Azure 专用 DNS 区域附加到 SQL 托管实例的虚拟网络或更新 Azure 专用 DNS 区域时,无需执行此作。 这些更改会自动传播到 SQL 托管实例。
注意事项
- 请注意不要替代或禁用 Azure SQL 托管实例在内部使用的域名解析,详见网络约束部分所列。 始终配置自定义 DNS 服务器,以便它可以解析公共域名。
- 始终为希望由 Azure SQL 托管实例解析的服务(例如邮件服务器或本地 SQL Server 实例)使用完全限定域名 (FQDN)。 即使这些服务位于专用 DNS 区域中,也使用 FQDN。 例如,使用
smtp.contoso.com
。 创建链接服务器或配置引用同一虚拟网络中的 SQL Server VM 的复制也需要 FQDN 和默认 DNS 后缀,例如SQLVM.internal.chinacloudapp.cn
。
更新 SQL 托管实例
如果在具有现有 SQL 托管实例的虚拟网络中更改了 DNS 服务器设置,则托管这些实例的虚拟群集和基础计算机组需要与 DNS 配置中的更改同步。 更新虚拟群集会影响其中托管的所有 SQL 托管实例。
更新虚拟群集的 DNS 服务器设置时,虚拟网络上设置的自定义 DNS 服务器 IP 地址将成为该群集中实例的首选 DNS 服务器。 这些实例仍保留 Azure 的 DNS 解析程序地址作为备份,但现在首先使用自定义 DNS 服务器解析地址。
使用 Azure 门户更新现有虚拟群集的 DNS 服务器设置。
- 打开 Azure 门户。
- 使用要配置的子网中的 SQL 托管实例打开资源组,然后选择要为其更新 DNS 服务器设置的 SQL 托管实例 。
- 在“概述”中,选择实例所属的“虚拟群集”。
- 选择“同步 DNS 服务器设置”以更新群集。
验证配置
更新虚拟群集上的 DNS 服务器设置后,可以验证它现在是否对该群集中的 SQL 托管实例有效。 要完成此操作,一个方法是创建并运行一个 SQL Server 代理作业,输出当前在网络接口上配置的 DNS 服务器列表。
若要查看在 SQL 托管实例网络接口上配置的 DNS 服务器列表:
- 启动 SQL Server Management Studio。
- 连接到更新 DNS 设置的群集中的 SQL 托管实例。
- 在“对象资源管理器”中,展开“SQL Server 代理”。
- 右键单击“ 作业”,然后选择“ 新建作业...”。
- 一般情况下,写入作业的名称。 例如,“验证 DNS 设置”。
- 在“步骤”中,选择“新建...”。
- 写入步骤的名称。 例如,“run.”
- 将“类型”设置为 PowerShell。
- 在“命令”中,粘贴以下命令:
Get-DnsClientServerAddress
- 选择 “确定”,然后选择 “确定 ”以关闭这两个对话框窗口。
- 在 对象资源管理器中,右键单击创建的作业,然后在 步骤中选择“启动作业...”。作业将运行。
- 作业完成后,再次右键单击该作业,然后选择“查看历史记录”。
- 在“日志文件摘要”中,展开该作业并选择其下的第一个也是唯一的一个步骤。
- 在 “所选行详细信息”中,查看命令的输出,并确认它是否包含 DNS 服务器 IP 地址(es)。
权限
在虚拟网络中同步 DNS 服务器配置的用户:
- 应是“订阅参与者”角色的成员,或者
- 有一个具有
Microsoft.Sql/virtualClusters/updateManagedInstanceDnsServers/action
权限的自定义角色。