数据库镜像端点(SQL Server)

若要参与 AlwaysOn 可用性组或数据库镜像,服务器实例需要自己的专用 数据库镜像终结点。 此终结点是专用终结点,专用于接收来自其他服务器实例的连接。 在给定的服务器实例上,与任何其他服务器实例的每个 AlwaysOn 可用性组或数据库镜像连接都使用单一数据库镜像终结点。

数据库镜像终结点使用传输控制协议(TCP)在参与数据库镜像会话的服务器实例之间发送和接收消息,或托管可用性副本。 数据库镜像端点在唯一的 TCP 端口号上进行侦听。

注释

与主体服务器或主副本的客户端连接不使用数据库镜像终结点。

注释

数据库镜像功能将在Microsoft SQL Server 的未来版本中删除。 避免在新开发工作中使用此功能,并计划修改当前使用数据库镜像的应用程序,改用 AlwaysOn 可用性组。

服务器网络地址

服务器实例(其 服务器网络地址终结点 URL)的网络地址包含其终结点的端口号,以及其主机的系统和域名。 端口号唯一标识特定服务器实例。

下图说明了如何唯一标识同一服务器上的两个服务器实例。 两个服务器实例的服务器网络地址包含相同的系统名称和 MYSYSTEM域名 Adventure-Works.MyDomain.com。 为了使系统能够将连接路由到服务器实例,服务器网络地址包括与特定服务器实例的镜像终结点关联的端口号。

默认实例的服务器网络地址

默认情况下,SQL Server 的实例不包含数据库镜像终结点。 必须在设置数据库镜像会话时手动创建这些设置。 系统管理员必须在每个参与数据库镜像的服务器实例中创建单独的终结点。 请注意,如果给定计算机上的多个服务器实例需要数据库镜像终结点,请为每个终结点指定不同的端口号。

重要

如果运行 SQL Server 的计算机具有防火墙,防火墙配置必须允许终结点中指定的端口的传入和传出连接。

对于数据库镜像和 Always On 可用性组,身份验证和加密是在终结点上配置的。 有关详细信息,请参阅数据库镜像和 AlwaysOn 可用性组的传输安全性(SQL Server)。

重要

不要重新配置正在使用的数据库镜像终结点。 服务器实例使用彼此的终结点来了解其他系统的状态。 如果重新配置终结点,它可能会重启,这似乎是其他服务器实例的错误。 这对于自动故障转移模式尤其重要,在这种模式下,在合作伙伴上重新配置终结点可能会导致故障转移发生。

确定数据库镜像终结点的身份验证类型

请务必理解服务器实例的 SQL Server 服务帐户决定可用于数据库镜像终结点的身份验证类型,如下所示:

  • 如果每个服务器实例都在域服务帐户下运行,则可以对数据库镜像终结点使用 Windows 身份验证。 如果所有服务器实例都以相同的域用户帐户运行,则两个 master 数据库中都自动存在正确的用户登录名。 这简化了可用性数据库的安全配置,建议这样做。

    如果托管可用性组可用性副本的任何服务器实例都以不同的帐户身份运行,则必须在其他服务器实例的 master 中创建每个帐户的登录名。 然后,必须向该登录帐户授予 CONNECT 权限才能连接到该服务器的数据库镜像终结点。 更多信息,请参阅 为数据库镜像或 AlwaysOn 可用性组(SQL Server)设置登录帐户

    如果服务器实例使用 Windows 身份验证,则可以使用 Transact-SQL、PowerShell 或新建可用性组向导创建数据库镜像终结点。

    注释

    如果承载可用性副本的服务器实例缺少数据库镜像终结点,则“新建可用性组向导”可以自动创建使用 Windows 身份验证的数据库镜像终结点。 有关详细信息,请参阅 使用可用性组向导 (SQL Server Management Studio)

  • 如果任何服务器实例在内置帐户(例如本地系统、本地服务或网络服务)下运行,或者非域帐户,则必须使用证书进行终结点身份验证。 如果对数据库镜像终结点使用证书,系统管理员必须将每个服务器实例配置为在出站连接和入站连接上使用证书。

    没有使用证书配置数据库镜像安全性的自动化方法。 需要使用 CREATE ENDPOINT Transact-SQL 语句或 New-SqlHadrEndpoint PowerShell cmdlet。 有关详细信息,请参阅 CREATE ENDPOINT (Transact-SQL)。 有关在服务器实例上启用证书身份验证的信息,请参阅 使用数据库镜像终结点(Transact-SQL)的证书

相关任务

配置数据库镜像终结点

查看有关数据库镜像端点的信息

另请参阅

数据库镜像和 AlwaysOn 可用性组的传输安全性(SQL Server)
数据库镜像配置疑难解答 (SQL Server)
sys.dm_hadr_availability_replica_states(Transact-SQL)
sys.dm_db_mirroring_connections(Transact-SQL)