如何在 SQL 2005 Express 中模拟发布复制?

如何在 SQL 2005 Express 中模拟发布复制?

我有一个客户,他在多个地理上分散安装了第三方商业产品,这些产品将数据记录到他们自己的 SQL Express 数据库实例中(如果您感兴趣的话,是 GE 的 CIMPLICITY HMI)。他现在想将记录数据收集到中央数据库进行长期存储(即本地安装将保留他们自己的数据 3 个月的滚动日志,但中央位置将保留所有数据的 5 年滚动日志。总数据生成量可能每月不到 100MB)。远程和本地数据库中的表结构将保持相同,以便可以轻松地对所有数据运行相同/相似的报告。

如果这些是完整的 SQL 安装,那么我相信我可以使用发布复制来解决问题。但我在远程端处理的是 Express 版本(尽管我将在中心位置使用完整版本)。

因此,我正在寻找如何使用第三方工具在 Express DB 上模拟发布复制的最佳方式(而不必编写自己的自定义代码)。为了平衡低数据吞吐量,其中 3 个安装实际上是通过 DSL 上运行的 VPN 连接回家的,因此可能会出现链接中断的情况。只要远程数据最终得到集中记录,就不会被视为大问题。

(一个可能的解决方案是将所有的快速版本转换为完整版本,但我认为这会花费太多,而且还会带来管理上的麻烦。所以我现在甚至没有考虑这个)

感谢您的帮助

彼得

任何人????!?!?

蟋蟀

编辑

我决定采用自定义代码解决方案,使用 MSMQ 在远程端执行排队。我可能已经使用 SSIS 来做同样的事情,但对我来说,自己动手做同样的事情也很容易。

答案1

如果您可以在 SQL Express Edition 上启用 TCP 协议并向远程站点添加用户帐户,则可以使用主 SQL 框上的作业代理来下载所有数据。也许可以备份和恢复(考虑到有限的带宽,这似乎是个坏主意)。您可以在遥控器上使用触发器并将更新推送到主站点,但我不确定这在“有损”VPN 连接上如何工作。让 SQL 框互相看到可能是最困难的部分。一旦您这样做,就会打开许多​​不同的选项。

在 SQL Express 2005 上启用 TCP 的信息: http://blogs.msdn.com/b/sqlexpress/archive/2005/05/05/415084.aspx

我们在一些工业设备上使用 HMI 做了类似的事情,但连接遍布本地网络。我们的 DBA 编写了一些脚本,使用“插入”获取我们需要的内容,并在主 SQL 框中留下一份副本。

相关内容