MongoDB副本集集群搭建

1 Mongo文件配置

1.1关闭MongoDB

基于已经搭建好的单mongoDB环境搭建mongo 副本集群

登录数据库

 

 

输入use admin切换表

 

 

输入

db.shutdownServer(); 

关闭mongodb服务

输入exit回到shell界面,mongo服务已关闭

 

1.2 环境准备

虚拟机名称

IP地址

成员角色

主机名

thadoop0

192.168.2.150

主节点

thadoop0

thadoop1

192.168.2.151

副本节点

thadoop1

thadoop2

192.168.2.152

副本节点

thadoop2

!!该操作会删除mongodb单节点部署下的所有数据文件

切换到已配置的mongodb的目录下的/ data/db目录中使用 rm -rf * 删除数据文件

 

 

使用scp 命令将MongoDB复制到相应的节点

 

 

配置/etc/profile

为MongoDB 添加环境变量

 

 

使用scp复制到相应节点

 

 

使用

 source /etc/profile 

更新配置文件

修改bindIP 为对应节点,文件为mongodb目录下 /conf/mongod.conf

冒号后面有个空格!

 

 

1.3 启动集群

分别在三台服务器上启动

以副本集的模式启动thadoop0上的MongoDB

mongod --replSet cpnode0

--dbpath /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/data/db/

--logpath /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/logs/mongologs.log

--port 27017

--bind_ip thadoop0

--logappend -fork

参数replSet:副本集名称

参数dbpath:数据存放目录

参数logpath:日志存放目录

参数logappend:追加方式写入日志

参数fork:后台运行

thadoop1:

mongod --replSet cpnode0

--dbpath /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/data/db/

--logpath /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/logs/mongologs.log

--port 27017

--bind_ip thadoop1

--logappend -fork

thadoop2:

mongod --replSet cpnode0

--dbpath /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/data/db/

--logpath /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/logs/mongologs.log

--port 27017

--bind_ip thadoop2

--logappend -fork

 

1.4 初始化副本集

登录thadoop0的mogodb客户端

 

执行

rs.initiate()

若客户端返回信息中字段OK的值为1,说明成功初始化副本集。

完成初始化命令,当前节点默认处于“SECONDARY(副本节点)”状态

等待几秒后,按回车键

 

自动选举自己为PRIMARY(主节点)

 

使用rs.add(“host:port”)添加副本角色到副本集中,返回ok字段中为1则为节点添加成功

 

在thadoop1中登录mongo客户端查看当前角色分配情况

 

在thadoop2中登录mongo客户端查看当前角色分配情况

 

在主节点中查看副本集状态

rs.status()

 

1.5 同步副本文档

登录thadoop0 切换到test数据库

并且插入一条文档

 

 

登录thadoop1 mongo客户端

查看文档是否写入成功

由于默认没有读取内容权限,所以需要开启节点读取权限

 rs.slaveOk()

再次查询

 

1.6故障转移

在thadoop0中关闭mongo服务(先exit退出mongoDB客户端)

查看服务进程

ps -ef | grep mongodb

kill -2 进程号

 

在thadoop1和thadoop2 登录mongoDb查看是否有一个节点为主节点

发现thadoop1变更成主节点

 

1.7 调整副本集成员(粗略)

先使用

cfg=rs.conf()

使用

 cfg.members[0].priority = 2

 

 

将“_id”为0的副本节点(即服务器node01)优先级值由1改为2。

rs.reconfig(cfg)

提交更改

配置隐藏节点

配置延迟节点

 

配置节点投票权

 

1.8安全认证(粗略)

创建存放keyFile的目录

在mongodb的目录下创建/key/keyifle

通过Linux的提供的密码工具集生成符合KeyFile标准的密钥并写入KeyFile

 

 

vim 查看已经写入密钥文件

修改文件的权限为600

 

scp命令拷贝到其他节点

 

创建新用户

 

 

关闭副本集

然后以安全认证方法打开

thadoop0

mongod --replSet cpnode0

 --keyFile /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/key/keyfile

 --dbpath=/opt/module/mongodb-linux-x86_64-rhel62-4.4.10/data/db

 --logpath=/opt/module/mongodb-linux-x86_64-rhel62-4.4.10/logs/mongodb.log

 --port 27017 --bind_ip thadoop0 --logappend --fork

​​

thadoop1


mongod --replSet cpnode0

 --keyFile /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/key/keyfile

 --dbpath=/opt/module/mongodb-linux-x86_64-rhel62-4.4.10/data/db

 --logpath=/opt/module/mongodb-linux-x86_64-rhel62-4.4.10/logs/mongodb.log

 --port 27017 --bind_ip thadoop1 --logappend --fork


 

thadoop2 


mongod --replSet cpnode0

 --keyFile /opt/module/mongodb-linux-x86_64-rhel62-4.4.10/key/keyfile

 --dbpath=/opt/module/mongodb-linux-x86_64-rhel62-4.4.10/data/db

 --logpath=/opt/module/mongodb-linux-x86_64-rhel62-4.4.10/logs/mongodb.log

 --port 27017 --bind_ip thadoop2 --logappend --fork

 

 

检查身份验证是否成功

通过全局管理用户进行身份验证后即可查询写入

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值