基于复制集replset进行mongodb集群搭建

基于复制集replset进行mongodb集群搭建

一、linux下mongodb安装

1.1 下载对应平台版本
下载地址:https://www.mongodb.com/download-center/community
1.2 解压及配置路径
# 解压
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.3.tgz
# 迁移配置路径
mkdir -p /usr/local/mongodb
mv mongodb-linux-x86_64-ubuntu1604-4.2.3 /usr/local/mongodb
# 配置数据和日志文件夹
cd /usr/local/mongodb
mkdir data
mkdir logs	

二、配置不同角色节点(主节点、从节点、仲裁节点)

  • 172.31.236.129:27017(primary)
  • 172.31.236.129:27018(secondary)
  • 172.31.236.129:27019(arbiter)

三、配置各节点信息

3.1 集群之间的复制增加keyFile认证
 # 生成key
openssl rand -base64 745 >/usr/local/mongodb/mongodb-keyfile
 # 该key的权限必须是600
chmod 600 /usr/local/mongodb/mongodb-keyfile
3.2 主节点(配置文件路径:/usr/local/mongodb/mongo_27017.conf)
dbpath=/usr/local/mongodb/data/27017
logpath=/usr/local/mongodb/logs/mongo_27017.log
logappend=true
journal=true # 启用日志文件,默认启用
quiet=true # 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017
fork=true # 后台运行
bind_ip=172.31.236.129 # 允许任何IP进行连接
auth=true # 是否以安全认证方式运行,默认是不认证的非安全方式
keyFile=/usr/local/mongodb/mongodb-keyfile # 指定存储身份验证信息的密钥文件的路径
3.3 从节点(配置文件路径:/usr/local/mongodb/mongo_27018.conf)
dbpath=/usr/local/mongodb/data/27018
logpath=/usr/local/mongodb/logs/mongo_27018.log
logappend=true
journal=true
quiet=true
port=27018
fork=true #后台运行
bind_ip=172.31.236.129 #允许任何IP进行连接
auth=true # 是否以安全认证方式运行,默认是不认证的非安全方式
keyFile=/usr/local/mongodb/mongodb-keyfile # 指定存储身份验证信息的密钥文件的路径
3.4 仲裁节点(配置文件路径:/usr/local/mongodb/mongo_27019.conf)
dbpath=/usr/local/mongodb/data/27019
logpath=/usr/local/mongodb/logs/mongo_27019.log
logappend=true
journal=true
quiet=true
port=27019
fork=true #后台运行
bind_ip=172.31.236.129 #允许任何IP进行连接
auth=true # 是否以安全认证方式运行,默认是不认证的非安全方式
keyFile=/usr/local/mongodb/mongodb-keyfile # 指定存储身份验证信息的密钥文件的路径

四、启动各节点

启动主节点
./bin/mongod -f mongo_27017.conf --replSet rs0

启动从节点
./bin/mongod -f mongo_27018.conf --replSet rs0

启动仲裁节点
./bin/mongod -f mongo_27019.conf --replSet rs0

五、设置各节点关系

设置主节点:
./bin/mongo --port 27017 --host 172.31.236.129
# 进去admin数据库
use admin
# 设置主节点(这里的priority设置10 优先权越大获胜为主节点)
config={_id:"rs0", members:[{_id:0,host:"172.31.236.129:27017",priority:10}]}
rs.initiate(config)
# 设置从节点
rs.add("172.31.236.129:27018")
# 设置仲裁节点
rs.addArb("172.31.236.129:27019")
# 查看集群状态
rs.status()

设置从节点(secondary节点默认是不可读的,如果需要读secondary节点,需要在secondary节点):
./bin/mongo --port 27018 --host 172.31.236.129
db.setSlaveOk()

六、命令行设置参数

如果想修改复制集的配置,也可以使用rs.reconfig(config,{"force":true})强制更新配置
--修改主机
var config = rs.config()
config.members[0].host = '172.31.236.129:27017'
config.members[1].host = '172.31.236.129:27018'
config.members[2].host = '172.31.236.129:27019'
rs.reconfig(config,{"force":true})

--修改优先权(权限越大获胜为主节点)
var config = rs.config()
config.members[0].priority = 10
config.members[1].priority = 1
config.members[2].priority = 0
rs.reconfig(config,{"force":true})

--查看replset状态
rs.status()

--查看replset配置
rs.config()

七、创建用户

./bin/mongo --port 27017 --host 172.31.236.129
# 创建用户管理的用户(赋root权限)
use admin
db.createUser(
	{
		user:"root",
		pwd:"123456",
		roles:[{role:"root",db:"admin"}]
	}
);

# 为某个数据库(note)新建读写账号
use note
db.createUser(
	{
		user:"zhangsan",
		pwd:"123456",
		roles:[{role:"readWrite",db:"note"}]
	}
);

八、问题

  • 问题一:ERROR: child process failed, exited with error number 51

    解决:https://blog.csdn.net/weixin_30772261/article/details/98744585

参考
  • 部署查看:https://www.jianshu.com/p/7db58b1d143e
  • 配置设置:https://www.cnblogs.com/shenshangzz/p/8261064.html
  • 配置文件说明:https://www.jianshu.com/p/ba63f6c5ad04
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值