使用MongoDB数据库自带的备份还原工具mongodump和mongorestore,您可以将腾讯云MongoDB副本集实例全量迁移至阿里云。
背景信息
当您因业务调整或需要使用阿里云MongoDB特性功能时,您可以使用MongoDB自带的备份还原工具( mongodump 和 mongorestore),通过全量数据迁移方法,将腾讯云MongoDB数据库迁移至阿里云MongoDB数据库。
前提条件
注意事项
- 该操作为全量迁移,迁移开始前需要停止腾讯云MongoDB数据库的相关业务,同时为了保障数据一致性,全量数据迁移期间请勿在腾讯云MongoDB数据库中写入新的数据。
- 为避免影响您的业务使用,请在业务低峰期进行数据迁移操作。
- 如果您之前使用mongodump命令对数据库进行过备份操作,请将备份在dump文件夹下的文件移动至其他目录。确保dump文件夹为空,否则执行备份的操作会覆盖该文件夹下的原有备份文件。
- 阿里云MongoDB实例支持的版本与存储引擎请参见版本及存储引擎,如需跨版本或跨引擎迁移,请提前确认兼容性。
数据库账号权限要求
迁移对象 | 权限要求 |
---|---|
腾讯云MongoDB实例 | 待迁移库的read权限 |
阿里云MongoDB实例 | 目标库的readWrite权限 |
操作步骤
由于腾讯云MongoDB实例只有内网连接地址,没有公网连接地址。此时需要创建一个具有公网地址的腾讯云服务器用作端口数据转发,以完成数据库的迁移操作。迁移操作完成后如不再需要,可释放腾讯云服务器。
- 创建腾讯云服务器。本案例中创建的腾讯云服务器使用的是Linux操作系统。 说明 为保障腾讯云服务器和腾讯云MongoDB副本集实例的正常通信,腾讯云服务器的地域、可用区、私有网络和子网需配置与腾讯云MongoDB副本集实例一致。
- 登录腾讯云服务器,安装MongoDB程序,详情请参见安装MongoDB。 说明 请确保安装的MongoDB程序的软件版本与腾讯云MongoDB数据库的版本一致。
- 返回腾讯云服务器控制台,在左侧导航栏,单击安全组。
- 在入站规则页签,单击添加规则,放通MongoDB数据库端口27017,允许外网访问该端口。
- 进入腾讯云MongoDB控制台,单击目标MongoDB实例名。
- 单击安全组页签,并单击配置安全组。
- 在弹出的配置安全组对话框,选择已放通27017端口的安全组,并单击确认。
- 进入腾讯云MongoDB控制台,获取腾讯云MongoDB实例的内网IP地址。
- 登录腾讯云服务器,并执行以下命令进行数据备份,将数据备份至该服务器上。
mongodump --host <host>:27017 -u <username> --authenticationDatabase admin
说明- <host>:腾讯云MongoDB实例的内网IP地址。
- <username>:连接腾讯云MongoDB数据库的账号,默认为mongouser。
示例:mongodump --host 10.10.0.7:27017 -u mongouser --authenticationDatabase admin
- 命令行提示
Enter password:
时,输入数据库账号对应的密码,数据库开始备份。说明 等待备份完成,数据将备份至当前目录下dump文件夹中。 - 在腾讯云控制台,获取腾讯云服务器的公网IP地址。
- 登录阿里云MongoDB控制台,将腾讯云服务器的公网IP地址加入到阿里云MongoDB实例的白名单中。详情请参见设置白名单。
- 获取阿里云MongoDB实例的公网连接地址。
- 如需迁移至阿里云MongoDB副本集实例,请获取Primary节点公网连接地址,详情请参见副本集实例连接说明。
- 如需迁移至阿里云MongoDB分片集群实例,请获取任一Mongos节点的公网连接地址,详情请参见分片集群实例连接说明。
说明 公网连接地址需要手动申请,详情请参见申请公网连接地址。 - 在腾讯云服务器上执行以下命令将数据导入至阿里云MongoDB数据库。
mongorestore --host <mongodb_host>:3717 -u <username> -d <database> <dir> --authenticationDatabase admin
说明- <mongodb_host>:阿里云MongoDB实例的公网连接地址。(不包含端口号)
- <username>:连接阿里云MongoDB实例的数据库账号,本文以test为示例账号。
- <database>:需要导入的数据库。备份文件中如有多个数据库,需要重复本步骤进行其它数据库的导入。
- <dir>:数据库备份文件所在的目录。
示例:
- 导入数据库备份文件中的mongodbtest数据库
mongorestore --host dds-bpxxxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717 -u test --authenticationDatabase admin -d mongodbtest /dump/mongodbtest
- 导入数据库备份文件中的test123数据库
mongorestore --host dds-bpxxxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717 -u test -authenticationDatabase admin -d test123 /dump/test123
- 命令行提示
Enter password:
时,输入数据库账号对应的密码,数据库开始导入。说明 等待备份完成,数据将导入至阿里云MongoDB数据库中。 - 根据业务需求选择合适的时间,将业务切换至阿里云MongoDB实例中。