操作手册
【试用教程】快速使用MongoDB副本集实例
mongodb
手动配置
30
教程简介
在本教程中,您将学习如何快速创建MongoDB副本集实例并连接MongoDB数据库读写数据。
云数据库MongoDB(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份恢复、性能优化等功能。
副本集架构适用于读多写少或有临时活动的突发业务场景。
我能学到什么
学会如何创建MongoDB副本集实例。
学会如何连接MongoDB副本集实例并读写数据。
操作难度 | 中 |
所需时间 | 30分钟 |
使用的阿里云产品 | |
所需费用 |
准备环境及资源
15
开始教程前,请按以下步骤准备环境和资源:
访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
成功登录后,在产品类别列表中,选择数据库>NoSQL数据库。在云数据库MongoDB 2核4GB 1个月卡片上单击立即试用。
在配置MongoDB实例信息面板,配置信息。
配置项
说明
本教程示例
地域
实例的地域。请根据您所在的地理位置就近选择地域,实例将创建在该地域,创建后无法变更地域。 若需通过ECS连接MongoDB实例,请确保MongoDB实例与ECS实例为同地域,否则它们无法通过内网互通,只能通过外网连接,无法发挥最佳性能。
华东1(杭州)
系列
固定为标准版【推荐】。
标准版【推荐】
可用区类型
选择可用区类型。固定为单可用区,表示主节点和备节点位于同一可用区。
单可用区
可用区
选择实例所属可用区。
杭州 可用区G
数据库版本
选择数据库版本。
MongoDB 4.2
主备节点数
选择副本集实例的节点数量。
三节点
只读节点数
选择副本集实例的只读节点数量。
无只读节点
存储引擎
固定为WiredTiger。
WiredTiger
存储类型
固定为SSD本地盘。
SSD本地盘
资源组
选择管理实例的资源组。
默认资源组
网络类型
固定为专有网络。
专有网络
专有网络
选择实例所属专有网络。
您可以直接使用Default VPC,如果没有默认VPC,也可以前往VPC控制台创建。
Default VPC
虚拟交换机
选择实例所属交换机。
您可以直接使用Default Switch,如果没有默认交换机,也可以前往VPC控制台创建。
Default Switch
规格
实例的CPU和内存规格。固定为2核4GB(通用型)。
2核4GB(通用型)
存储空间
固定为20 GB。
20 GB
用户名
固定为root。
root
密码设置
设置root账号的密码。您可以选择以下任意一种方法:
立即设置:立即设置密码。
创建后设置:在实例运行期间设置密码,设置方法请参见重置密码。
立即设置
密码
如果您选择立即设置密码,请按照页面提示输入root账号的密码。
请勿在实际业务中使用本教程的示例密码。
Password01
使用时长
固定为1个月。
1个月
使用数量
固定为1。
1
同意协议后,单击立即试用,并根据页面提示完成试用申请。实例创建需要10~15分钟创建集群,之后您就可以在副本集实例列表看到新创建的集群。
按如下要求准备ECS,创建ECS实例的方法,请参见自定义购买实例。
所在地域与云数据库MongoDB相同,并建议所在可用区相同(以减少网络延时)。
网络类型为专有网络,须确保使用与云数据库MongoDB相同的专有网络ID。
操作系统为CentOS 7.9 64位。
您可以前往阿里云免费试用查看您的阿里云账号是否具有云服务器ECS试用资格。如有试用资格,可通过试用ECS来完成教程。如无试用资格,则需使用自有ECS资源才能完成教程。不建议使用生产环境中的自有ECS资源,也不要将教程中的测试数据和自有ECS资源的数据混用。测试完成后及时清理测试数据,避免影响自有资源正常运行。
设置白名单
2
MongoDB实例默认禁止所有IP地址访问,在连接实例前,您需要将ECS实例的IP地址或IP地址段添加到MongoDB实例的白名单中。
登录MongoDB控制台。
在左侧导航栏,单击副本集实例列表。
在页面左上角,选择目标实例所在的资源组和地域,本教程中资源组为默认资源组,地域为华东1(杭州)。
单击目标实例ID。
在左侧导航栏单击数据安全性,选择白名单设置。
在default默认分组的操作列,单击修改。
在允许访问IP名单文本框中,输入ECS实例的主私网IP,单击确定。
您可以登录ECS管理控制台,在左侧导航栏选择实例与镜像>实例,在实例页面,单击目标实例ID,在实例详情页面的网络信息区域查看主私网IP。
连接实例
5
本教程以通过Mongo Shell连接MongoDB副本集实例为例。
登录ECS服务器。登录方法,请参见通过密码或密钥认证登录Linux实例。
在ECS服务器上安装Mongo Shell。
下载Mongo Shell,您可以前往MongoDB官网获取Mongo Shell下载地址,本教程使用的Mongo Shell的Version为1.8.0,Platform为Linux Tarball 64-bit,Package为tgz。
wget <Mongo Shell下载地址>
解压Mongo Shell文件。
tar -xzvf mongosh-1.8.0-linux-x64.tgz
切换到Mongo Shell所在的目录
mongosh-1.8.0-linux-x64/bin
。cd mongosh-1.8.0-linux-x64/bin
使用
./mongosh <ConnectionStringURI高可用连接地址>
连接云数据库MongoDB副本集实例。获取ConnectionStringURI高可用连接地址的方法:
在MongoDB控制台副本集实例列表页,单击实例ID。
在左侧导航栏单击数据库连接,在私网连接 - 专有网络区域复制ConnectionStringURI高可用连接地址。
将ConnectionStringURI高可用连接地址中
root:
后的****
替换为root账号的密码。
./mongosh "mongodb://root:****@dds-bp12855676d4f2d411****.mongodb.rds.aliyuncs.com:3717/admin"
当界面显示
admin>
,表示连接成功。
创建数据库和集合并写入数据
2
成功连接MongoDB实例后,创建并进入test数据库。
use test;
在test数据库中创建mongo集合。返回结果中
ok
取值为1.0
时,表示创建成功,其他取值表示创建失败。db.createCollection("mongo");
写入两组文档
{"name": "test"}
和{"count": "10"}
至mongo集合。db.runCommand({insert: "mongo", documents: [{"name": "test"},{"count": "10"}]});
完成
1
执行命令,查看mongo集合中的文档。
db.getCollection("mongo").find({});
[
{
'_id': ObjectId("63bd29f8e52fddefeb59****"),
'name': "test"
}, {
'_id': ObjectId("63bd29f8e52fddefeb59****"),
'count': "10"
}
]
清理及后续
5
清理
云数据库MongoDB
该MongoDB实例只能免费试用1个月。实例到期后,您可以手动释放。具体操作,请参见释放实例。
如果一直未释放该实例,实例试用到期后也会自动释放,实例到期释放规则,请参见到期或欠费说明。
如需继续使用该实例,您可以手动进行续费。具体操作,请参见续费说明。
云服务器ECS
如果是按量付费的ECS实例:
如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击
,搜索并单击释放设置,根据界面提示释放实例。
如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。
如果是包年包月的ECS实例:
包年包月实例到期会自动释放,释放实例的同时释放数据。
如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。
后续
您可以将自建数据库迁移至MongoDB实例,具体操作,请参见:
总结
常用知识点
问题:使用ConnectionStringURI连接MongoDB实例时,控制台上提供的连接串需要修改吗?(单选题)
正确答案是需要。控制台提供的ConnectionStringURI地址中是没有密码的,您在使用时需要将root:
后的****
替换为root账号的密码。