Jef*_*eff 7 replication sql-server-2008 sql-server transactional-replication
我们正在使用具有可更新订阅的事务复制。1 个发布者,1 个订阅者。
SQL 复制在 3/6 上午 10 点开始遇到约束错误,因为两个不同办公室的人员输入了违反唯一约束的数据。完全符合预期。
但是,在 3/6 的下午 12:08,SQL Replication 停止报告该错误,而是说:
“发布'TheDB'的初始快照尚不可用。”
为什么它会停止重试复制,而是开始抛出此错误?现在我们需要重新生成快照。
[000] 请求运行作业 COTOPSVR\TheDB-TheDB-COTCPSVR\DB-3(来自用户 CTOB\Administrator)被拒绝,因为该作业已经根据用户 sa 的请求运行
有任何想法吗?我知道如何解决这个问题……我想防止这种情况再次发生。
对于基本的事务复制,有多种代理。
快照代理负责数据和模式的初始快照。可以安排它定期运行(我的安排是每 12 小时运行一次)。
有日志读取器代理,它读取事务日志并将那些标记为复制的日志发送到分发器。
最后,分发代理负责将快照和事务从分发者移动到订阅者。
您的错误告诉您它无法将标记为复制的事务应用到订阅者,因为初始快照(和/或任何后续快照)尚未应用。您需要排除未应用此快照的原因。发生这种情况的原因有很多。
分发代理是否失去了对包含快照文件的目录的权限?
订阅者上是否存在某些阻塞活动,导致快照应用缓慢?
您是否通过将大型已发布数据库中的所有文章同时推送给所有订阅者而使分发者和/或订阅者过载?
小智 2
我怀疑您的订阅遇到了该错误,并且实际上没有复制任何新事务。此时,订阅落后于为该发布定义的事务保留期。然后,订阅将认识到它所需的复制事务不再可用,因为它们已从分发数据库中清除。
发生这种情况时,它将指示需要使用快照重新初始化订阅。
| 归档时间: |
|
| 查看次数: |
30695 次 |
| 最近记录: |