前言:
mongodb集群
Replica Set副本
步骤一:将mongdb分别放在三台服务器(或两台)服务器指定文件夹(建议三台服务器文件路径一致)
步骤二:分别修改三台服务器mongodb的配置文件(mongodb文件下的conf目录下mongodb.conf)
三台mongodb配置文件如下
配置文件参数的意义
dbpath:数据存放目录
logpath:日志存放路径
pidfilepath:进程文件,方便停止mongodb
directoryperdb:为每一个数据库按照数据库名建立文件夹存放
logappend:以追加的方式记录日志
replSet:replica set的名字
bind_ip:mongodb所绑定的ip地址
port:mongodb进程所使用的端口号,默认为27017
oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
fork:以后台方式运行进程,true后台启动
1》ip1服务器下面的mongodb配置文件
dbpath=/home/zsl/database/mongodb/data/db
logpath=/home/zsl/database/mongodb/logs/mongodb.log
pidfilepath=/home/zsl/database/mongodb/mongodb.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=ip1
port=27018
oplogSize=10000
fork=true
2》ip2服务器下面的mongodb配置文件
dbpath=/home/zsl/database/mongodb/data/db
logpath=/home/zsl/database/mongodb/logs/mongodb.log
pidfilepath=/home/zsl/database/mongodb/mongodb.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=ip2
port=27018
oplogSize=10000
fork=true
3》ip3服务器下面的mongodb配置文件
dbpath=/home/zsl/database/mongodb/data/db
logpath=/home/zsl/database/mongodb/logs/mongodb.log
pidfilepath=/home/zsl/database/mongodb/mongodb.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=ip3
port=27018
oplogSize=10000
fork=true
步骤三:将mongdb分别放在三台服务器(或两台)服务器指定文件夹(建议三台服务器文件路径一致)
分别启动各个节点mongodb,在mongodb bin目录在执行命令:./mongod --config ../conf/mongodb.conf
步骤四:配置主,备,仲裁节点
在服务器上任意链接一台mongodb,在mongodb bin目录在执行命令:./mongo ip:port ip地址和端口号 进入到mongodb
再执行 use admin
再执行 cfg={ _id:"testrs", members:[ {_id:0,host:'ip1:27018',priority:1}, {_id:1,host:'ip2:27018',priority:2}, {_id:2,host:'ip3:27018',arbiterOnly:true}] };
(#cfg是可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以。_id:"testrs" 就是配置文件中replSet的值,最外层的_id表示replica set的名字,members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的192.168.11.11:27017。特别注意的是,对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。 arbiterOnly O为大写)
再执行:rs.initiate(cfg)
最后查看状态: rs.status()(正在进行配置会提示:"stateStr" : "RECOVERING")
步骤五:加入认证
(1)在服务器上任意链接一台mongodb,但是要链接到主
在mongodb bin目录在执行命令:./mongo ip:port ip地址和端口号
在执行命令: db.createUser({user:"admin",pwd:"golaxy20181112",roles:["root"]})
结果:
(2)然后在启动的配置文件中加入 auth=true,挨个重启即可