我们使用可更新订阅的事务复制。1个发布服务器,1个订阅服务器。
SQL复制在上午10点开始在3/6处遇到约束错误,因为两个不同办公室的人员输入的数据违反了唯一的约束。完全可以预料到。
然而,在3/6的12:08PM,SQL复制停止了报告错误,而是说:
“发布'TheDB‘的初始快照尚未可用。”
为什么要停止重试复制,而开始抛出此错误?现在我们需要重新生成快照。
运行作业的000请求COTOPSVR\TheDB-DB\DB-3(来自用户CTOB\Administrator)被拒绝,因为作业已经从用户sa的请求中运行
有什么想法吗?我知道怎么解决这件事.我想防止这种事再次发生。
发布于 2013-11-04 01:19:17
使用基本事务复制,有多种代理。
有用的MSDN文章
有快照代理,它负责数据和模式的初始快照。它可以定期运行(我每隔12小时就安排一次)。
有日志读取器代理,它读取事务日志并将标记为复制的日志发送到分发服务器。
最后,还有分发代理,负责将快照(S)和交易从分发服务器移动到订阅者(S)。
您的错误告诉您,它无法应用标记为复制到订阅服务器的事务,因为初始快照(和/或任何后续快照)尚未应用。您需要排除未应用此快照的原因。它可能发生的原因有很多。
分发代理是否失去了对包含快照文件的目录的权限?
订阅服务器上是否存在导致快照应用缓慢的阻塞活动?
您是否通过同时将大型已发布数据库中的所有项目推送到所有订阅服务器来重载分发服务器和/或订阅服务器?
发布于 2013-10-04 19:27:30
我怀疑您的订阅被错误所困扰,并且实际上没有复制任何新的事务。此时,订阅已落后于为该发布定义的事务保留期。然后,订阅将确认它所需的复制事务不再可用,因为它们已从分发数据库中清除。
当发生这种情况时,它将指示需要使用快照重新初始化订阅。
https://dba.stackexchange.com/questions/36200
复制相似问题