1

我为 1 路数据复制创建了 RDS

(源(Sql_server)到目标(MySql服务器) ”,

这将如何进行双向数据复制

解释 :-

第 1 步:我在 aws 帐户中创建了 AWS DMS(关系数据库服务)

第 2 步:将 RDS 登录到 SQL Server 2017。

第3步:然后我点击了这个链接

https://aws.amazon.com/blogs/database/introducing-ongoing-replication-from-amazon-rds-for-sql-server-using-aws-database-migration-service/

第 4 步:在此链接之后,一种方式数据复制工作正常。(意味着现在当我更新到 sql server 表时,它正在反映到 mysql 数据库表中)

我需要双向复制

任何想法或建议谢谢

阿曼迪普

4

2 回答 2

3

根据亚马逊的说法,这不是 DMS 的推荐做法:

不建议使用 DMS 进行双向复制。典型的复制方案有一个源和一个目标。当源端点和目标端点不同时,DMS 保证事务完整性。在双向复制中,如果同一行被两个不同的复制任务更新,这些源和目标可能会颠倒过来,并导致意想不到的后果。当从源更新到目标的表在逻辑上独立于从目标更新到源的表时,双向复制效果最佳。

(来自https://aws.amazon.com/dms/faqs/

当然,您可以尝试设置两个指向不同方向的 DMS 作业。(您确实说过您正在寻找想法;我认为这不是一个特别好的想法。)您也可以考虑设置一个 SQL Server RDS 实例(而不是 MySQL),因为您可能能够使用一些 SQL Server 的内置双向复制。这里的好处是它可以解决您在不同数据库系统之间可能遇到的问题(例如循环)。微软对此有话要说:

双向事务复制是一种特定的事务复制拓扑,它允许两台服务器相互交换更改:每台服务器发布数据,然后从另一台服务器订阅具有相同数据的发布。sp_addsubscription (Transact-SQL)的@loopback_detection参数设置为 TRUE,以确保仅将更改发送到订阅服务器并且不会导致将更改发送回发布服务器。

(来自https://docs.microsoft.com/en-us/sql/relational-databases/replication/transactional/bidirectional-transactional-replication?view=sql-server-2017

祝你好运!

于 2019-03-19T21:32:18.330 回答
1

Amazon Database Migration Service 目前确实支持使用 SQL Server 进行双向复制。我相信这是最近添加的功能。亚马逊文档:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html#CHAP_Task.CDC.Bidirectional

这不是事务性双向复制。也就是说,假设 App 1 修改了“John Smith”的薪水并在 SQLNode1 上将其设置为 150,000 美元,而 App 2 修改了“John Smith”的薪水并在 SQLNode2 上将其设置为 100,000 美元。在复制任务中无法捕捉到这种冲突。这些任务对于跨两个数据库的提交不是原子的。因此,应用程序设计人员需要针对这些情况构建数据检查和数据一致性逻辑。

于 2020-07-29T16:37:41.793 回答