sqlserver本地订阅无法正常工作几个问题的总结

转载 2013年12月05日 16:30:44

首先可能会出现无法执行sp_replcmds的错误提示,这个问题主要需要将发布数据库的Owner设置为sa,并且执行下面的脚本。

use 数据名
EXEC sp_repldone @xactid =NULL, @xact_segno =NULL, @numtrans = 0, @time =0, @reset =1
EXEC sp_replflush
/*
i.  sp_repldone : 更新标识服务器的上次分布式事务的记录.
此存储过程在发布服务器的发布数据库上执行.
(当 xactid 为 NULL、xact_seqno 为 NULL 并且 reset 是 1 时,日志中的所有复制事务都标记为已分发。此过程在事务日志中存在不再有效的复制事务并且想截断该日志时很有用)
-----
ii. sp_replflush: 刷新项目高速缓存.
为获得高效率,项目定义存储在高速缓存中。每当修改或除去项目定义时,其它复制存储过程都使用 sp_seplflush。
只有一个客户端连接能够具有对给定数据库的日志读取器访问权。如果某个客户端具有对数据库的日志读取器访问权,则执行 sp_replflush 将导致该客户端释放其访问权。这样,其它的客户端就能使用 sp_replcmds 或 sp_replshowcmds 扫描事务日志。
*/

  这里要注意的是订阅服务器连接发布服务器所使用的sqlserver用户名我也都用了sa账户,用其他账户似乎无法正常工作。

  其次会碰到类似下面的报错

  SQLServerAgent   错误:   运行作业   HB-PUBLISH-hbonline-hbonlineAllTable-HB-BACK-HBOnline-ED02F412-2B7E-45E7-BFD0-0AD9BFF84440   的请求(来自   用户   sa)被拒绝,因为该作业已应   用户   sa   的请求正在运行.

  碰到这个问题首先是检查下sqlserver agent服务是否正常运行,其次就是看下上面所提到的发布服务器的数据库和订阅服务器的连接账户是否都设置成了sa账户。

  最后数据订阅正常运行后会发现没有数据的问题,查看详细错误会提示类似下面的错误

  由于出现操作系统错误 3,进程无法读取文件

  碰到这个问题可以参考下面这篇文章

 

错误消息:
由于出现操作系统错误 3,进程无法读取文件“D:\DBSYNC\unc\FLOORWEB_FLOORLINK2_TESTFLOOR\20081128174839\ufoCorpAccount_2.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20016)
获取帮助: http://help/MSSQL_REPL20016
系统找不到指定的路径。
(源: MSSQL_REPL,错误号: MSSQL_REPL3)

************************解决办法*****************************************************

就是订阅服务器读取不到快照文件夹位置.这也导致了“订阅服务器无法重新初始化非immediate_sync发布的订阅”。

可能的原因较多,1、没设置共享或者没共享给跟订阅服务器共同的账户权限;2、IPC连接被关闭,订阅服务器无法连接到发布服务器共享资源。

解决办法:

可以将快照文件夹D:\XX复制到订阅服务器F:\XX

某个订阅属性-》快照位置-》“备用文件夹”,快照文件夹-》F:\XX。应该就可以了。


1.首先,在创建发布时需要指定一个发布快照位置,并且会提示你订阅服务器可能无法访问该目录(不知你有没有注意),每次生成快照都会将快照文件放在该目录下。 
2.其次,在创建订阅时,需要你指定快照位置,一般为发布缺省位置(不知你这次注意没有) 
3.那么,要解决你的问题只有两种方式 
1)第一种:在创建发布和订阅时指定一个两个服务器都能访问的目录。 (上面案例就是此步遇到障碍)
2)第二种:每次自己将发布快照目录中的文件通过网络(或移动设备)拷贝到订阅指定的快照目录中。(上面解决办法就用该种)

创建sql数据库复制的发布、订阅的问题--异常处理

创建sql数据库复制的发布、订阅的问题处理2009-12-09 14:20操作使用的一些技巧(事务复制类型):1.如何修改一个已经发布的表的属性?将发布所有订阅删除,(发布不用删除),就可以在发布属性...

sqlserver 使用总结

一、sqlserver 排序  rank()函数 使用方法:和row_number() over(order by 字段名称 desc) 使用方法类似 eg: select  rank() ove...

使用SQL Server发布数据库快照遇到错误:对路径”xxxxx“访问被拒绝的解决方法

项目中需要用到数据库同步,所以上网找了一遍教程,我的转载地址:http://blog.csdn.net/huyu107/article/details/51097700,但是出现了错误:对路径”xxx...
  • huyu107
  • huyu107
  • 2016年04月11日 17:58
  • 1987

SQL Server 2005数据同步技术遇到的问题及解决方案

首先来看一下错误消息:   错误消息: 由于出现操作系统错误 3,进程无法读取文件“D:/DBSYNC/unc/FLOORWEB_FLOORLINK2_TESTFLOOR/20081128174...

SqlServer 无法为可更新的订阅设置发布服务器登录名 sp_link_publication

没有截图: 创建可更新订阅,正常创建了发布,在订阅端创建订阅,最后一步提示完成,却出现了警告: 无法为可更新的订阅设置发布服务器登录名。可能需要使用 sp_link_publication 直接在...

SQLServer 订阅过期解决方法

由于分发数据库执行一个较长的事务,达到了系统预定的72小时,导致了该订阅过期,数据库分发代理已不可再启用,提示错误如下: 错误信息:已将此(这些)订阅标记为不活动,必须将其重新初始化。需要删除...

SQLServer2008R2复制发布订阅(含局域网跨网段)调试总结

需要注意的问题点: 一、发布服务器A和订阅服务器B都在同一个网段的局域网内 1、两服务器之间访问没难度,直接就可以搜索到。 2、注意请求订阅和推送订阅时分发代理或合并代理在分发服务器还是在订阅服务器 ...

sql2008发布订阅 问题汇总

1.如何修改一个已经发布的表的属性?   将发布所有订阅删除,(发布不用删除),就可以在发布属性的项目中取消表,然后就   可以修改该表了,修改后,再将表加入发布内就可以了.   2.常用的操作界面:...
  • smeyou
  • smeyou
  • 2011年07月11日 15:01
  • 7116

SqlServer2005 数据库发布、订阅配置图文详解

一:【准备条件】 软件准备条件 机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器) 机器B端:Sqls...

错误提示是:发布 '%1' 的并发快照不可用,因为该快照尚未完全生成,或者日志读取器代理未运行,无法激活它。如果并发快照的生成过程中断,则必须重新启动用于该发布的快照代理,直到生成完整的快照

错误提示是:发布 '%1' 的并发快照不可用,因为该快照尚未完全生成,或者日志读取器代理未运行,无法激活它。如果并发快照的生成过程中断,则必须重新启动用于该发布的快照代理,直到生成完整的快照。上网查找...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sqlserver本地订阅无法正常工作几个问题的总结
举报原因:
原因补充:

(最多只允许输入30个字)