您的位置:首页 > 数据库 > Mongodb

mongodb复制集搭建

2016-06-11 01:03 543 查看
环境:centos 6.5、 mongodb 3.2.7

在一台虚拟机中启动三个mongodb服务来模拟

ip:192.168.1.219

端口:27017、27018、27019

27017:配置文件:

port=27017 #配置端口号
dbpath=data #配置数据存放的位置,这里使用相对路径
logpath=log/mongodb.log  #配置日志存放的位置
logappend=true  #日志使用追加的方式
fork=true  #设置在后台运行
replSet=YAOMONGO   #配置复制集名称,该名称要在所有的服务器一致


27018 配置文件:

port=27018 #配置端口号
dbpath=data #配置数据存放的位置,这里使用相对路径
logpath=log/mongodb.log  #配置日志存放的位置
logappend=true  #日志使用追加的方式
fork=true  #设置在后台运行
replSet=YAOMONGO   #配置复制集名称,该名称要在所有的服务器一致


27019 配置文件

port=27019 #配置端口号
dbpath=data #配置数据存放的位置,这里使用相对路径
logpath=log/mongodb.log  #配置日志存放的位置
logappend=true  #日志使用追加的方式
fork=true  #设置在后台运行
replSet=YAOMONGO   #配置复制集名称,该名称要在所有的服务器一致

启动每个实例

如果启动出现以下错误,可能是当前的用户权限不足

ERROR: child process failed, exited with error number 1

全部实例启动完成后,需要进入其中一个实例进行配置

其中设置27018为arbiter节点

进入端口号:27017进行配置

./bin/mongo 127.0.0.1/admin

配置

config = {
_id:"YAOMONGO",
members:[
{_id:0,host:"192.168.1.219:27017"},
{_id:1,host:"192.168.1.219:27018",arbiterOnly:true},
{_id:2,host:"192.168.1.219:27019"}
]
}


使用rs.initiate进行初始化

rs.initiate(config);




使用rs.status()查看状态



进入各个节点验证,略

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

验证复制集同步

主库插入数据 端口:27017



从库查看数据 端口:27019

从库查询数据需要设置slaveOK为true



查看arbiter节点 端口:27018,由于arbiter节点是仲裁节点,只参与投票,不接收复制的数据,也不能成为primary节点



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

复制集开启认证

1、先在没有开启auth的主节点中创建用户

2、在使用openssl生成密钥文件
openssl  rand -base64 64 > keyfile.dat
#生成64字节的密钥文件


chmod 600 keyfile.dat
#建议把密钥文件的权限设置为600(针对启动mongo实例的用户)

3、将这个密钥文件复制到复制节点上(包括主节点和从节点)

4、在配置文件中开启
auth=true
keyFile = keyfile.dat

5、启动所有实例即可

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

如果需要将某台机器指定为主节点,(例如:将性能最好的服务器作为主节点)
那么需要在节点配置上将其权重设置大于其它节点的权重,参数:priority 默认值是1,因此在指定的节点上设置大于1的权重即可
例如:
将192.168.1.219:27019设置为主节点

config = {
_id:"YAOMONGO",
members:[
{_id:0,host:"192.168.1.219:27017"},
{_id:1,host:"192.168.1.219:27018",arbiterOnly:true},
{_id:2,host:"192.168.1.219:27019",priority:5}
]
}


将主节点降级为从节点
rs.
stepDown
(stepDownSecssecondaryCatchUpPeriodSecs)
单位:秒
例如:rs.stepDown(15)

使用spring-data-mongodb 复制集配置
http://blog.csdn.net/u010889990/article/details/42644963
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: