教程简介
在本教程中,您将学习如何快速创建MongoDB副本集实例并联接MongoDB数据库读写数据。
云数据库MongoDB(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份恢复、性能优化等功能。
副本集架构适用于读多写少或有临时活动的突发业务场景。
我能学到什么
- 学会如何创建MongoDB副本集实例。
- 学会如何连接MongoDB副本集实例并读写数据。
步骤一:准备环境及资源
耗时:15分钟
开始教程前,请按以下步骤准备环境和资源:
- 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
- 成功登录后,在产品类别列表中,选择数据库>NoSQL数据库。在云数据库MongoDB 1核2GB 3个月卡片上单击立即试用。
- 在配置MongoDB实例信息面板,配置信息。
配置项 |
说明 |
本教程示例 |
地域 |
实例的地域。请根据您所在的地理位置就近选择地域,实例将创建在该地域,创建后无法变更地域。 若需通过ECS连接MongoDB实例,请确保MongoDB实例与ECS实例为同地域,否则它们无法通过内网互通,只能通过外网连接,无法发挥最佳性能。 |
华东1(杭州) |
系列 |
固定为标准版【推荐】。 |
标准版【推荐】 |
可用区类型 |
选择可用区类型。
|
单可用区 |
可用区 |
选择实例所属可用区。 当选择可用区类型为多可用区时,您还需要指定备可用区1和备可用区2,且备可用区1、备可用区2需要与主可用区不同。 |
杭州 可用区G |
数据库版本 |
选择数据库版本。 |
MongoDB 4.2 |
主备节点数 |
选择副本集实例的节点数量。 |
三节点 |
只读节点数 |
选择副本集实例的只读节点数量。 |
无只读节点 |
存储引擎 |
固定为WiredTiger。 |
WiredTiger |
存储类型 |
固定为SSD本地盘。 |
SSD本地盘 |
资源组 |
选择管理实例的资源组。 |
默认资源组 |
网络类型 |
固定为专有网络。 |
专有网络 |
专有网络 |
选择实例所属专有网络。 您可以直接使用Default VPC,如果没有默认VPC,也可以前往VPC控制台创建。 |
Default VPC |
虚拟交换机 |
选择实例所属交换机。 您可以直接使用Default Switch,如果没有默认交换机,也可以前往VPC控制台创建。 |
Default Switch |
规格 |
副本集实例的CPU和内存规格。固定为1核2GB(通用型)。 |
1核2GB(通用型) |
存储空间 |
固定为20 GB。 |
20 GB |
用户名 |
固定为root。 |
root |
密码设置 |
设置root账号的密码。您可以选择以下任意一种方法:
|
立即设置 |
密码 |
如果您选择立即设置密码,请按照页面提示输入root账号的密码。 请勿在实际业务中使用本教程的示例密码。 |
Password01 |
使用时长 |
固定为3个月。 |
3个月 |
使用数量 |
固定为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
连接云数据库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实例只能免费试用3个月。实例到期后,您可以手动释放。具体操作,请参见释放实例。
如果一直未释放该实例,实例试用到期后也会自动释放,实例到期释放规则,请参见到期或欠费说明。
如需继续使用该实例,您可以手动进行续费。具体操作,请参见续费说明。 - 云服务器ECS如果是按量付费的ECS实例:
- 如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击,搜索并单击释放设置,根据界面提示释放实例。
- 如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。
- 如果是包年包月的ECS实例:
- 包年包月实例到期会自动释放,释放实例的同时释放数据。
- 如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。
后续
您可以将自建数据库迁移至MongoDB实例,具体操作,请参见: