我正在使用SQL事务复制与拉订阅复制数据库(托pipe自己的分布数据库)从几个服务器跨越VPN到中央服务器。 我有前2个数据库工作正常,但第三个数据库正在导致我的问题。
我的订阅服务器是SQL 2008,源系统都是SQL 2005.源数据库的大小只有几百兆,包含审计数据,所以通过每秒增加约1kb的新logging来简单地增长。
至于复制监视器,代理日志和事件日志显示一切工作正常 – 除了没有数据显示在我的订阅数据库。
分发代理似乎不想从发布者读取快照(以及因此的初始状态和模式)。 新的交易不适用,虽然他们似乎到达确定,因为复制监视器显示的东西,如“5交易与10个命令已交付”。 我希望(和以前一样)在复制监视器中看到关于数据被BCPed的语句。
快照在共享文件夹上的发布者上。 用户可以查看快照“确定”(\\ repldata),并且快照文件夹正在指向它。 但是分销代理似乎没有试图去读它。 我尝试将快照path更改为不正确的内容,甚至没有发现无法访问的错误。
大量的谷歌search等我发现sp_MSget_repl_commands由发行商的分发数据库上的用户调用。 运行一个分析器我可以看到,它只被要求一个代理ID。 在重新启动后,如预期的那样调用序列号0x0,所以我认为这意味着它会查找快照。
但是,从发布者的angular度来看,我们看到有两个代理的数据 – 快照代理和日志阅读器代理(正在查询)。 所以我想我需要告诉分销代理来获取这两个数据。 但是,如何? 更重要的是 – 为什么? 它在我复制的另外两台服务器上运行良好。
我不是一个SQL新手,但这几乎是我第一次在复制,所以不要害怕指责我失去了明显/愚蠢的东西!
如果需要,我可以获取日志文件(例如,来自分发代理),但是它们似乎没有任何错误 – 只是启动并开始应用日志读取器代理更改。
干杯戴夫
检查出版物属性 – >快照 – >快照文件的位置 – 确保把文件放在默认文件夹中被检查,在我的情况下不检查标记,而是把文件放在下面的文件夹中检查了一个位置地址(C:\ REPL),但是我的分销商在除发布商之外的其他服务器上,并且位置地址误导了分销商代理。
我现在通过第四次重做这个工作 – 但令人讨厌的是我不确定如何。
我唯一能看到的是不同的是,快照和日志阅读器代理作为域pipe理员而不是本地pipe理员运行。 我不认为这应该有所作为,但没有任何错误信息很难说…