本文档介绍如何通过MongoShake实现实例间的延迟同步。
前提条件
背景信息
在使用MongoShake实时同步多个实例时,当用户在主实例中执行了误操作以后,MongoShake会将该误操作实时同步到从实例,导致最终只能通过数据恢复来复原。因此,MongoShake在2.4.6版本的更新中提供了设置延迟同步的参数,给主从实例之间的同步设置一段缓冲的时间,当主实例中执行了误操作后,可以在这段时间内关闭同步,并直接将业务切换到还未发生误操作的从实例。
说明 本文档着重介绍延迟同步参数
incr_sync.target_delay
,有关使用MongoShake的其他事项请参见使用MongoShake实现MongoDB副本集间的单向同步。
准备工作
- 为达到最理想的同步性能,请确保源端MongoDB副本集实例的网络类型为专有网络VPC,如果是经典网络,请切换成专有网络VPC。更多信息,请参见切换实例网络类型。
- 创建作为同步目标端的MongoDB副本集实例,在创建的时候请选择与源端MongoDB副本集实例相同的专有网络VPC,以获取最低的网络延迟。更多信息,请参见创建副本集实例。
- 创建用于运行MongoShake的ECS实例,在创建的时候请选择与源端MongoDB副本集实例相同的专有网络VPC,以获取最低的网络延迟。更多信息,请参见创建ECS实例。
- 将ECS的内网IP地址加入至源端和目标端MongoDB实例的白名单中,并确保ECS可以连接源端和目标端MongoDB实例。 更多信息,请参见设置白名单及安全组。
搭建MongoDB间的延迟同步架构
本示例以ECS上的Ubuntu系统为例介绍如何搭建延迟同步架构。详情请参见使用MongoShake实现MongoDB副本集间的单向同步。
误操作后切换主从实例
在主实例中日常执行CURD操作时,可能会存在某条语句误写入等误操作的情况发生,此时您可以通过下列步骤将业务切换到还没有发生误操作的从实例中。
监控MongoShake状态
详情请参见监控MongoShake状态。