mongodb搭建副本集
Mongodb副本集模式搭建
本文采用三个mongodb节点进行测试,一个primary(主节点),一个secondary(从节点),一个arbiter(裁判)
目录
1 配置文件设置
2 启动实例
3 创建超级用户
4 创建业务库和相关用户
5 创建KeyFile
6 开启副本集
6.1 初始化副本集
6.2 添加从节点和裁判
6.3 查看配置结果
7 测试从库的用户账户共享
8 程序测试
1 配置文件设置
虽然有三个节点,但每个节点的配置文件内容形式基本一致,区别就是数据、日志路径和监听地址。一个最终的配置文件内容如下
# mongod.conf# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data.
storage:dbPath: D:\Program Files\MongoDB\Server\6.0\bin\1\datajournal:enabled: true
# engine:
# wiredTiger:# where to write logging data.
systemLog:destination: filelogAppend: truepath: D:\Program Files\MongoDB\Server\6.0\bin\1\log\mongod.log# network interfaces
net:port: 27017bindIp: 0.0.0.0#processManagement:security:keyFile: D:\Program Files\MongoDB\Server\6.0\bin\mongodb.keyfileauthorization: enabled#operationProfiling:replication:replSetName: rs1#sharding:## Enterprise-Only Options:#auditLog:#snmp:
2 启动实例
配置好各个节点的配置文件后,就可以分别启动实例,我们先把下面配置注释掉,然后只启动准备做为主节点的实例,因为要先创建
用户,创建好后再打开重启。
#security:
# keyFile: D:\Program Files\MongoDB\Server\6.0\bin\mongodb.keyfile
# authorization: enabled
注意:等副本集搭建好后,从节点和裁判会共用主节点创建的用户。
启动:mongod --config path/mongod1.cfg
3 创建超级用户
使用mongodb的ssh客户端(比如MongoSH或MongoDB Compass)连接启动的主实例,以Mongosh为例,命令如下:
mongosh "mongodb://ip:port"
这里不需要使用用户名和密码.
连接成功后,可以先查看数据库列表
show dbs
admin这个数据库肯定会有的,切换到admin
use admin
创建一个超级管理员用户
db.createUser({user: 'admin', // 用户名pwd: '123456', // 密码roles:[{role: 'root', // 角色db: 'admin' // 数据库}]
})
4 创建业务库和相关用户
可以使用MongoDB Compass连接到上面的主实例,连接字符串如下:
mongodb://admin:123456@ip:port
连接成功后,在Compass的DataBase选项卡下Create DataBase
然后顺带在Compass的底部,使用Mongosh,键入如下代码,创建该库的用户
db.createUser({user: 'program', // 用户名pwd: '123456', // 密码roles:[{role: 'dbOwner', // 角色db: 'mydb' //数据库}]
})
5 创建KeyFile
keyFile用于副本集节点间的验证。
使用openssl命令生成一个keyfile,并且分别关联到各个节点的配置文件,并打开验证,如下:
security:keyFile: D:\Program Files\MongoDB\Server\6.0\bin\mongodb.keyfileauthorization: enabled
6 开启副本集
首先要设置副本集名字,在本质文件中添加如下配置:
replication:
replSetName: rs1
Name随意,但三个节点的配置文件中的这个配置必须一致。
我们还是先只操作主实例,关闭主实例,并重启(因为改了配置文件,开启了验证)
mongod --config path/mongod1.cfg
6.1 初始化副本集
使用Mongosh连接到主实例
mongosh "mongodb://ip:port"
切换到admin库
use admin
认证
db.auth('admin', '123456')
初始化
rs.initiate()
6.2 添加从节点和裁判
我们先启动从节点和裁判,启动命令同主节点:
mongod --config path/mongodXXX.cfg //使用各自的配置文件
添加从节点:
rs.add("ip:port") // 填入从节点ip和端口
添加裁判:
rs.addArb("ip:port") // 填入裁判ip和端口,这里用的是addArb
6.3 查看配置结果
rs.status()
理论上这时候应该看到三个节点的stateStr分别是:PRIMARY、SECONDARY和ARBITER。
如果不行,就把三个节点重启,重新通过mongosh连接主节点使用rs.status()查看,连上后要
先切换到admin库进行认证。
我的测试结果如下图:
7 测试从库的用户账户共享
使用mongosh连接到从库,使用db.auth()测试之前在主库上创建的账户,理论上应该返回'OK'
8 程序测试
以golang客户端为例,连接副本集的连接字符串如下:
const uri = "mongodb://program:123456@10.1.28.23:27017,10.1.28.23:27018,10.1.28.23:27019/?replicaSet=rs1&authMechanism=SCRAM-SHA-1&authSource=mydb"
连接成功后,就可以使用副本集的Watch特性以及其它常规操作。
mongodb搭建副本集相关推荐
- MongoDB 搭建副本集
副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成.通过Replication,将数据的更新由Primary ...
- SpringBoot整合MongoDB以及副本集、分片集群的搭建
整合springboot应用 说明: 这里主要以 springboot 应用为基础应用进行整合开发. Spring Data : Spring 数据框架 JPA .Redis.Elasticsearc ...
- MongoDB之副本集创建
目录 一 复制 1 复制简介 2 建立副本集 3 网络注意事项 4 安全注意事项 5 观察副本集 6 更改副本集操作 7 如何设计副本集 8 如何进行选举 9 成员变量配置 10 创建索引 二 同步 ...
- MongoDB之副本集
MongoDB之副本集 一.简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库 ...
- MongoDB配置副本集(含Arbiter)
MongoDB配置副本集(含Arbiter) 集群模式为:一主一副一仲裁 安装依赖 yum install net-snmp lsof -yyum install net-snmp -y 配置数据节点 ...
- mongodb分片+副本集集群环境搭建
1.准备工作 准备机器 端口 28000 27017 27018 27019 27020 192.168.0.1 config route shardmaster shardreplset shard ...
- MongoDB分片副本集搭建
1.安装mongodb tar xvf mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz -C /usr/local/ cd /usr/local mv ...
- mongodb系列~mongodb的副本集搭建和原理
一 简介: mongodb副本集 二 复制方式: 1 全量复制 2 增量复制 三 同步检测过程: 一 正常情况下: 1 master执行语句,并将所有的修改数据库的操作以日志Op ...
- Golang + MongoDB ReplSet副本集
本文介绍MongoDB副本集,暂且按照3个节点来配置:A(primary).B(secondary).C(arbiter) 1. 在集群每个节点上安装一份MongoDB: 2. 配置副本集: 3. 配 ...
最新文章
- phonegap+jquerymobile开发android的心得(6)
- 解析软件测试需要变革的因素
- Swift 开源精选-v1.0(进阶篇)
- python3串口通信16进制_STM32串口通信——16进制数形式
- 学生用计算机重启,如何使学校的电脑在重启后不自动还原系统?
- redis配置文件下载
- Google 搜索服务退出中国
- inurl home.php,phpweb /version.php Vul
- JQuery从入门到实战
- vuepress-theme-reco自动生成侧边栏
- DB2 SQL 消息
- 《C语言程序设计》江宝钏主编-习题8-4-复制字串!!!
- 【Tryhackme】Hacker of the Hill #1
- 计算机应用基础实训室,计算机应用基础实训
- 双离合档把上按钮作用_帕萨特档杆按钮作用是什么
- SwiftUI之NavigationView的基础使用与进阶实践
- Android开发之APP直播简介
- 视听语言-2镜头系列
- python求一元二次方程的解法_函数练习_《从零开始学 python》(第二版)
- 《从祖先到算法—加速进化的人类文化》简评
热门文章
- 手机tribe.html,申请国外学历、研究生、联合培养有用模板
- Android App 网络接入实时监控
- unity3d 各大插件评测
- ECIF系统大致框架理解,ECIF和OFSA的OFDM的框架及应用
- oracle讲座心得1000字,教育讲座心得体会(精选8篇)
- linux重启用reboot后起不来_「linux重启命令」Linux之重启reboot命令 - seo实验室
- rust学习(二)猜数字游戏主要语句和理解
- 制作LCD 的测试图片RGB666格式
- 2014年工作中遇到的20个问题:101-120
- Adobe Experience Cloud:整合三朵云 借鉴国外经验提升营销效果