sp_validate_replica_hosts_as_publishers (Transact-SQL)

sp_validate_replica_hosts_as_publisherssp_validate_redirected_publisher 的扩展,它允许验证所有辅助副本,而不只是验证当前的主副本。 sp_validate_replicat_hosts_as_publisher 将验证整个 AlwaysOn 复制拓扑。 必须使用远程桌面会话在分发服务器上直接执行 sp_validate_replica_hosts_as_publishers,避免发生双跃点安全错误 (21892)。

主题链接图标 Transact-SQL 语法约定

语法

sp_validate_replica_hosts_as_publishers 
    [ @original_publisher = ] 'original_publisher',
    [ @publisher_db = ] 'database_name', 
    [ @redirected_publisher = ] 'new_publisher' output

参数

  • [ @original_publisher = ] 'original_publisher'
    最初发布数据库的 SQL Server 实例的名称。 original_publisher 的数据类型为 sysname,无默认值。

  • [ @publisher_db = ] 'publisher_db'
    要发布的数据库的名称。 publisher_db 的数据类型为 sysname,无默认值。

  • [ @redirected_publisher = ] 'redirected_publisher'
    为原始发布服务器/已发布数据库对调用 sp_redirect_publisher 时指定的重定向的目标。 redirected_publisher 的数据类型为 sysname,无默认值。

返回代码值

0(成功)或 1(失败)

结果集

无。

注释

如果发布服务器和发布数据库没有条目,则 sp_validate_redirected_publisher 将为输出参数 @redirected\_publisher 返回 null。 否则,在成功和失败的情况下都将返回关联的重定向发布服务器。

如果验证成功,则 sp_validate_redirected_publisher 会返回一个成功指示。

如果验证失败,则会引发相应的错误。 sp_validate_redirected_publisher 将尽可能地显示所有问题,而不只是显示第一个遇到的问题。

注意注意

在验证不允许读取访问或要求指定读取意图的辅助副本主机时,sp_validate_replica_hosts_as_publishers 将失败,并显示以下错误。

消息 21899,级别 11,状态 1,过程 sp_hadr_verify_subscribers_at_publisher,第 109 行

重定向的发布服务器“MyReplicaHostName”处的查询失败,该查询用于确定是否有原始发布服务器“MyOriginalPublisher”的订阅服务器的 sysserver 条目,出现错误“976”,错误消息“错误 976,级别 14,状态 1,消息:目标数据库‘MyPublishedDB’正参与某个可用性组,查询当前无法访问该数据库。 数据移动被挂起,或者未启用可用性副本以便用于读访问。 若要允许对该可用性组中的这一数据库和其他数据库进行只读访问,请对组中一个或多个辅助可用性副本启用只读访问权限。 有关详细信息,请参阅 SQL Server 联机丛书中的 ALTER AVAILABILITY GROUP 语句。”。

副本主机“MyReplicaHostName”遇到了一个或多个发布服务器验证错误。

权限

调用方必须为 sysadmin 固定服务器角色的成员、分发数据库的 db_owner 固定数据库角色的成员、或是与此发布服务器数据库相关联的已定义发布的发布访问列表的成员。

请参阅

参考

复制存储过程 (Transact-SQL)

sp_get_redirected_publisher (Transact-SQL)

sp_redirect_publisher (Transact-SQL)

sp_validate_redirected_publisher (Transact-SQL)