复制分发常见问题


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1、
问题描述:
分发代理无法在“C:Program FilesMicrosoft SQL Server100COM”目录中创建临时文件。系统返回的错误代码为 5。 (源: MSSQL_REPL,错误号: MSSQL_REPL21100)
 
解决办法:
在订阅服务器上的SQLSERVER安装根文件夹“C:Program FilesMicrosoft SQL Server100COM”,为分发代理账户(xxxdistagentadmin)添加修改的权限。
 
 
2、
问题描述:
正在连接到分发服务器,代理消息代码 14080。 远程服务器不存在,未被指定为有效的发布服务器,或您无权查看可用的发布服务器。
 
解决办法:
在分发服务器上创建分发代理登录名和账户;在发布属性下的访问列表中,添加分发代理账户。
 
 
3、
问题描述:
所有者 xxxsql_admin_cc (拥有作业 )没有服务器访问权限。
 
解决办法:
将该作业的所有者更改为sa,重启分发代理;在发布属性下的访问列表中,添加分发代理账户。
 
 
4、
问题描述:
由于出现操作系统错误 3,进程无法读取文件。 (源: MSSQL_REPL,错误号: MSSQL_REPL20024)
 
解决办法:
将复制模式设置为推送订阅;在FTP共享文件夹上添加分发代理启动账户和FTP用户读取权限,并共享该文件夹。
 
 
5、
问题描述:
对带有“$”符号的共享文件夹的访问被拒绝。
 
解决办法:
更改分发服务器属性,重新设置网络共享文件夹路径为不带“$”;在发布属性中,不使用默认快照文件夹,将快照生成到其他有访问权限的文件夹中; 修改ftp站点属性,允许任何人访问,重启IIS服务。
 
6、
问题描述:
用服务器名连接服务器的时候报无法生成SSPI上下文,但是用IP地址可以用客户端登陆。
 
解决办法:
在hosts文件中增加服务器的IP地址和服务器名。
 
7、
问题描述:
应用复制的命令时在订阅服务器上找不到该行(源: MSSQLServer,错误号: 20598)
 
解决办法:
  (1)修改配置文件,然后新建一个新的配置文件,新建后修改-SkipErrors这一项,在“值”栏后输入20598,确定,然后使用新建的这个配置文件。重启代理。 
(2) 使用sp_setsubscriptionxactseqno 存储过程,跳过一个或多个导致错误的事务。
(3)在发布中取消该表的复制,然后再添加复制。
 
 
8、
问题描述:
快照代理无法启动,对路径“”的访问被拒绝。
 
解决办法:
更改快照代理启动账户为有权限的账户,或更改快照代理作业为sa ,主要是发布包中有推送订阅,也有请求订阅。
 
 
9、
问题描述:
代理消息代码 20033。 进程无法从 FTP 站点检索文件。
 
解决办法:
主要是FTP问题,发布和订阅要通过公网连接,不采用请求订阅,改为推送订阅模式。
 
 
10、
问题描述:
消息 21618,级别 16,状态 1,过程 sp_MSreplagentjobexists,第 116 行
发布服务器不存在。若要查看发布服务器的列表,请使用存储过程 sp_helpdistpublisher。
解决办法:
发布的数据库是拷贝其他数据库的,包括复制的一些系统表也复制过来了,在发布库上执行如下代码:
Exec sp_removedbreplication @dbname =<dbname>
 
 
11、
问题描述:
尝试的命令:if @@trancount > 0 rollback tran(事务序列号: 0x000019AB0001E7A7019200000000,命令 ID: 7275),进程无法从 FTP 站点“DB-DISTBACK01”检索文件“”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20033)
 
解决办法:
使用sp_change_subscription_properties更改订阅属性,不使用ftp。
 
 
12、
问题描述:
进程无法在“”上执行“sp_repldone/sp_replcounters”。 (Source: MSSQL_REPL, Error number: MSSQL_REPL20011)
 
解决办法:
在发布数据库上执行 sp_replflush存储过程。
 
 
13、
问题描述:
进程无法在“”上执行“sp_replcmds”。
 
 
解决方法:
权限问题:将数据库所有者改为sa或其它配置分发时指定的账号。即账号要在数据库上有dbo_owner权限
ALTER AUTHORIZATION ON DATABASE::[OA] TO [sa]