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 |
发布服务器的类型;可以为下列值之一:
|
publisher_data_source |
nvarchar(4000) |
发布服务器中 OLE DB 数据源的名称。 |