目录
2.Azure Cosmos DB API迁移MongoDB
1.Azure CosmosDB概述
Azure Cosmos DB 是一种任何规模的全球分布式多模型数据库服务。该服务从一开始就将全球分布和横向缩放作为其核心。
通过跨任意数量的 Azure 区域的统包全球性分布,Azure Cosmos DB 可以以透明方式缩放和复制数据(无论用户位于何处)。在全球范围内对写入和读取进行弹性缩放,并仅对所需资源付费。Azure Cosmos DB 为 NoSQL 和 OSS API 提供本机支持,包括 MongoDB、Cassandra、Gremlin、etcd、Spark 和 SQL。它还提供多种定义完善的一致性模型,保证 99% 情况下低至个位数的毫秒级读写延迟,并保证全球任意位置的 99.999% 多宿主高可用性 – 所有功能均由业界领先的综合 SLA 提供支持。
Azure Cosmos DB 是一种完全托管的服务,使你可将操作和缩放分布式数据库的管理负担卸载到 Azure,因此不必担心管理 VM、硬件预配、设置和配置、容量、复制、软件修补或群集缩放。
通过 Azure Cosmos DB,可将数据库配置为全球分布式,并使其可在任何 Azure 区域中使用。为了最小化延迟,请将数据放置在更靠近用户的位置。
Azure Cosmos DB 以透明方式将数据复制到与 Azure Cosmos DB 帐户关联的所有区域。它提供全球分布式 Azure Cosmos DB 数据库和容器的单个系统映像,使应用程序能够在本地读取和写入。
使用统包全球性分布可以随时添加或删除与帐户关联的区域。无需暂停或重新部署应用程序即可添加或删除区域。通过由服务本机提供的多宿主功能来维持高可用性。
Azure Cosmos DB 通过某种选择范围来实现数据一致性,而不是走非常一致性和最终一致性这两种极端。从一致性范畴的五个定义完善的模型中进行选择:
- Strong
- 有限过期
- 会话
- 一致前缀
- 最终
每个模型都由综合 SLA 提供支持。
作为全球分布式数据库,Azure Cosmos DB 提供综合性的 SLA,涵盖了吞吐量、99% 时间内的延迟、一致性和高可用性。
Azure Cosmos DB 以透明方式在与 Azure Cosmos DB 帐户关联的所有 Azure 区域之间复制数据。该服务为数据应用多层冗余
2.Azure Cosmos DB API迁移MongoDB
使用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。
- 实例的数据库版本选用4。
- 设置MongoDB数据库的数据库密码。
- 在某个服务器上安装MongoDB程序。
说明
- 请安装0以上版本。
- 该服务器仅作为数据备份与恢复的临时中转平台,迁移操作完成后不再需要。
- 备份目录所在分区的可用磁盘空间要大于Azure Cosmos DB。
本案例将MongoDB服务安装在Linux服务器上进行演示。
2.2迁移步骤
- 登录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>更换为图中对应选项的值。
等待备份完成,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数据库即迁移完成。