【发布时间】:2014-07-10 07:54:38
【问题描述】:
我在 sql server 事务复制中遇到问题,无法找到它的根本原因。首先,让我告诉你,我不是 DBA,所以我可能对一些 DBA 概念很愚蠢。 我是 .Net 开发人员,我负责设置复制。
我在总部有一个数据库,并将几个表复制到零售店的另一台服务器。 第一次,我用选定的文章配置了复制。 复制是连续的。它运行良好,但在一个星期天晚上,它因错误“进程无法执行'sp_replcmds'”而失败。 在谷歌上花了一段时间后,我找不到任何解决方案。所以,我重建了复制,但这次复制被安排(每 15 分钟),我也将它配置为 PULL 而不是 PUSH。它开始了,但下个星期天晚上又坠毁了。 因此,我分析了在周日晚上,我已经在数据库上配置了重新索引作业,并且由于恢复模型已满,它正在生成一个非常大的 TLOG,而 Repolication 代理无法解析它。 现在,第三次,我再次重建了复制,这次我安排了每 15 分钟一次的复制,但是从早上 8:00 到晚上 11:30,因为在 11:30 之后,没有商店做任何交易。此外,对于重新索引作业,我又添加了 2 个步骤。在重新索引之前,我将恢复模型更改为简单,然后重新索引,之后我将恢复模型更改回完整。无论重新索引步骤的结果如何,我都将恢复更改为完全。 此设置运行良好,并且正常运行了大约 2 个月。
现在,2 个月后,又是一个星期天晚上,它再次失败,原因相同(“进程无法执行 'sp_replcmds'”)。实际上,我已经安排了备份工作,我每天都进行完整备份,每 15 分钟进行一次日志备份,并且没有差异备份。 之后,发现我没有配置差异备份,我也配置了相同的(每 6 小时一次)。但是,在配置差异备份后,周日晚上复制失败。
现在,任何人,请帮助我为我的场景推荐设置。 我的设置是 sql server - Windows Server 2008 R2 上的 SQL Server 2008 R2 Enterprise Distributor 和 Publisher 在同一台机器上。 订阅者位于零售商店服务器上。
【问题讨论】:
标签: sql-server transactional-replication