我为单向数据复制创建了rds
“(从源(sql server)到目标(mysql server)”,
这将如何工作双向数据复制
说明:-
步骤1:我在aws帐户中创建了awsdms(关系数据库服务)
第二步:rds登录sql server 2017。
第三步:然后我按照这个链接
https://aws.amazon.com/blogs/database/introducing-ongoing-replication-from-amazon-rds-for-sql-server-using-aws-database-migration-service/
第4步:在这个链接之后,单向数据复制工作正常(意味着现在当我更新到sql server表时,它正在反映到mysql数据库表中)
我需要双向复制
有什么想法或建议吗?谢谢
阿曼迪普
2条答案
按热度按时间vi4fp9gy1#
根据亚马逊的说法,这不是dms的推荐做法:
dms不建议使用双向复制。典型的复制场景只有一个源和一个目标。当源和目标端点不同时,dms保证事务完整性。在双向复制中,如果同一行由两个不同的复制任务更新,则这些源和目标可能会被反转,并导致意外的后果。当从源更新到目标的表在逻辑上独立于从目标更新到源的表时,双向复制效果最佳。
(来自https://aws.amazon.com/dms/faqs/)
当然,您可以尝试设置两个指向不同方向的dms作业(你说过你在找主意;我不认为这是一个特别好的例子。)您还可以考虑设置一个SQLServerRDS示例(而不是mysql),因为您可能可以使用SQLServer内置的一些双向复制。这里很好的一点是,它解决了在不同的数据库系统(如循环)之间可能遇到的问题。微软对此有这样的说法:
双向事务性复制是一种特定的事务性复制拓扑,它允许两台服务器彼此交换更改:每台服务器发布数据,然后使用来自另一台服务器的相同数据订阅发布。sp\u addsubscription(transact-sql)的@loopback\u detection参数设置为true,以确保更改只发送给订阅服务器,而不会导致更改被发送回发布服务器。
(来自https://docs.microsoft.com/en-us/sql/relational-databases/replication/transactional/bidirectional-transactional-replication?view=sql-server-2017)
祝你好运!
5vf7fwbs2#
amazon数据库迁移服务目前确实支持sql server的双向复制。我相信这是最近新增的功能。亚马逊文档:
https://docs.aws.amazon.com/dms/latest/userguide/chap_task.cdc.html#chap_task.cdc.bidirectional
这不是事务性双向复制。也就是说,假设app 1修改了“john smith”的工资,并在sqlnode1上将其设置为150000美元,app 2修改了“john smith”的工资,并在sqlnode2上将其设置为100000美元。无法在复制任务中捕获此冲突。这些任务不是跨两个数据库提交的原子任务。因此,应用程序设计者需要为这些情况构建数据检查和数据一致性逻辑。