在 MySQL 个数据库之间同步一个 table
Synchronize one table between MySQL database(s)
我们有跨多个MySQL数据库同步table中数据的需求。其中一个数据库将是源,所有其他数据库都需要具有 table 之一的同步数据。
我们在微服务架构中使用了多个数据库,它们都需要在其数据库中拥有特定 table 的本地副本,而不是整个数据库本身,因此只读副本或多可用区配置不是解决方案。
数据库:MySQL 托管在 AWS RDS
AWS 或其他供应商是否提供任何托管服务来实现此目的?还是我们必须编写自定义脚本才能做到这一点?
这是一个简单的 MySQL 复制。但是你必须复制整个数据库。因此,在 AWS 中创建一个 MySQL 数据库并启用 Multi-AZ 复制并激活自动快照。
A-Z 复制是同步的。当您使用 "Read replica" 时,它是异步的。因此,如果您有非常重要的数据,您应该启用 Multi-AZ 复制。
我认为您必须在一个数据库中隔离 table 并复制该数据库或编写自定义脚本。
如果我正在编写自定义脚本,我会查看 binlog 功能。以下是一些有用的链接:
https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html(在底部)。
我们有跨多个MySQL数据库同步table中数据的需求。其中一个数据库将是源,所有其他数据库都需要具有 table 之一的同步数据。
我们在微服务架构中使用了多个数据库,它们都需要在其数据库中拥有特定 table 的本地副本,而不是整个数据库本身,因此只读副本或多可用区配置不是解决方案。
数据库:MySQL 托管在 AWS RDS
AWS 或其他供应商是否提供任何托管服务来实现此目的?还是我们必须编写自定义脚本才能做到这一点?
这是一个简单的 MySQL 复制。但是你必须复制整个数据库。因此,在 AWS 中创建一个 MySQL 数据库并启用 Multi-AZ 复制并激活自动快照。
A-Z 复制是同步的。当您使用 "Read replica" 时,它是异步的。因此,如果您有非常重要的数据,您应该启用 Multi-AZ 复制。
我认为您必须在一个数据库中隔离 table 并复制该数据库或编写自定义脚本。
如果我正在编写自定义脚本,我会查看 binlog 功能。以下是一些有用的链接:
https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html(在底部)。