Mongodump和Mongorestore是MongoDB数据库自带的备份恢复工具。您可以在本地设备或ECS实例中安装Mongodump和Mongorestore(也可以安装MongoDB数据库)工具,然后使用这些工具将MongoDB Atlas数据库迁移至阿里云数据库MongoDB。
说明 本文以本地设备为例介绍操作流程。
注意事项
- 确保安装的Mongodump和Mongorestore软件版本与MongoDB Atlas数据库的版本一致。安装步骤请参见官方文档Install MongoDB。
- MongoDB实例支持的版本与存储引擎请参见版本及存储引擎,如需跨版本或跨引擎迁移,请提前确认兼容性。
- 通过MongoDB工具迁移MongoDBAtlas数据库为全量数据迁移。为保障数据一致性,迁移操作开始前请停止源库的相关业务,并停止数据写入。
- 执行
mongodump
备份命令将覆盖dump文件夹中的历史备份文件。如果您之前使用mongodump命令对源库执行过备份操作,请将dump文件夹中的备份文件移动至其他目录并确保dump文件夹为空。 - 必须在安装有MongoDB数据库的服务器上执行mongodump和mongorestore命令,而不是在mongo shell环境下执行。
数据库账号权限要求
数据库 | 账号权限 |
---|---|
MongoDB Atlas实例 | 待迁移库的read权限 |
阿里云MongoDB实例 | 目标库的readWrite权限 |
准备工作
在阿里云MongoDB管理控制台完成以下准备工作:
- 创建阿里云MongoDB实例,详情请参见创建副本集实例或创建分片集群实例。
说明
- 阿里云MongoDB实例的存储空间要大于MongoDB Atlas的存储空间。
- 如需迁移至阿里云MongoDB分片集群实例,建议对数据进行分片,详情请参见设置数据分片。
- 设置阿里云MongoDB实例的数据库密码,详情请参见重置密码。
说明 如果您在创建实例时设置了数据库密码,可跳过本步骤。
在本地设备上成以下准备工作:
操作步骤
- 登录MongoDB Atlas数据库控制台。
- 将用于数据迁移的本地设备的公网IP地址,加入至MongoDB Atlas实例的白名单中。
- 在Clusters页面,单击 Clusters 的名称。
- 在Command Line Tools页签,单击mongodump命令后的COPY,复制包含MongoDB Atlas数据库连接信息的mongodump命令。
- 在本地设备上,备份MongoDB Atlas数据库。
- 在本地设备上,粘贴包含MongoDB Atlas数据库连接信息的mongodump命令。
- 将<PASSWORD>替换为root用户的密码,将<DATABASE>替换为要备份的数据库名称。
- 执行该命令,等待数据备份完毕。
示例:
- 登录阿里云MongoDB控制台,获取阿里云MongoDB实例的公网连接地址。
- 如要迁移至阿里云MongoDB副本集实例,请获取Primary节点公网连接地址,详情请参见副本集实例连接说明。
- 如要迁移至阿里云MongoDB分片集群实例,请获取任一Mongos节点的公网连接地址,详情请参见分片集群实例连接说明。
说明 公网连接地址需要手动申请,详情请参见 申请公网连接地址。 - 在本地设备上,执行以下命令将数据库数据导入至阿里云MongoDB数据库。
mongorestore --host <mongodb_host>:3717 --authenticationDatabase admin -u <username> -d <database> <database_backupfile_directory>
说明- <mongodb_host>:阿里云MongoDB副本集实例的Primary节点或阿里云MongoDB分片集群实例的Mongos节点连接地址。
- <username>:阿里云MongoDB实例的数据库用户名。
- <database>:需要恢复的数据库。备份文件中如有多个数据库,需要重复本步骤进行其它数据库的恢复。
- <database_backupfile_directory>:数据库备份文件所在的目录。
示例:
恢复数据库备份文件中的mongodbtest数据库mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u root -d mongodbtest /dump/mongodbtest
恢复数据库备份文件中的test123数据库mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u root -d test123 /dump/test123
- 当命令行提示
Enter password:
时,输入阿里云MongoDB数据库账号对应的密码并按回车键确认。
等待数据恢复完成,MongoDB Atlas数据库即迁移至阿里云MongoDB数据库中。