mysql如何实现两个数据库数据结构实时同步?

如题所述

1、如果RDS上的数据没有发生增删改的操作的话,可以生成物理备份或者逻辑备份,然后将物理备份和逻辑备份通过Xtrabackup或者mysqldump将数据导入到自建库。

2、如果在物理备份已经生成后对于数据库仍然有增删改的操作的话,则需要您在恢复物理备份后还需要追加后续的binlog文件,可以通过API/控制台获取binlog文件去追加增量数据。

这里有一个非常需要注意的一点是在解压出来物理备份文件后除了数据和索引文件外还有得到如下图中的一些文件。

由于在物理备份上应用binlog是需要记录binlog的pos点的,所有的RDS都是采用主备架构保证高可用性的,为保证主库正常对外提供服务,备份操作是在从库上执行的,但是生成出来的binlog文件却既有可能是主库或者从库上生成(两个binlog文件的pos点是不一致的)。提供给用户的也可能是这里面的任意一份,因此在物理备份文件中给用户提供了两个binlog文件的pos点,如下图:

用户在应用binlog的时候需要两个pos点都测试一下,哪个pos点可以在binlog中找到从这个pos点开始应用binlog。 

3、用户想要将RDS上的增量数据同步在自建库的binlog上可以使用DTS的数据订阅功能,可以通过SDK消费增量数据即可再自己应用该数据。

温馨提示:答案为网友推荐,仅供参考
相似回答