云数据库MongoDB提供数据镜像能力,您可以对副本集实例或分片集群实例创建一个只读数据镜像。其中副本集最高支持3TB数据,集群版本最高支持96TB数据。
说明
仅MongoDB 3.4版本支持数据镜像能力。
使用场景
创建数据镜像,可确保在数据大批量写入更新期间,所有读请求从数据镜像获取数据。从而确保数据在完整写入前不会被应用程序读取到。数据镜像的读取性能与先前非镜像数据的读取性能完全保持一致。
说明
数据更新完成后,可将数据正式同步生效,供应用正常连接读取最新数据。通过阿里云提供的数据镜像操作命令,可实现数据自动同步生效(秒级别同步)。数据同步期间不影响正常数据读取操作。
副本集实例操作方法
通过mongo shell连接到需要操作的节点(Primary节点或Secondary节点),连接方法请参见mongo shell 连接副本集实例。
创建数据镜像。
db.runCommand({checkpoint:"create"})
数据镜像功能使用完毕,删除数据镜像。
db.runCommand({checkpoint:"drop"})
分片集群实例操作方法
通过mongo shell连接到分片集群实例中的任意一个mongos,连接方法请参见mongo shell 连接分片集群实例。
创建数据镜像。
在所有Shard的Primary节点上创建数据镜像。
db.runCommand({runCommandOnShard: "all", "command": {checkpoint:"create"}})
在所有Shard的Secondary节点上创建数据镜像。
db.runCommand({runCommandOnShard: "all", "command": {checkpoint:"create"}, $queryOptions: {$readPreference: {mode: 'secondary'}}})
数据镜像功能使用完毕,删除数据镜像。
在所有Shard的Primary节点上删除数据镜像。
db.runCommand({runCommandOnShard: "all", "command": {checkpoint:"drop"}})
在所有Shard的Secondary节点上删除数据镜像。
db.runCommand({runCommandOnShard: "all", "command": {checkpoint:"drop"}, $queryOptions: {$readPreference: {mode: 'secondary'}}})
文档内容是否对您有帮助?