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管理控制台完成以下准备工作:

  1. 创建阿里云MongoDB实例,详情请参见创建副本集实例创建分片集群实例
    说明
    • 阿里云MongoDB实例的存储空间要大于MongoDB Atlas的存储空间。
    • 如需迁移至阿里云MongoDB分片集群实例,建议对数据进行分片,详情请参见设置数据分片
  2. 设置阿里云MongoDB实例的数据库密码,详情请参见重置密码
    说明 如果您在创建实例时设置了数据库密码,可跳过本步骤。

在本地设备上成以下准备工作:

  1. 安装MongoDB数据库,详情请参见安装MongoDB
    说明
    • 该设备仅作为数据备份与恢复的临时中转平台,迁移操作完成后不再需要。
    • 备份目录所在分区的可用磁盘空间要大于MongoDB Atlas数据库的已用存储空间。
  2. 将本地设备的公网IP地址加入至阿里云MongoDB实例的白名单中,详情请参见设置白名单及安全组

操作步骤

  1. 登录MongoDB Atlas数据库控制台。
  2. 将用于数据迁移的本地设备的公网IP地址,加入至MongoDB Atlas实例的白名单中。Atlas MongoDB白名单配置
  3. Clusters页面,单击 Clusters 的名称。Clusters名称
  4. Command Line Tools页签,单击mongodump命令后的COPY,复制包含MongoDB Atlas数据库连接信息的mongodump命令。复制包含连接信息的mongodump命令
  5. 在本地设备上,备份MongoDB Atlas数据库。
    1. 在本地设备上,粘贴包含MongoDB Atlas数据库连接信息的mongodump命令。
    2. 将<PASSWORD>替换为root用户的密码,将<DATABASE>替换为要备份的数据库名称。
    3. 执行该命令,等待数据备份完毕。

    示例:

    mongodump操作示例
  6. 登录阿里云MongoDB控制台,获取阿里云MongoDB实例的公网连接地址。
    • 如要迁移至阿里云MongoDB副本集实例,请获取Primary节点公网连接地址,详情请参见副本集实例连接说明
    • 如要迁移至阿里云MongoDB分片集群实例,请获取任一Mongos节点的公网连接地址,详情请参见分片集群实例连接说明
    说明 公网连接地址需要手动申请,详情请参见申请公网连接地址
  7. 在本地设备上,执行以下命令将数据库数据导入至阿里云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
  8. 当命令行提示 Enter password:时,输入阿里云MongoDB数据库账号对应的密码并按回车键确认。

等待数据恢复完成,MongoDB Atlas数据库即迁移至阿里云MongoDB数据库中。