# huaweicloud-solution-deploy-a-highly-available-mongodB **Repository Path**: HuaweiCloudDeveloper/huaweicloud-solution-deploy-a-highly-available-mongod-b ## Basic Information - **Project Name**: huaweicloud-solution-deploy-a-highly-available-mongodB - **Description**: 该方案能帮助您在华为云弹性云服务器上轻松搭建mongodb副本集容灾。实现集群内服务器的数据备份,利用额外的数据副本,致力于灾难恢复或者备份,具有自动故障恢复的主从集群。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-07-14 - **Last Updated**: 2023-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [TOC] **解决方案介绍** =============== 该解决方案可以帮助您在华为云弹性云服务器上轻松搭建基于副本集的高可用MongoDB集群。MongoDB 是一种开源的NoSQL 数据库,将数据存储为一个文档,数据结构由键值对组成。副本集是MongoDB常用的实现高可用的技术,用来构建具有自动故障恢复能力的MongoDB主从集群。 解决方案实践详情页面地址:https://www.huaweicloud.com/solution/implementations/deploy-a-highly-available-mongodb.html **架构图** --------------- ![方案架构](./document/deploy-a-highly-available-mongodb.png) **架构描述** --------------- 该解决方案会部署如下资源: - 创建3台弹性云服务器部署在不同的可用区,分别用于搭建MongoDB副本集的主节点、备节点。 - 创建公网NAT网关,配置SNAT规则,提供节点访问公网的单向能力,保障数据库环境的访问安全同时方便运维。 **组织结构** --------------- ``` lua huaweicloud-solution-deploy-a-highly-available-mongodB ├── deploy-a-highly-available-mongodB.tf.json -- 资源编排模板 ├── userdata ├── install_primary_db.sh -- 脚本配置文件 ├── install_secondary_db01.sh -- 脚本配置文件 ├── install_secondary_db02.sh -- 脚本配置文件 ``` **开始使用** --------------- **MongoDB数据库密码修改(可选)** 1.登录[ECS弹性云服务器](https://console.huaweicloud.com/ecm/?agencyId=8f3a7568dba64651869aa83c1b53de79®ion=cn-north-4&locale=zh-cn#/ecs/manager/vmList)控制平台,选择创建的后缀为primary的弹性云服务器,单击远程登录,进入Linux弹性云服务器。 图1 登录ECS云服务器控制平台 ![登录ECS云服务器控制平台](./document/readme-image-001.png) 图2 登录ECS云服务器控制平台 ![登录Linux弹性云服务器](./document/readme-image-002.png) 2.在Linux弹性云服务中输入账号和密码后回车。 图3 登录ECS弹性云服务器 ![登录ECS弹性云服务器](./document/readme-image-003.png) 3.输入命令mongo -uroot -p密码 --authenticationDatabase "admin"登录数据库 图4 登录MongoDB数据库 ![登录MongoDB数据库](./document/readme-image-004.png) 4.如果要修改MongoDB数据库的root用户密码。在进入MongoDB数据库的情况下,切换到admin数据库,输入db.changeUserPassword("root","新密码")后按回车。修改完成后输入命令"exit",退出MongoDB数据库。 图5 切换到admin数据库,修改MongoDB数据库的root用户密码 ![切换到admin数据库,修改MongoDB数据库的root用户密码](./document/readme-image-005.png) **验证MongoDB部署成功** 1.单击该方案堆栈后的“输出”,根据回显登录[ECS弹性云服务器](https://console.huaweicloud.com/ecm/?agencyId=8f3a7568dba64651869aa83c1b53de79®ion=cn-north-4&locale=zh-cn#/ecs/manager/vmList)控制平台验证。 图6 输出回显命令 ![输出回显命令](./document/readme-image-006.png) 2.在ECS弹性云服务控制平台,选择创建的后缀为primary的弹性云服务器,单击远程登录,进入Linux弹性云服务器。 图7 登录ECS云服务器控制平台 ![登录ECS云服务器控制平台](./document/readme-image-007.png) 图8 登录Linux弹性云服务器 ![登录Linux弹性云服务器](./document/readme-image-008.png) 3.输入mongo -uroot -p密码 --authenticationDatabase "admin"登录MongoDB,命令行回显为primary,表示MongoDB部署成功。 图9 数据库连接 ![数据库连接](./document/readme-image-009.png)