七天玩转MongoDB训练营-课程文档

[toc]

image-20210107161047278

什么是MongoDB Serverless版

更新时间:2020-11-07 19:37:56

本页目录

本文档详细介绍MongoDB Serverless版的架构、实现以及应用场景。

产品定义

MongoDB是当今主流的NoSQL数据库,也是功能强大、社区完善的文档数据库,但是由于产品形态偏中大型客户,起配门槛高,对于小企业或个人开发者不够友好。针对这个问题,阿里云推出了MongoDB Serverless形态,该形态是通过内核和代理层面实现命名空间及存储空间隔离的多租户MongoDB数据库服务,提供代理、网络资源、命名空间、存储空间的垂直资源隔离能力,同时提供计算资源按需计费能力,具有资源用量低、简单易用、弹性灵活、价格低廉等优点,完美解决了MongoDB使用门槛高的问题,帮助中小客户轻松上云。

使用限制

目前版本的MongoDB Serverless版实例暂不支持弹性扩缩容功能,将会在以后的版本中提供支持。

产品架构

产品架构图

  • 如上图所示,在创建实例后,系统会在VPC中为用户申请虚拟IP(VIP),并使用该虚拟IP随机绑定代理资源池内固定的两个Mongos节点,在提供服务时,仅连接其中一个Mongos节点,当该Mongos节点故障无法访问时,系统会自动切换到另一个Mongos节点,同时故障节点会被自动修复挂起备用,保证服务的高可用。
  • 通过租户ID(TenantID)+命名空间(Namespace)的方式在Mongos层面实现数据的逻辑隔离。

与云数据库MongoDB版的区别

MongoDB Serverless版的底层是通过MongoDB的分片集群来实现的,下表以最近似于Serverless版的1核2GB规格的分片集群实例为例,对比云数据库MongoDB版和MongoDB Serverless版的优缺点。

对比项目 MongoDB分片集群实例 MongoDB Serverless版
网络类型 经典网络专有网络 专有网络
数据库版本 3.44.04.2 4.2
最大连接数 1000 50
最大IOPS 1000 100
存储空间 10GB 10GB
服务可用性 支持 支持
备份恢复 控制台支持。 可通过mongodump、mongorestore支持。详情请参见使用MongoDB工具迁移自建数据库上云
实例监控 支持 支持
安全管理 支持白名单设置。支持安全组设置。支持链路加密。支持数据存储加密。支持BYOK。 支持白名单设置。支持安全组设置。
账号管理 支持控制台创建账号。 提供默认账号,支持修改密码。
日志管理 支持慢日志。支持审计日志。支持运行日志。 不支持
弹性扩缩容 不支持,需要在控制台手动扩缩容。 根据实际业务场景自动扩缩容,节省资源消耗。说明 当前版本暂不支持该功能,将会在后续版本中提供支持。
架构 单独享有一个集群。 多租户,通过租户ID和命名空间的方式实现资源隔离。
售价 1026.60元/月 78.2元/月

读写吞吐量CU

MongoDB Serverless版较为重要的是它的服务能力,即读写吞吐量。读写吞吐量的单位为读服务能力单元和写服务能力单元,简称CU(Capacity Unit),是数据读写操作的最小单位。当用户对MongoDB Serverless实例的数据库进行读写操作时,会消耗对应的写服务能力单元和读服务能力单元。

  • 1个单位的读服务能力单元表示从数据表中读取一条4KB数据。
  • 1个单位的写服务能力单元表示向数据表写入一条4KB数据。
  • 操作数据大小不足4KB的部分向上取整。例如写入7.6KB数据消耗2个单位的写服务能力单元,读取0.1KB数据消耗1个单位的读服务能力单元。

说明 目前MongoDB Serverless版提供了100CU的读写吞吐能力。100CU的实例中最多可创建10个数据库,10个数据库中集合(Collection)的总数可达100个。

用户场景

MongoDB Serverless版适用于如下用户:

  • 中小型轻量级的用户:MongoDB Serverless版非常适用于即开即用型的中小客户,无需购买整个集群,按使用量收费。短暂使用成本可以压缩到原来的10%以下。秒级别服务启动和销毁的速度也让客户的应用非常灵活。
  • 希望全托管或完全免运维的用户:MongoDB Serverless版后台的运维团队是经过长期技术积累的阿里运维团队,可以非常专业地对集群进行运维、升级、调优和问题处理。对于中小公司提供完全免运维的集群服务,后台服务永远高效稳定。

关于MongoDB控制台(单节点实例)

更新时间:2021-01-06 14:49:09

本页目录

MongoDB管理控制台是用于管理MongoDB实例的Web应用程序,您可以在MongoDB管理控制台上执行创建实例、设置IP白名单、设置连接数据库的密码、设置网络等操作。

MongoDB管理控制台是阿里云管理控制台的一部分,关于控制台的通用设置和基本操作请参见使用阿里云管理控制台

