我有两台SQL服务器,我需要完全相同。自动同步应该每天发生几次。 这两个服务器之间没有“直接”连接,所以没有连接数据库等(它们在完全不同的机器,网络,域之间以及防火墙之间等)您可以使用Internet,但Web服务,FTP等。同步两个Diff SQL Server之间的数据
CopyFromDB包含大量表,但只有大约20个表(仅数据,现在没有模式更改)应与CopyToDB同步。每天只有大约一半的表格会有新的/更新的行。其他人每年几次。我猜现在每天只有几千行。然而,这可能会在未来增长,每天大约10万行。所以,我猜可能没有太多数据。
而且(现在,可能会改变)数据只应该从CopyFromDB同步到CopyToDB。如果它不会因为有人在CopyFromDB上的表上添加额外的列而“不中断”,而且该新的col不应该自动同步到CopyToDB。 (只有应该同步的列位于CopyToDB,可能有其他列不应该同步)
它应该做插入,更新或插入。在最坏的情况下,我想它可以删除和插入,但我不喜欢这样。 (当然有FK等等,所以数据必须以正确的顺序插入)
现在只有一个“CopyToDB”,但是这可能会增加。 解决方案应该也很简单,不要太复杂。 :-)
我的问题是;什么是最好的方式来实现这一目标?下面我有几个想法。
- WS在CopyToDB端,从CopyFromDB端通过服务或其他东西调用?推送数据,只有自上次同步以来的更改。
- CopyToDB端的FTP,它接受带有更改的“sql”文件。像插入/更新/删除。这由CopyFromDB推到那里。
- 还有别的吗?内置的工具已经做到了这一点?还是3d零件工具?像红门SQL数据比较,只能自动。
谢谢你的想法和/或答案!
我已经在论坛中搜索了我的问题。但是我只能在两台服务器之间存在某种“直接”连接的情况下才能找到问题,或者执行备份/恢复。但如果问题已经得到解答,我请求你原谅,你能告诉我在哪里吗? :)
嗯,我还没有找到任何“捷径”,所以我选择了第一种方式,使用WS。 (sql-file-way失败,也许可以解决它,但它花费了太多时间) 在CopyFromDB上,每个表都有一个DateTime-“update”列。我用它来检查新数据。然后将新数据放入DTO,序列化,压缩,并发送到CopyToDB端的WS。 CopyToDB获取数据,如果数据已经存在,则进行更新或者执行插入操作。那么,它有更多的逻辑,但基本上这是如何解决它。 – Rolle 2010-10-15 18:56:04