场景描述
在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法抵抗读取压力,甚至对主业务产生影响。您可以基于当前实例的集群架构与存储引擎,在源实例可用区或其他可用区创建一个或多个全新的只读实例,把当前实例的读请求转移在只读实例,实现读取能力的弹性扩展,提升读写性能,增加应用的吞吐量。
使用须知
由于数据同步有延迟,只读实例数据同步的实时性可能无法保证,如果业务需要读写分离并且对实时要求比较高,建议业务读取主实例的从节点。各只读实例与主实例之间的同步时延可在控制台查看。
只读实例和主实例的连接方式相同,请参见 连接实例。
在只读实例生命周期内,只读实例只能读,不能进行数据写入更新操作。
只读实例不支持手动断开与源实例的关联,只有在源实例销毁时,会自动断开与源实例的关联。只读实例即转为普通实例,可以正常读写。
版本说明
当前 MongoDB 4.0、4.2、4.4、5.0、6.0版本副本集实例均支持创建只读实例,分片实例仅4.0及以上版本支持。
前提条件
当前实例状态运行正常,读请求量很大,且时延大,数据库运行缓慢。具体信息,请参见 监控指标。
已规划只读实例所在可用区,及其所属网络。
已预估只读实例存储规格、购买数量。
已依据业务场景选择计费模式,并预算只读实例所需费用。
创建只读实例
1. 登录 MongoDB 控制台。
2. 在左侧导航栏,选择 NoSQL > MongoDB。
3. 在 MongoDB 的下拉列表中,选择副本集实例或者分片实例。副本集与分片集群操作类似。
4. 在右侧实例列表页面上方,选择地域。
5. 在实例列表中,找到目标实例。
6. 单击目标实例 ID,进入实例详情页面。
7. 选择只读灾备页签,进入只读实例页面。
8. 在只读实例页面,单击新建。
9. 在云数据库 MongoDB 只读实例购买页面,确认主实例信息,选择所需配置。
请参见下表,根据实际需求配置实例规格。参数名称 | 参数说明 |
计费模式 | |
地域 | 只读实例所属地域固定与源实例保持一致,不可更改。 |
可用区 | 选择是否启用多可用区部署,可根据实际高可用业务需求设置。 |
数据库版本 | 数据库版本固定与源实例保持一致,不可更改。 |
架构类型 | |
存储引擎 | 默认的存储引擎为 WiredTiger。 |
Mongod 规格 | |
Mongod 分片数 | 架构类型选择分片集群,显示该参数。用于设置分片集群分片的数量,取值范围:[1,20]。只读实例的分片数量务必大于等于源实例的分片数量。每一个分片都是一个副本集,增加分片的数量,可以提高集群的可存储量,请您按需选择。 |
磁盘容量 | 在滑轴上选择数据库实例的存储容量。只读实例的磁盘容量务必大于等于源实例。Mongod 规格不同,磁盘容量的取值范围不同。请参见 产品规格。其中,系统默认设定 Oplog 的存储空间为所选存储容量的10%,Oplog 的大小可在控制台实例列表中进行调整。具体操作,请参见 调整 Oplog 容量。 |
主从节点数 | 架构类型为副本集,显示该参数。默认为3节点(1主2从),3个存储节点组成1主2从的架构,暂不可自定义副本数量。您可在下拉列表选择5节点(1主4从)、7节点(1主6从)。 |
每片主从节点数 | 架构类型为分片集群,显示该参数。用于设置分片集群中每一个分片的节点数量,系统默认为3节点(1主2从节点),即每个分片是1主2从的3节点架构,支持在下拉列表选择5节点(1主4从节点)、7节点(1主6从节点),暂不支持自定义节点数量。创建实例之后,支持提升实例每分片的从节点数量。具体操作,请参见 新增从节点数。 |
只读节点数 | 设置只读节点的数量,支持无只读节点、1 - 5只读节点。仅4.0、4.2版本支持配置只读节点数,3.6版本不支持。 |
配置说明 | 根据已配置的 Mongod 规格来计算实例最大的连接数,帮助您预测当前规格是否满足预期。 |
Mongos 规格 | 架构类型选择分片集群,显示该参数。用于配置 Mongos 的规格。配置好 Mongod 规格之后,Mongos 会有默认的规格适配。例如,Mongod 选择2核4GB,Mongos 默认配置为1核2GB。提升 Mongos 的规格,将会计费。如何计费,请参见 产品定价。分片集群的连接数上限将由您选择的 Mongos 规格和数量决定。您可以在配置说明查看实例的最大连接数。 |
Mongos 数量 | 架构类型选择分片集群,显示该参数。用于配置 Mongos 的数量,实例部署在同一可用区,Mongos 数量取值范围为[3,32]。如果可用区勾选了启用多可用区部署,实例部署在不同的可用区,Mongos 数量的取值范围为[6,32]。增加 Mongos 的数量,将会计费。如何计费,请参见 产品定价。 |
网络类型 | 仅支持选择私有网络。 |
IPV4网络 | 选择具体的私有网络及其子网。建议您选择与云服务器同一个地域下的同一个 私有网络。私有网络具有地域(Region) 属性(如广州),而子网具有可用区(Zone) 属性(如广州一区),私有网络可划分一个或多个子网,同一私有网络下不同子网默认内网互通,不同私有网络间(无论是否在同一地域)默认内网隔离。 |
IPV6网络 | 勾选是否启用 IPV6 访问。当前都不支持。 |
安全组 | |
指定项目 | 给实例分配相应的项目。您可以根据项目来管理实例。 |
标签 | 给实例设定标签。您可以根据标签归类管理实例。单击添加,可以选择标签键与标签值。 |
实例名称 | 设置实例的名称,默认为500,请设置便于识别的名称。 仅支持长度小于60的中文、英文或者数字,短划线"-"、下划线"_"。 |
购买数量 | 一个实例最大支持创建3个只读实例。 |
购买时长 | 选择包年包月计费模式时,您需要选择购买实例的时长。时长越长,折扣越大,可根据业务实际需求选择。 |
自动续费 | |
总计费用 | 选择包年包月计费模式时,显示所购买规格的总费用。 选择按量计费,显示每小时的费用,单击计费详情,可参见 产品定价。 |
10. 确认参数配置无误,单击立即购买,提示购买成功,单击前往控制台,在实例列表,待实例状态显示为运行中,即可正常使用。
查看只读实例
1. 登录 MongoDB 控制台。
2. 在左侧导航栏 MongoDB 的下拉列表中,选择副本集实例或者分片实例。副本集实例与分片实例操作类似。
3. 在右侧实例列表页面上方,选择地域。
4. 在实例列表中,找到只读实例的源实例。
您可以通过实例列表右上角的搜索框,输入实例 ID、实例名称、内网 IP 或标签键来查找目标实例。
如果实例在实例列表未找到,请在左侧导航栏选择回收站,确认实例是否因费用到期而被隔离在回收站。具体信息,请参见 回收站。
5. 在源实例的实例 ID / 名称列,单击实例 ID,进入实例详情页面。
6. 单击只读灾备页签,并选择只读实例页签。
7. 查看源实例下所有的只读实例。
参数 | 参数说明 |
实例 ID | |
状态 | 实例当前的运行状态,正常为:运行中。 |
规格 | 实例规格信息,包含:内存及其磁盘容量。 |
时延 | 只读实例基于源实例同步的状态,及其时延。 |
节点数 | 只读实例主节点与从节点的数量。 |
所属网络 | 只读实例所属私有网络名称。 |
内网地址 | |
地区 | 所属地域与可用区信息。 |
到期时间 | 包年包月计费时,显示实例到期的具体时间点。按量计费时为空。 |
操作 | 单击配置变更,可调整只读实例的规格,源实例调整规格,请务必同步提升只读实例的规格,否则可能出现数据丢失的现象。 |
相关 API
API 接口 | API 解释 |
DescribeDBInstances | |
RenameInstance | |
RenewDBInstances |