MongoDB副本集配置和创建

副本集有三类角色:master(primary),slave(secondary),仲裁服务器。

primary是主,只有primary能写入,secondary无法插入数据,且需要声明是slave才能查看数据

一般生产搞三个服务器做一个master和两个slave,再来一个服务器做仲裁节点服务器,说是有仲裁服务器才可以自动切换,但是我没有也可以的,要是不信,也可以自己试试,呵呵。

---副本集搭建,安装软件和单实例一模一样,下面是配置文件,三台服务器用不同的端口:

systemLog:

destination: file

logAppend: true

path: /data/mongodb-cluster/27017/mongodb.log

storage:

dbPath: /data/mongodb-cluster/27017

journal:

enabled: true

processManagement:

fork: true

net:

port: 27017

bindIp: 0.0.0.0

replication:

replSetName: zmh

另外两台的配置就省略了,只需要改path和端口信息就行。

---启动三个mongodb服务器,需要对应更改端口、数据目录、日志路径

/usr/local/mongodb/bin/mongod -f /data/mongodb-cluster/27017/mongodb.conf

/usr/local/mongodb/bin/mongod -f /data/mongodb-cluster/27018/mongodb.conf

/usr/local/mongodb/bin/mongod -f /data/mongodb-cluster/27019/mongodb.conf

---在主节点写入所有节点的信息,注意了,conf文件的replSetName需要和config中 _id:"zmh"保持一致

config = { _id:"zmh", members:[

{_id:0,host:"192.167.100.181:27017"},

{_id:1,host:"192.167.100.182:27018"},

{_id:2,host:"192.167.100.183:27019"}]

}

---初始化副本集

use admin

rs.initiate(config)

---查看副本集状态

rs.status()

---完成初始化后,重启两个slave节点的mongo进程

----副本集同步测试

主节点插入数据:

use test

db.myuser.insert( {userid: 1} )

----从节点查看数据:

rs.slaveOk() //SECONDARY需要声明是slave才能查看数据

db.myuser.find()

{ "_id" : ObjectId("65406be329de1b2fafebfa56"), "userid" : 1 }

---查看slave的延时情况

rs.printSlaveReplicationInfo()

注意:优化参数要保持一致

相关推荐
数据库小学妹14 分钟前
MySQL redo刷盘实测:innodb_flush_log_at_trx_commit与故障矩阵
运维·数据库·mysql
ByteRock17 分钟前
ClickHouse 表的生老“并”死:表实例、表元数据与并发 DDL
数据库
哈__29 分钟前
破除数据库排障碎片化:一体化全链路故障根因诊断实践
数据库
严同学正在努力1 小时前
SQL Server 15.0.2000.5(2019 CU5)性能分析基线构建实战教程
数据库·ai·oracle·dba
MC丶科1 小时前
软考架构师90天冲刺|DAY44·Redis高级应用
数据库·数据仓库·redis·缓存·oracle·容器·规格说明书
Boop_wu1 小时前
[redis] redis 快速入门
数据库·redis·github
reasonsummer2 小时前
【办公类-115-01】20260906育儿知识(家园小报)批量制作(2026年9月-2027年6月)
开发语言·数据库·c#
AC赳赳老秦2 小时前
环保监测公开数据应用:OpenClaw 抓取空气与水质公开监测数据,开展区域环境质量趋势分析
大数据·数据库·人工智能·python·php·deepseek·openclaw
Zhu7583 小时前
部署安全的pg数据库,搭配pgadmin实现web界面管理
前端·数据库·安全
她说..3 小时前
Redis项目实战整理
数据库·redis·缓存