前提条件

使用阿里云账号登录MongoDB管理控制台。若没有阿里云账号,请单击注册

控制台首页

对于MongoDB所有单节点类型的实例而言,控制台首页的界面信息都是相同的。

登录MongoDB管理控制台,进入副本集实例列表页面,如下图所示。控制台首页

参考说明

序号 名称 说明
1 副本集实例列表 MongoDB控制台的副本集实例列表,显示同一账户中某个地域下的单节点或副本集实例信息。
2 地域 选择某一个地域,该地域下的所有实例就会显示在实例列表中。
3 创建实例 创建单节点实例入口。
4 刷新 刷新实例信息页面。
5 导出 导出实例列表
6 实例ID 单击进入该实例详情页面。
7 运行状态 实例运行状态,根据实例的不同情况也会有不同的状态。
8 管理 单击进入实例的管理详情页面,如查看基本信息、设置备份与恢复、查看监控信息设置白名单等。
9 重启 重启实例
10 更多 一些操作的便捷按钮,如变更配置等。
11 修改实例备注 单击铅笔图标可修改实例的备注名,若不修改,则与实例ID一致。
12 资源组 通过设置资源组,您可以对单个云账号下多个地域、多种云资源进行集中的分组管理。如何创建资源组请参见创建资源组

MongoDB实例控制台

登录MongoDB管理控制台,单击目标实例ID/名称,即可进入MongoDB实例的该实例的管理页面,详情如下表所示:

控制台页面名称 名称 描述 常用操作链接
界面上方操作区 - 迁移MongoDB数据库、备份实例、重启实例等操作。 通过DMS连接MongoDB单节点实例使用DTS迁移单节点架构的自建MongoDB数据库上云手动备份MongoDB数据重启实例
界面左侧导航栏 基本信息 查看实例的基本信息,如实例ID、网络类型,进行变更实例配置操作等。 变更配置方案概览
账号管理 查看实例账号,重置密码操作。 重置密码
数据库连接 查看节点的连接地址。 副本集实例连接说明
备份与恢复 配置实例的自动备份、管理备份数据、按时间点新建实例等。 设置自动备份MongoDB数据
监控信息 查看实例的资源使用率。 查看监控信息
报警规则 设置实例报警规则。 设置报警规则
服务可用性 查看当前实例的可用区分布情况。
参数列表 设置数据库参数。 设置数据库参数
数据安全性 实例的安全性配置,如白名单、SSL和TDE。 设置白名单及安全组
日志管理 单节点实例不支持日志管理功能。
CloudDBA 通过数据库自治服务DAS对MongoDB数据库进行分析。 性能趋势实时性能实例会话空间分析慢日志

Serverless实例连接说明

更新时间:2020-10-12 09:29:15

本页目录

MongoDB Serverless版实例提供高可用数据库连接地址。本文介绍该连接地址的获取方式和连接说明。

获取数据库连接地址

  1. 登录MongoDB管理控制台

  2. 在页面左上角,选择实例所在的资源组和地域。

  3. 在左侧导航栏,单击Serverless实例列表

  4. 找到目标实例,单击实例ID。

  5. 在左侧导航栏,单击数据库连接,查看数据库连接信息。

    查看数据库连接信息

连接地址说明

项目 说明
地址类型 专有网络连接地址:专有网络是一种隔离的网络环境,安全性和性能均高于传统的经典网络。 MongoDB Serverless版实例仅提供专有网络连接地址,专有网络拥有更高的安全性和性能。公网连接地址:由于通过公网连接实例存在一定的安全风险,MongoDB Serverless版实例默认未提供公网连接地址。如果您要使用阿里云以外的设备(例如本地设备)连接MongoDB Serverless版实例,您可以手动申请公网连接地址
连接地址 连接地址的格式如下。<host>:<port>:登录MongoDB数据库的域名地址。:登录MongoDB数据库的端口。
ConnectionstringURI连接地址 ConnectionstringURI连接地址格式如下。mongodb://[username:password@]host[:port][/[database][?options]]mongodb://:前缀,代表这是一个Connection String URI连接地址。username:password@:连接MongoDB实例的用户名和密码,使用英文冒号(:)分隔。host:port:实例的连接地址和端口号。/database:鉴权数据库名,即数据库账号所属的数据库。?options:指定额外的连接选项。

登录MongoDB数据库

  1. 获取了上述的数据库连接地址后,您还需要获取下述信息:
    • MongoDB Serverless版实例的数据库账号,由系统默认提供。 获取方法:
      1. 登录MongoDB管理控制台
      2. 在页面左上角,选择实例所在的资源组和地域。
      3. 在左侧导航栏,单击Serverless实例列表
      4. 找到目标实例,单击实例ID。
      5. 基本信息页面的连接信息区域,查看系统提供的账号名
    • 登录数据库的密码,如密码遗失可以重置密码
    • 鉴权数据库名,即数据库账号所属的数据库。如果使用系统提供的初始账号,则对应的数据库名为admin。
  2. 登录MongoDB数据库。

