database

浅谈数据库同步和迁移

  本文将主要首先聊一聊数据库同步和迁移两个话题,之后将会围绕这2个话题介绍一下阿里云最近开源的基于MongoDB和Redis的数据同步&迁移工具MongoShake和RedisShake,最后介绍一些用户的使用案例。 1. 同步   现在大部分数据都支持集群版的数据,也就是说一个逻辑单元中有多个db节点,不同节点之间通常通过复制的方式来实现数据的同步,比如Mysql的的基于binlog的主从同步,Redis的基于sync/psync机制的aof主从同步,MongoDB基于oplog的主从同步等等。这些机制支撑了一个单元下的数据冗余高可用和读写分离负载分担。   但仅仅一个逻辑单元内的数据同步对于很多业务通常不够用,很多业务需要跨逻辑单元的数据同步的能力,例如同城多机房,异地多数据中心同步等。容灾,多活是最常见的两种业务场…

Read more

MongoShake开源

1.背景   在当前的数据库系统生态中,大部分系统都支持多个节点实例间的数据同步机制,如Mysql Master/Slave主从同步,Redis AOF主从同步等,MongoDB更是支持3节点及以上的副本集同步,上述机制很好的支撑了一个逻辑单元的数据冗余高可用。   跨逻辑单元,甚至跨单元、跨数据中心的数据同步,在业务层有时候就显得很重要,它使得同城多机房的负载均衡,多机房的互备,甚至是异地多数据中心容灾和多活成为可能。由于目前MongoDB副本集内置的主从同步对于这种业务场景有较大的局限性,为此,我们开发了MongoShake系统,可以应用在实例间复制,机房间、跨数据中心复制,满足灾备和多活需求。   另外,数据备份是作为MongoShake核心但不是唯一的功能。MongoShake作为一个平台型服务,用户可以通过对接Mongo…

Read more