Skip to content

MongDB副本集环境搭建

茶凡_Matrix edited this page Nov 1, 2023 · 2 revisions

1、服务器准备

准备一台linux 服务器(改文档用的是 ubantu20),如图是副本集结构:

2、软件解压

tar -zxvf mongodb-linux-x86_64-ubuntu2004-5.0.21.tgz
# 将解压的文件移动到 mongodb 
mv mongodb-linux-x86_64-ubuntu2004-5.0.21 mongodb 

3、创建文件夹

创建主节点、从节点、选举节点文件夹和每个节点的数据存储、日志、配置文件夹

mkdir -pv /mongo_replica_set/mongod/{master,slave,arbiter}

mkdir -pv /mongo_replica_set/mongod/master/{data,log,conf}

mkdir -pv /mongo_replica_set/mongod/slave/{data,log,conf}

mkdir -pv /mongo_replica_set/mongod/arbiter/{data,log,conf}

4、复制软件

将软件复制到每个节点对应的文件夹下面

cp -ra /mongo_replica_set/mongodb  /mongo_replica_set/mongod/master/

cp -ra /mongo_replica_set/mongodb  /mongo_replica_set/mongod/slave/

cp -ra /mongo_replica_set/mongodb  /mongo_replica_set/mongod/slave2/

cp -ra /mongo_replica_set/mongodb  /mongo_replica_set/mongod/arbiter/

5、编写配置文件

vim master/conf/mongodb.conf

dbpath=/mongo_replica_set/mongod/master/data
logpath=/mongo_replica_set/mongod/master/log/mongodb.log
pidfilepath=/mongo_replica_set/mongod/master/master.pid
directoryperdb=true
logappend=true
replSet=RPS_TEST1
bind_ip=0.0.0.0
port=28011
oplogSize=10000
fork=true

创建slave配置文件 vim slave/conf/mongodb.conf

dbpath=/mongo_replica_set/mongod/slave/data
logpath=/mongo_replica_set/mongod/slave/log/mongodb.log
pidfilepath=/mongo_replica_set/mongod/slave/slave.pid
directoryperdb=true
logappend=true
replSet=RPS_TEST1
bind_ip=0.0.0.0
port=28012
oplogSize=10000
fork=true

创建arbiter配置文件 vim arbiter/conf/mongodb.conf

dbpath=/mongo_replica_set/mongod/arbiter/data
logpath=/mongo_replica_set/mongod/arbiter/log/mongodb.log
pidfilepath=/mongo_replica_set/mongod/arbiter/arbiter.pid
directoryperdb=true
logappend=true
replSet=RPS_TEST1
bind_ip=0.0.0.0
port=28013
oplogSize=10000
fork=true

创建slave2配置文件 vim slave2/conf/mongodb.conf

dbpath=/mongo_replica_set/mongod/slave2/data
logpath=/mongo_replica_set/mongod/slave2/log/mongodb.log
pidfilepath=/mongo_replica_set/mongod/slave2/slave2.pid
directoryperdb=true
logappend=true
replSet=RPS_TEST1
bind_ip=0.0.0.0
port=28012
oplogSize=10000
fork=true

配置文件参数解释

dbpath:数据存放目录
logpath:日志存放路径
pidfilepath:进程文件,方便停止mongodb
directoryperdb:为每一个数据库按照数据库名建立文件夹存放
logappend:以追加的方式记录日志
replSet:replica set的名字
bind_ip:mongodb所绑定的ip地址
port:mongodb进程所使用的端口号,默认为27017
oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
fork:以后台方式运行进程

6、启动mongodb

上面的配置文件配置好保存后就可以启动每个节点了

启动主节点
./master/mongodb/bin/mongod -f master/conf/mongodb.conf 

启动从节点
./slave/mongodb/bin/mongod -f slave/conf/mongodb.conf 

./slave2/mongodb/bin/mongod -f slave2/conf/mongodb.conf 

启动仲裁节点
./arbiter/mongodb/bin/mongod -f arbiter/conf/mongodb.conf 

查看进程
ps -ef | grep mongodb

7、配置副本集

配置副本集一定要在主节点的操作并且是在 admin数据库下操作,可以进入主节点的客户端

1、进入主节点
./master/mongodb/bin/mongo --port=28011

2、切换到 admin 数据库
use admin

3、定义初始化脚本(类似于js  var a = {}

fbj={_id:"RPS_TEST1", 
     members:[{_id:0,host:'203.33.207.171:28011',priority:2},
              {_id:1,host:'203.33.207.171:28012',priority:1}, 	
              {_id:2,host:'203.33.207.171:28013',arbiterOnly:true},
              {_id:3,host:'203.33.207.171:28014',priority:1}, 
             ]};

4、使配置生效
rs.initiate(fbj)

5、检查是否生效
rs.status()

8、总结

以上是关于MongoDB副本集搭建的基本流程,在一台Linux下启动了四个MongoDB服务来搭建副本集。上面总结中缺少一些操作成功后的内容没有截图,这里就不多说了,只需要对单个 MongoDB服务搭建流程熟悉,以上操作搭建不会太难。