我有两个具有相同结构的 rds,每个 db 服务于两个应用程序之一。有些表由第一个应用程序使用,有些由其他应用程序使用。我想在两个 rds 之间设置两种读/写复制方式。我可以使用独立的 mysql,设置表复制(https://dev.mysql.com/doc/refman/5.7/en/replication-rules-table-options.html)来做到这一点,但找不到为 rds 这样做的任何选项
最佳答案
这可能就是您所说的 Really Bad Idea™。
RDS 确实允许您将 RDS 实例配置为另一台机器的从站。
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_external_master.html
当然,在同一页上...
Warning
Do not use mysql.rds_set_external_master to manage replication between two Amazon RDS DB instances.
...但是,这似乎是因为这不是您将 RDS 实例配置为另一个实例的副本的方式。当您配置只读副本时,您不会使用它——RDS 会为您管理所有复制配置。
mysql.rds_set_external_master()
是一个允许您执行 CHANGE MASTER TO...
的存储过程,因为在 RDS 中,您缺少 SUPER
特权,否则将无法执行此操作。
该功能专为从非 RDS MySQL 服务器到 RDS 的热迁移而设计,方法是在转换期间将事件从外部主服务器复制到 RDS。
...但是,如果有一种方法可以完成您尝试使用 RDS 做的事情,那就是它。每个实例都将设置为使用另一个作为其主实例。
两者需要有网络连接,这意味着它们需要位于同一区域和同一 VPC 中,否则您必须自己处理对等互连或隧道配置以建立该网络路径。
这几乎肯定是一个不受支持的配置,但同样,如果有办法实现它,这就是方式。 “不受支持”并不意味着它不起作用,只是说如果它不起作用,AWS 支持将不可能提供帮助。
我有没有提到这可能不是一个好主意?
关于mysql - Amazon RDS 双向复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36072071/