sql-server - 在两个不同的 SQL Server 之间同步数据

标签 sql-server sql-server-2005 replication database-replication

我有两个需要完全相同的 SQL 服务器。同步应该每天自动发生几次。 两台服务器之间没有“直接”连接,因此没有链接的数据库等。(它们在完全不同的机器、网络、域上,之间有防火墙等)你可以使用互联网,比如 Web 服务、FTP...

CopyFromDB 包含很多表,但只有大约 20 个表(只有数据,目前没有模式更改)应该同步到 CopyToDB。每天只有大约一半的表会有新的/更新的行。其他人每年几次。我猜现在每天只有几千行。然而,这在未来可能会增长到每天大约 100,000 行。所以我想可能没有太多数据。

而且(目前可能会改变)数据应该只以一种方式同步,从 CopyFromDB 到 CopyToDB。如果它不会仅仅因为有人在 CopyFromDB 的表上添加了一个额外的列而“中断”,那也很好,但是新的 col 不应该同步到 CopyToDB 自动。 (只有应该同步的列驻留在 CopyToDB 上,可能还有其他不应该同步的列)

它应该执行 Insert、Update 或 Insert。在最坏的情况下,我想它可能完全删除和插入,但我不喜欢这样。 (当然有 FK 等,所以数据必须按正确的顺序插入)

目前只有一个“CopyToDB”,但这可能会增加。 解决方案也应该很简单,不要太复杂。 :-)

我的问题是;实现这一目标的最佳方法是什么?我有以下几个想法。

  • CopyToDB 端的 WS,由服务或其他东西从 CopyFromDB 端调用?推送数据,仅推送自上次同步以来的更改。
  • CopyToDB 端的 FTP,它采用带有更改的“sql”文件。比如插入/更新/删除。这是由 CopyFromDB 推送到那里的。
  • 还有别的吗?内置工具已经可以做到这一点?还是 3d 零件工具?像 Red Gate SQL 数据比较之类的东西,只是自动的。

感谢您的想法和/或回答!


我已经在论坛中搜索了我的问题。但是我只能找到两台服务器之间存在某种“直接”连接或者您进行备份/恢复的问题。但是,如果问题已经得到回答,请原谅,您能告诉我在哪里吗? :)

最佳答案

晚了,但希望其他读者会发现它有用......

不确定您是否已经知道,但您可以通过命令行界面轻松地自动化 SQL 数据比较。它确实需要额外的许可并且需要一定的价格,但绝对有可能。

我已经成功使用了ApexSQL Data Diff对于需要每天同步数据的类似项目。

这两种工具都是一流的。你基本上不会出错……Red Gate 似乎具有更好的可用性,但 Apex 有更多选项并且执行速度稍快。

免责声明:我不隶属于本文中提到的两家供应商中的任何一家,但我确实有机会在我工作的公司中使用这两家供应商。

关于sql-server - 在两个不同的 SQL Server 之间同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845687/

相关文章:

replication - mysql转储会破坏复制吗?

json - CouchDB 使用参数过滤复制

PostgreSQL:基本的 pglogical 配置困难

sql - 列以相反顺序定义的 2 个索引之间的差异

php - 如何在 react-native-chart-kit 中更改折线图的标签

sql-server-2005 - 快速、原子表替换

SQL查询执行缓慢(对于某些参数值)

C# CLR 存储过程不会部署到 SQL Server 2005

c# - 如何向存储过程提供参数

R DBI SQL Server : dbWriteTable truncates rows/field. 类型参数不起作用