mongodb的复制集

架构结构

在这里插入图片描述
各节点常见的搭配:

"""
一主  一从  一仲裁、
一主  多从  一仲裁、
一主  多从  多仲裁
"""

搭建复制集

采用单主机多端口的方式:
1.创建数据文件存放目录
一主两从一仲裁:
在这里插入图片描述

在MongoDB 文件里:
mkdir replication
 cd replication
 mkdir primary
 mkdir secondary1
 mkdir secondary2
mkdir arbitration

2.创建配置文件存放目录
在conf 文件里面创建replication_conf
在这里插入图片描述

先cd到conf 目录
mkdir replication_conf
 cd replication_conf

3.创建日志存放目录,以及创建一主两从一仲裁的日志文件
在这里插入图片描述在这里插入图片描述

cd 到logs 目录下:
mkdir replocation_logs
touch primary.log
touch secondary1.log
touch secondary2.log
touch arbiter.log

4.创建进程描述文件目录
在这里插入图片描述

cd 到mongodb 的目录
mkdir -p pids/replication_pid

5.分别对一主两从一仲裁节点的配置文件进行编辑
这里复制了mongodb.conf 的文件放在 replication_conf 里面作为主键
在这里插入图片描述
在这里插入图片描述

cd 到conf/replication_conf
vi primary.conf
写入:
dbpath=/Users/haoniao/code/Nosql/mongodb/replication/primary
logpath=/Users/haoniao/code/Nosql/mongodb/data/logs/replication_logs/primary.log
logappend=true
bind_ip_all=true
port=27117
fork=true
replSet=replications
pidfilepath=/Users/haoniao/code/Nosql/mongodb/pids/replication_pid/primary.pid
oplogSize=1000
directoryperdb=true
========================
cd 到 replication_conf |
========================
cp primary.conf secondary1.conf
cp primary.conf secondary2.conf
cp primary.conf arbiter.conf
vi secondary1.conf 
写入:

dbpath=/Users/haoniao/code/Nosql/mongodb/replication/secondary1
logpath=/Users/haoniao/code/Nosql/mongodb/data/logs/replication_logs/secondary1.log
logappend=true
bind_ip_all=true
port=27118
fork=true
replSet=replications
pidfilepath=/Users/haoniao/code/Nosql/mongodb/pids/replication_pid/secondary1.pid
oplogSize=1000
directoryperdb=true

================================
vi secondary2.conf 
====================
写入:
dbpath=/Users/haoniao/code/Nosql/mongodb/replication/secondary2
logpath=/Users/haoniao/code/Nosql/mongodb/data/logs/replication_logs/secondary2.log
logappend=true
bind_ip_all=true
port=27119
fork=true
replSet=replications
pidfilepath=/Users/haoniao/code/Nosql/mongodb/pids/replication_pid/secondary2.pid
oplogSize=1000
directoryperdb=true
===========================
vi arbiter.conf
===============
写入
dbpath=/Users/haoniao/code/Nosql/mongodb/replication/arbitration
logpath=/Users/haoniao/code/Nosql/mongodb/data/logs/replication_logs/arbiter.log
logappend=true
bind_ip_all=true
port=27120
fork=true
replSet=replications
pidfilepath=/Users/haoniao/code/Nosql/mongodb/pids/replication_pid/arbiter.pid
oplogSize=1000
directoryperdb=true

6.启动服务,客户端连接,并做初始化
cd 到 mongodb路径

启动服务
bin/mongod -f /Users/haoniao/code/Nosql/mongodb/conf/replication_conf/primary.conf
 bin/mongod -f /Users/haoniao/code/Nosql/mongodb/conf/replication_conf/secondary1.conf
bin/mongod -f /Users/haoniao/code/Nosql/mongodb/conf/replication_conf/secondary2.conf
bin/mongod -f /Users/haoniao/code/Nosql/mongodb/conf/replication_conf/arbiter.conf

查看是否启动:
ps -ef|grep mongod

启动成功后:
进入主重,
bin/mongo --port 27117
运行;

use admin
rs.initiate({
	"_id":"replications",
	"members":[
		{"_id":0,"host":"127.0.0.1:27117","priority":3},
		{"_id":1,"host":"127.0.0.1:27018","priority":1},
		{"_id":2,"host":"127.0.0.1:27019","priority":2},
		{"_id":5,"host":"127.0.0.1:27120","arbiterOnly":true},

	]	
});

然后有进入从节点
bin/mongo --port 27118

运行:
rs.slaveOk(true)

测试

关闭端口27117的服务后,是否?端口为27119的服务从节点自动切换为主节点
关闭

看它的端口号
ps -ef|grep mongod
kill 端口号 // 杀死第一个主节点
进入从节点27119 
bin/mongo --port 27119 
rs.isMaster() // 看一下主节点
如果主节点变成了27119则就成功了
----接下来恢复主节点--看是否可以恢复
开启主节点
bin/mongod -f /Users/haoniao/code/Nosql/mongodb/conf/replication_conf/primary.conf
bin/mongo --port 27117
rs.isMaster() // 看一下主节点
如果恢复了则成功了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值