我有两个需要相同的 SQL 服务器。同步应该每天自动发生几次。两台服务器之间没有“直接”连接,因此没有链接的数据库等。(它们位于完全不同的机器、网络、域上,之间有防火墙等)你可以使用互联网,比如 Web 服务、FTP ......
CopyFromDB 包含很多表,但只有大约 20 个表(仅数据,目前没有模式更改)应该同步到 CopyToDB。每天只有大约一半的表会有新的/更新的行。其他的每年几次。我猜现在每天只有几千行。然而,这在未来可能会增长到每天大约 100,000 行。所以我猜可能没有太多数据。
而且(目前,可能会改变)数据只能以一种方式同步,从 CopyFromDB 到 CopyToDB。如果它不会仅仅因为有人在 CopyFromDB 上的表上添加了一个额外的列而“中断”,那也很好,但是新的 col 不应该自动同步到 CopyToDB。(只有应该同步的列驻留在 CopyToDB 上,可能还有其他不应该同步的列)
它应该执行插入、更新或插入。在最坏的情况下,我想它可以完全删除和插入,但我不喜欢这样。(当然有 FK 等,所以数据必须以正确的顺序插入)
目前只有一个“CopyToDB”,但这可能会增加。解决方案也应该很简单,不太复杂。:-)
我的问题是;实现这一目标的最佳方法是什么?我在下面有几个想法。
- CopyToDB 端的 WS,由服务或其他东西从 CopyFromDB 端调用?推送数据,仅推送自上次同步以来的更改。
- CopyToDB 端的 FTP 采用带有更改的“sql”文件。像插入/更新/删除。这是由 CopyFromDB 推送的。
- 还有什么?已经这样做的内置工具?还是 3d 零件工具?像 Red Gate SQL Data Compare 之类的东西,只能自动进行。
感谢您的想法和/或回答!
我已经在论坛中搜索了我的问题。但是我只能找到两台服务器之间存在某种“直接”连接或者您进行备份/恢复的问题。但是如果问题已经回答了,请原谅,请告诉我在哪里?:)