云数据库MongoDB提供多种容灾解决方案。
多可用区实例
阿里云为全世界多个地域提供云计算服务,每个地域包含多个可用区。同一个地域中的不同可用区均为单独的故障隔离单元,并且同一地域中的可用区之间网络延迟小。
云数据库MongoDB单可用区实例运行在同一个可用区中的两台物理服务器上,可用区内机柜、空调、电路、网络都有冗余。通过异步或半同步的数据复制方式,高效的主备切换机制,云数据库MongoDB提供了高于物理服务器极限的数据库可用性。
为了提供比单可用区更高的可用性,云数据库MongoDB支持多可用区。多可用区将物理服务器部署在不同的可用区,当一个可用区出现故障时,可以将业务在短时间内切换到另一个可用区。整个切换过程中应用代码无需变更。
创建多可用区实例请参见创建多可用区副本集实例和创建多可用区分片集群实例。
迁移可用区请参见迁移可用区。
跨地域容灾实例
MongoDB多可用区实例的容灾能力局限在同地域的不同可用区之间。为了提供更高的可用性,MongoDB还支持跨地域的数据容灾。例如您可以将杭州地域的MongoDB实例A通过同步工具(例如MongoShake等)复制数据到上海地域的MongoDB实例B,实例B是一个完整独立的MongoDB实例,拥有独立的连接地址、账号和权限,可用于灾备恢复,也可用于在所在地域读取数据。
使用MongoShake复制MongoDB实例数据的方法请参见使用MongoShake实现MongoDB副本集间的单向同步。
将实例A作为主实例,实例B作为容灾实例,当实例A所在地域发生突发性故障(例如自然灾害)时,实例B可以作为主实例。通过修改应用程序中的数据库连接配置,将应用请求转到实例B上,实现跨地域的数据容灾。
- 建议您在实例B上部署与实例A上相同的异地容灾应用,以避免跨地域访问造成的网络不稳定和延迟问题。
- 实例B作为主实例后,您需要通过kill命令关闭mongoshake进程,以停止实例A到实例B的数据复制,避免造成数据错误。