使用MongoDB数据库自带的备份还原工具,您可以将Azure Cosmos DB API for MongoDB迁移至阿里云。
注意事项
- 该操作为全量迁移,为避免迁移前后数据不一致,迁移开始前请停止数据库写入。
- 如果您之前使用mongodump命令对数据库进行过备份操作,请将备份在dump文件夹下的文件移动至其他目录。确保默认的dump备份文件夹为空,否则将会覆盖该文件夹下之前备份的文件。
- 请在安装有MongoDB服务的服务器上执行mongodump和mongorestore命令,并非在mongo shell环境下执行。
数据库账号权限要求
实例类型 | 账号权限 |
---|---|
Azure Cosmos DB | read |
目的MongoDB实例 | readWrite |
环境准备
- 创建云数据库MongoDB实例,详情请参考创建实例。
说明
- 实例的存储空间要大于Azure Cosmos DB。
- 实例的数据库版本选用3.4。
说明
- 请安装MongoDB3.0以上版本。
- 该服务器仅作为数据备份与恢复的临时中转平台,迁移操作完成后不再需要。
- 备份目录所在分区的可用磁盘空间要大于Azure Cosmos DB。
本案例将MongoDB服务安装在Linux服务器上进行演示。
迁移步骤
- 登录Azure门户。
- 在左侧导航栏单击Azure Cosmos DB。
- 在Azure Cosmos DB页面,单击需要迁移的Cosmos DB 账户名称。
- 在账户详情页,单击Connection String。
- 单击Read-only Keys页签,查看连接该数据库所需的信息。
图 1. Azure连接信息
说明 迁移数据时使用只读权限的账号密码信息即可。
- 在安装有MongoDB服务的Linux服务器上执行以下命令进行数据备份,将数据备份至该服务器上。
mongodump --host <HOST>:10255 --authenticationDatabase admin -u <USERNAME> -p <PRIMARY PASSWORD> --ssl --sslAllowInvalidCertificates
说明:将<host>
、<username>
、<primary password>
更换为图 1中对应选项的值。
等待备份完成,Azure Cosmos DB的数据库将备份至当前目录下dump文件夹中。
- 获取阿里云MongoDB数据库的Primary节点连接地址,详情请参考实例连接说明。
- 在安装有MongoDB服务的Linux服务器上执行以下语句将数据库数据全部导入至阿里云MongoDB数据库。
mongorestore --host <mongodb_host>:3717 --authenticationDatabase admin -u <username> -p <password> dump
说明:
<mongodb_host>
:MongoDB实例的Primary节点连接地址。<username>
:登录MongoDB实例的数据库用户名。<password>
:登录MongoDB实例的数据库密码。
等待数据恢复完成,Azure Cosmos DB API for MongoDB数据库即迁移至阿里云MongoDB数据库中。