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()

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

相关推荐
乐hh15 小时前
KingbaseV8R6配置SSL
数据库·ssl
m0_6908258215 小时前
检测三位随机数中重复数字的Python实现方法
jvm·数据库·python
阿正呀15 小时前
Redis如何处理数据持久化与主从切换的冲突_确保选主期间的数据安全落盘.txt
jvm·数据库·python
m0_4708576415 小时前
php中的foreach循环?_?PHP中foreach循环的语法结构与遍历数组对象详解.txt
jvm·数据库·python
彳亍10115 小时前
HTML5中Canvas局部刷新区域重绘的算法优化
jvm·数据库·python
拾起零碎15 小时前
U8/中途启用批次管理-批次档案无效
数据库
2301_7796224115 小时前
为什么宝塔面板网站无法正常连接外部远程数据库_检查服务器安全组放行端口并开启IP授权
jvm·数据库·python
2401_8330336215 小时前
Go语言怎么做密码加密_Go语言bcrypt密码哈希教程【总结】
jvm·数据库·python
X566115 小时前
mysql索引基数统计更新不及时_mysqlANALYZE分析表操作
jvm·数据库·python
2301_7756398915 小时前
React 中的渲染(Rendering)机制详解
jvm·数据库·python