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

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

相关推荐
大拇指的约定5 分钟前
数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(三),单表查询
数据库·mysql·oracle
阳光阿盖尔19 分钟前
redis——哨兵机制
数据库·redis·缓存·主从复制·哨兵
小小娥子20 分钟前
【Redis】Hash类型的常用命令
数据库·spring boot·redis
盒马盒马20 分钟前
Redis:cpp.redis++通用接口
数据库·c++·redis
barbyQAQ36 分钟前
Qt源码阅读——事件循环
开发语言·数据库·qt
银氨溶液40 分钟前
MySql数据引擎InnoDB引起的锁问题
数据库·mysql·面试·求职
IvorySQL1 小时前
济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理
xml·数据库·sql·postgresql·oracle·开源
Data 3172 小时前
Hive数仓操作(十)
大数据·数据库·数据仓库·hive·hadoop
ON.LIN2 小时前
Hadoop大数据入门——Hive-SQL语法大全
大数据·数据库·hive·hadoop·分布式·sql
Elastic 中国社区官方博客2 小时前
Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