SQL SERVER 2008 复制:复制创建快照文件时,发生: 由于发布服务器处于不活动状态,无法生成快照。

错误:

      异常类型: Microsoft.SqlServer.Replication.ReplicationAgentException 
      异常消息: 由于发布服务器处于不活动状态,无法生成快照。 
      消息代码: 54057

原因:

     通过 

     sp_helpdistpublisher [ [ @publisher=] 'publisher']
         [ , [ @check_user = ] check_user

     系统函数可以看到查询到发布服务器的相关属性,可以看到ACTIVE列的值为0,说明发布服务器处于不活动状态。

解决方法:

     通过

    sp_changedistpublisher [ @publisher = ] 'publisher'
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]

     系统函数将发布的服务器的ACTIVE属性修改为TRUE,现在启动快照代理就没有问题了。

 

如下是SQL SERVER 的相关帮助文档

sp_helpdistpublisher相关说明:

 

返回使用分发服务器的发布服务器的属性。 此存储过程在分发服务器上对任何数据库执行。

列名 数据类型 说明

name

sysname

发布服务器的名称。

distribution_db

sysname

指定的发布服务器的分发数据库。

security_mode

int

复制代理连接到发布服务器进行排队更新订阅时所用的安全模式,或者用于非 SQL Server 发布服务器的安全模式。

0 = SQL Server 身份验证

1 = Windows 身份验证

login

sysname

复制代理连接到发布服务器进行排队更新订阅时的登录名,或者用于非 SQL Server 发布服务器的登录名。

password

nvarchar(524)

返回的密码(采用简单加密格式)。 对于非 sysadmin 用户,密码为 NULL。

active

bit

指示远程发布服务器是否将本地服务器用作分发服务器:

0 = 否

1 = 是

working_directory

nvarchar(255)

工作目录的名称。

trusted

bit

指示发布服务器连接到分发服务器时是否需要密码。 对于 Microsoft SQL Server 2005 及更高版本,此参数应始终返回 0,表示需要密码。

thirdparty_flag

bit

指示发布是由 SQL Server 启用还是由第三方应用程序启用:

0 = SQL Server、Oracle 或 Oracle 网关发布服务器。

1 = 已使用第三方应用程序将发布服务器与 SQL Server 集成。

publisher_type

sysname

发布服务器的类型;可以为下列值之一:

  • MSSQLSERVER

  • ORACLE

  • ORACLE GATEWAY

publisher_data_source

nvarchar(4000)

发布服务器中 OLE DB 数据源的名称。

 

posted @ 2009-03-21 17:41  子产  阅读(1037)  评论(0编辑  收藏  举报