Sql server 同时更新两个不同的数据库
假设我有两个这样的数据库: 数据库a 创建表表1(字段1 int、字段2 int、字段3 int) 数据库b 创建表表1(字段1 int,字段2 int) 我们的旧应用程序使用B,并且必须继续这样做。我们正在开发一个新的应用程序,它将使用a。确保将A:Table1中的所有更改复制到B:Table1中的最佳方法是什么Sql server 同时更新两个不同的数据库,sql-server,database,migration,Sql Server,Database,Migration,假设我有两个这样的数据库: 数据库a 创建表表1(字段1 int、字段2 int、字段3 int) 数据库b 创建表表1(字段1 int,字段2 int) 我们的旧应用程序使用B,并且必须继续这样做。我们正在开发一个新的应用程序,它将使用a。确保将A:Table1中的所有更改复制到B:Table1中的最佳方法是什么 以下是一些需要考虑的事项: 旧的应用程序将只执行选择B:Table1中的,不需要双向同步 旧应用程序必须继续使用B A:Table1中的大多数字段与B:Table1相同,但在某些
以下是一些需要考虑的事项:
- 旧的应用程序将只执行
选择B:Table1中的
,不需要双向同步
- 旧应用程序必须继续使用B
- A:Table1中的大多数字段与B:Table1相同,但在某些情况下需要某种类型的数据转换
- 性能不是大问题,因为不会有太多的修改
- 起初,只需要同步1-2个表,但随着我们将更多模块迁移到新版本,将添加更多表
- 这两个数据库来自不同的供应商
以下是我考虑过的选择:
- 在新应用程序中,更新两个数据库:
我不喜欢这个选项,因为它给新的应用程序数据层增加了很多复杂性,而且两个数据库之间没有事务 - 使用A中的触发器启动
应用程序,该应用程序将复制B中的更改
不确定这是否是一个好的实践,以及它的可靠性如何 - 使用A中的触发器启动
以复制更改存储过程
有些数据转换可能过于复杂,无法在存储过程中进行 - 以设定的间隔启动应用程序或存储过程以进行更改
不是实时的,所以我不想用这个
你在这个问题上有什么想法?
我错过了另一个选择吗?
你做过类似的事情吗?
是否有一个软件(免费或非免费)可以完成这项工作
一如既往,感谢大家的时间和投入。这里有很多选择
- 您可以在事务中同时应用更新。这是指数据库不在同一服务器上
- 您可以使用向其他服务器提供有保证的异步更新
- 还将允许其他服务器以近乎实时的方式接收更新
仅从您问题中的信息来看,ServiceBroker似乎是最合适的。您仍然可以使用触发器调用代理,然后代理会异步响应。您如何看待事务性复制?您可以只复制某些列,还可以编写自定义存储过程来执行插入、更新和删除操作。它也是异步的,所以您的新应用程序不应该因此而陷入困境