MongoDB Replica Set 部署

一、环境信息

测试环境
OS: CentOS 6.7
MongoDB:mongodb-linux-x86_64-3.0.5.tgz
IP地址:192.168.45.138:27017(主)
192.168.45.146:27017(从&&仲裁【27018】)

二、部署实施过程

1、分别在每台服务器中解压Mongodb包

[root@master ~]# tar -xvf mongodb-linux-x86_64-3.0.5.tgz
[root@master ~]# mv mongodb-linux-x86_64-3.0.5 /usr/local/mongodb

2、建立数据文件

[root@master ~]# mkdir -p /data/mongodb/master   #主节点
[root@master ~]# mkdir -p /data/mongodb/slave	 #从节点
[root@master ~]# mkdir -p /data/mongodb/arbiter	 #仲裁节点

3、分别在服务器中建立配置文件

[root@master ~]# cd /usr/local/mongodb $$ mkdir conf && cd conf   #创建配置文件目录
[root@master conf]# mkdir /data/mongodb/logs	#编辑主配置文件,添加如下内容
[root@master conf]# vim /usr/local/mongodb/conf/master.conf		#编辑主配置文件,添加如下内容
dbpath=/data/mongodb/master
logpath=/data/mongodb/logs/master.log
pidfilepath=/data/mongodb/master.pid
directoryperdb=true
logappend=true
replSet=ytk
port=27017
oplogSize=10000
fork=true
noprealloc=true
参数解释:
dbpath:数据存放目录
logpath:日志存放路径
pidfilepath:进程文件,方便停止mongodb
directoryperdb:为每一个数据库按照数据库名建立文件夹存放
logappend:以追加的方式记录日志
replSet:replica set的名字
bind_ip:mongodb所绑定的ip地址
port:mongodb进程所使用的端口号,默认为27017
oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
fork:以后台方式运行进程
noprealloc:不预先分配存储
Profile:开启慢查询功能
0 – 不开启
1 – 记录慢命令 (默认为>100ms)
2 – 记录所有命令
---------------------------------------------------
[root@slave ~]# tar xvf mongodb-linux-x86_64-3.0.5.tgz 
[root@slave ~]# mv mongodb-linux-x86_64-3.0.5 /usr/local/mongodb
[root@slave ~]# cd /usr/local/mongodb/ && mkdir conf && cd conf
[root@slave conf]# mkdir /data/mongodb/logs
[root@slave conf]# vim /usr/local/mongodb/conf/slaver.conf	#编辑从配置文件,添加如下内
dbpath=/data/mongodb/slaver
logpath=/data/mongodb/logs/slaver.log
pidfilepath=/data/mongodb/slaver.pid
directoryperdb=true
logappend=true
replSet=ytk
port=27017
oplogSize=10000
fork=true
noprealloc=true
-----------------------------------------------------
[root@slave conf]# vim /usr/local/mongodb/conf/arbiter.conf		#编辑仲裁节点配置文件,添加内容
dbpath=/data/mongodb/arbiter
logpath=/data/mongodb/logs/arbiter.log
pidfilepath=/data/mongodb/arbiter.pid
directoryperdb=true
logappend=true
replSet=ytk
port=27018
oplogSize=10000
fork=true
noprealloc=true

4、分别启动MongoDB服务
启动主节点

[root@master conf]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/master.conf 

note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 36399
child process started successfully, parent exiting #启动成功
启动从节点

[root@slave ~]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/slaver.conf 

启动仲裁节点

[root@slave ~]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/arbiter.conf

5.、配置主、备、仲裁节点
编辑用户HOME目录下的.bash_profile配置文件,添加如下内容:

[root@master ~]# cat .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin
export PATH
[root@master ~]# source .bash_profile 	#使其生效

在主节点中执行如下操作:

[root@master ~]# mongo
> use admin
> {_id:"ytk",members:}
2019-11-29T18:59:25.566+0800 E QUERY    SyntaxError: Unexpected token :
> cfg={_id:"ytk",members: [ {_id:0,host:'192.168.45.138:27017',priority:2}, {_id:1,host:'192.168.45.146:27017',priority:1}, {_id:2,host:'192.168.45.146:27018',arbiterOnly:true}]};
> rs.initiate(cfg) 		#使其配置生效
{ "ok" : 1 }		#此状态说明配置成功
ytk:PRIMARY> rs.status()		#查看状态
ytk:PRIMARY> db.printReplicationInfo()		#查看Replication信息
configured oplog size:   10000.003845214844MB
log length start to end: 0secs (0hrs)
oplog first event time:  Fri Nov 29 2019 19:10:32 GMT+0800 (CST)
oplog last event time:   Fri Nov 29 2019 19:10:32 GMT+0800 (CST)
now:                     Fri Nov 29 2019 19:12:24 GMT+0800 (CST)
ytk:PRIMARY>  db.printSlaveReplicationInfo()		#查看备节点Replication信息
source: 192.168.45.146:27017
	syncedTo: Fri Nov 29 2019 18:23:00 GMT+0800 (CST)
	0 secs (0 hrs) behind the primary 

到这里 MongoDB Replica Set (副本集) 部署完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值