常见的连接场景

相关问题

使用MongoDB工具备份与恢复MongoDB Serverless版实例

更新时间:2021-01-06 11:36:55

本页目录

您可以使用MongoDB数据库自带的备份还原工具mongodump和mongorestore,备份和恢复MongoDB Serverless版实例。

背景信息

由于当前Serverless控制台暂不支持备份与恢复功能,您可以通过MongoDB官方工具来达到备份恢复的目的。

注意事项

  • 确保安装的mongodump和mongorestore软件版本为4.2。安装步骤详情请参见官方文档Install MongoDB
  • 通过MongoDB工具备份Serverless实例的数据库为全量逻辑备份。为保障数据一致性,备份操作开始前请停止源库的相关业务,并停止数据写入。
  • 执行mongodump备份命令将覆盖dump文件夹中的历史备份文件。如果您之前使用mongodump命令对源库执行过备份操作,请将dump文件夹中的备份文件移动至其他目录并确保dump文件夹为空。
  • 必须在安装有MongoDB数据库的服务器上执行mongodump和mongorestore命令,而不是在mongo shell环境下执行。
  • 您必须拥有目标数据库的读写权限。
  • 您必须先申请公网连接地址。详情请参见申请公网连接地址

使用mongodump备份Serverless实例数据库

  1. 登录MongoDB管理控制台

  2. 在页面左上角,选择实例所在的资源组和地域。

  3. 在左侧导航栏,单击Serverless实例列表

  4. 在左侧导航栏中,单击数据库连接

  5. 找到并复制公网连接地址。

  6. 在安装有mongodump和mongorestore的本地服务器中,执行如下命令进行数据备份。

    1
    mongodump --host <mongodb_host>:3717 -u <username> --authenticationDatabase admin

    说明

    • :Serverless实例的公网连接地址。
    • :连接Serverless实例数据库的账号名。您可以在MongoDB控制台基本信息页面中的连接信息区域找到账号名

    示例:

    1
    mongodump --host dds-t4n**********-pub.mongodb.singapore.rds.aliyuncs.com:3717 -u user12345 --authenticationDatabase admin

    说明 如果提示无法连接,请先将本地服务器的IP地址添加到Serverless实例的白名单中。详情请参见设置白名单

  7. 命令行提示Enter password:时,输入数据库账号对应的密码,数据库开始备份。如果您丢失了该密码,请重置密码

    说明 等待备份完成,数据将备份至当前目录下的dump文件夹中。

使用mongorestore恢复Serverless实例数据库

  1. 登录MongoDB管理控制台

  2. 在页面左上角,选择实例所在的资源组和地域。

  3. 在左侧导航栏,单击Serverless实例列表

  4. 在左侧导航栏中,单击数据库连接

  5. 找到并复制公网连接地址。

  6. 在安装有mongodump和mongorestore的本地服务器中,执行如下命令将备份数据导入至Serverless实例数据库。

    1
    mongorestore --host <mongodb_host>:3717 -u <username> -d <database>  <dir> --authenticationDatabase admin

    说明

    • :Serverless实例的公网连接地址。
    • :连接Serverless实例数据库的账号名。您可以在MongoDB控制台基本信息页面中的连接信息区域找到账号名
    • :需要导入的数据库。备份文件中如有多个数据库,需要重复本步骤进行其它数据库的导入。
    • :数据库备份文件所在的目录。

    示例:

    • 导入数据库备份文件中的mongodbtest数据库:

      1
      mongorestore --host dds-t4n**********-pub.mongodb.singapore.rds.aliyuncs.com:3717 -u user12345 -d mongodbtest /dump/mongodbtest --authenticationDatabase admin
    • 导入数据库备份文件中的test123数据库:

      1
      mongorestore --host dds-t4n**********-pub.mongodb.singapore.rds.aliyuncs.com:3717 -u user12345 -d test123 /dump/test123 --authenticationDatabase admin

    说明 如果提示无法连接,请先将本地服务器的IP地址添加到Serverless实例的白名单中。详情请参见设置白名单

  7. 命令行提示Enter password:时,输入数据库账号对应的密码,数据库开始导入。如果您丢失了该密码,请重置密码

    说明 等待恢复完成,数据将导入至Serverless实例数据库中。

订阅阿里云数据库社区

https://developer.aliyun.com/community/database?spm=a2c6h.20980894.J_2725970650.7.54b64f502lp6Ah

数据库大讲堂直播加餐

https://developer.aliyun.com/topic/database/lives?spm=a2c6h.20980894.J_2725970650.8.54b64f502lp6Ah

了解数据库学习中心

https://developer.aliyun.com/learning/roadmap/database?spm=a2c6h.20980894.J_2725970650.9.54b64f502lp6Ah