sp_validate_replica_hosts_as_publishers (Transact-SQL)

适用于:SQL Server

sp_validate_replica_hosts_as_publishers是一个扩展sp_validate_redirected_publisher,它允许验证所有辅助副本 (replica),而不仅仅是当前主副本 (replica)。 sp_validate_replica_hosts_as_publisher验证整个 AlwaysOn 副本 (replica)tion 拓扑。 sp_validate_replica_hosts_as_publishers 必须使用远程桌面会话直接在分发服务器上执行,以避免出现双跃点安全错误(21892)。

Transact-SQL 语法约定

语法

sp_validate_replica_hosts_as_publishers
    [ @original_publisher = ] N'original_publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @redirected_publisher = ] N'redirected_publisher' OUTPUT
[ ; ]

参数

[ @original_publisher = ] N'original_publisher'

最初发布数据库的 SQL Server 实例的名称。 @original_publishersysname,没有默认值。

[ @publisher_db = ] N'publisher_db'

要发布的数据库的名称。 @publisher_dbsysname,无默认值。

[ @redirected_publisher = ] N'redirected_publisher' OUTPUT

为原始发布服务器/发布的数据库对调用时 sp_redirect_publisher 重定向的目标。 @redirected_publisher是类型为 sysname 的 OUTPUT 参数,没有默认值。

返回代码值

0(成功)或 1(失败)。

结果集

无。

备注

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

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

如果验证失败,则会引发相应的错误。 sp_validate_redirected_publisher 尽最大努力提出所有问题,而不仅仅是第一次遇到的问题。

sp_validate_replica_hosts_as_publishers验证不允许读取访问的辅助副本 (replica)主机或要求指定读取意向时,失败并出现以下错误。

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

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

权限

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

另请参阅