mongodb集群环境搭建记录随笔

前言

虽然公司中有使用到mongodb,但是一般都有dba或者平台组的同事搭建完毕后,直接使用,为了更好的理解mongodb的使用和安装,在网上找了很多的资料并搭建相应的集群信息。

查看虚拟机CENTOS7 的 IP 地址和命令(不能用ipconfig)
https://www.cnblogs.com/mmx8861/p/9217445.html
1.使用xshell上传文件
https://blog.csdn.net/kaluman/article/details/79500174

2.Linux将命令添加到PATH中
https://www.cnblogs.com/leibg/p/4479921.html

linux下环境变量PATH设置错误的补救
https://www.cnblogs.com/yanglin1228/p/4983289.html

mongodb:安装
http://www.runoob.com/mongodb/mongodb-linux-install.html

mongodb 权限设置–用户名、密码、端口
https://www.cnblogs.com/valor-xh/p/6369432.html

创建用户,验证用户密码
https://www.cnblogs.com/JennySchecter/p/8540832.html

mongodb 配置文件
https://www.cnblogs.com/phpandmysql/p/7763394.html

rmdir删除目录

Linux查看端口、进程情况及kill进程

https://www.cnblogs.com/liuzhengliang/p/4609632.html

mongodb不能够访问,因为端口没有开放
linux端口开放指定端口的两种方法
https://www.cnblogs.com/jtestroad/p/8031850.html

MongoDB 查看所有用户账号信息
https://blog.csdn.net/u010649766/article/details/78498130

Mongodb启动&关闭(这里主要是针对后台进程)
https://www.cnblogs.com/leinov/p/7341139.html

MongoDB4.0.0 远程连接及用户名密码认证登陆配置——windows
https://blog.csdn.net/qq_26896281/article/details/81206492

MongoDB学习笔记(六)——MongoDB配置用户账号与访问控制
https://blog.csdn.net/qq_33206732/article/details/79877948

mongo ip:port/database --username “username” – password “password”

MongoDB 设置用户名密码登录
https://blog.csdn.net/qq_32502511/article/details/80619277

MongoDB设置访问权限、设置用户
https://blog.csdn.net/weixin_36586564/article/details/79670223

ongoDB初了解——用户权限
https://www.cnblogs.com/yulinfeng/p/10226977.html

MongoDB集群搭建及常用命令备忘
https://www.jianshu.com/p/9e66072cb2a9?from=timeline&isappinstalled=0
是因为之前应认证admin用户
退出命令行,再次执行登录命令,直接切换到Evan库认证就OK

高可用的MongoDB集群
https://www.cnblogs.com/smartloli/p/4305739.html

mongodb分布式集群架构
https://www.cnblogs.com/zhongbin/p/3263084.html

搭建高可用mongodb集群(一)——mongodb配置主从模式
https://www.cnblogs.com/yujon/p/6128761.html

高可用的MongoDB集群(搭建) --目前我是按照这篇博客在搭建
https://www.cnblogs.com/smartloli/p/4305739.html
在/etc目录下自己准备了一些重要的东西
config_shard.conf stop_mongod_cluster.sh do_mongobath.sh

本机搭建信息:
安装目录:/usr/local/mongodb/mongo
db-path:dbpath=/var/lib/mongodb
日志记录:
logpath=/var/log/mongodb/mongodb.log
4.0以后分布集群 注意在mongs中加副本集,不然启动会报错

https://blog.51cto.com/13511191/2359959?source=drh

MongoDB 4.0 开发环境搭建集群
https://www.cnblogs.com/savorboard/p/mongodb-4-cluster-install.html

MongoDB集群搭建及使用(副本集)(备注:搭建并验证成功)
https://blog.csdn.net/supermapsupport/article/details/78953080
因为需要验证集群的正确性找到下面的blog
管理维护Replica Sets(读写分离&故障转移&增删节点)
https://blog.csdn.net/zhengwei125/article/details/46502027

遇到的问题:
1.4.0以后需要config-db后需要配置副本集 不然启动会报错
3.about to fork child process, waiting until server is ready for connection
解决方法:

删除mongodb 的db目录下的mongod.lock文件,重启mongodb即可

Mongodb中经常出现的错误(汇总)child process failed,
http://www.cnblogs.com/dunitian/p/6274437.html
搭建环境时遇到了
child process failed, exited with error number 1 和number18的问题
最开始搜索网上的方案 后面发现在日志文件里面有报错的详细信息,因为只有一台虚拟机所以在网上找的blog的信息没有改完出现了这个问题

下面贴一下自己搭建时用到的命令和配置文件

创建数据库文件和日志所需要的目录

创建数据目录脚本和log日志文件创建脚本

mkdir -p /opt/data/mongodb/master
mkdir -p /opt/data/mongodb/slave
mkdir -p /opt/data/mongodb/arbiter
mkdir -p /opt/mongodb
touch /opt/mongodb/{master.log,slave.log,arbiter.log}



master.conf

#master.conf
dbpath=/opt/data/mongodb/master
logpath=/opt/mongodb/master.log
pidfilepath=/opt/mongodb/master.pid
#keyFile=/opt/mongodb/mongodb.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=0.0.0.0
port=27017
#auth=true
oplogSize=100
fork=true
noprealloc=true
#maxConns=4000


slave.conf


dbpath=/opt/data/mongodb/slave
logpath=/opt/mongodb/slave.log
pidfilepath=/opt/mongodb/slave.pid
#keyFile=/opt/mongodb/mongodb.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=0.0.0.0
port=27018
#auth=true
oplogSize=100
fork=true
noprealloc=true
#maxConns=4000
~             

arbiter.conf

dbpath=/opt/data/mongodb/arbiter
logpath=/opt/mongodb/arbiter.log
pidfilepath=/opt/mongodb/arbiter.pid
#keyFile=/opt/mongodb/mongodb.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=0.0.0.0
port=27019
#auth=true
oplogSize=100
fork=true
noprealloc=true
#maxConns=4000

启动集群的脚本

/usr/local/mongodb/mongo/bin/ 为我的mongodb的安装路径

#start_mongodb.sh   执行时记得给脚本授予执行权限 chmod 777 start_mongodb.sh
 /usr/local/mongodb/mongo/bin/mongod  -f /etc/mongodb_master.conf
 /usr/local/mongodb/mongo/bin/mongod  -f /etc/mongodb_slave.conf
 /usr/local/mongodb/mongo/bin/mongod  -f /etc/mongodb_arbiter.conf
                                                                                                                                                                                                    

按照上面的脚本进行创建,准备工作就已经完成。

登录mongodb的主节点用于添加集群
mongo --port 27017

执行下面的指令进行集群配置


cfg={ _id:"testdb",
 members:[ {_id:0,host:'127.0.0.1:27017',priority:2}, {_id:1,host:'127.0.0.1:27018',priority:1}, {_id:2,host:'127.0.0.1:27019',arbiterOnly:true}] };
 
进行初始化集群配置
rs.initiate(cfg)

执性上面两行脚本后,可以使用
rs.status()查看集群状态

“stateStr” : “PRIMARY”表示主节点, “stateStr” : “SECONDARY”表示从节点, “stateStr” : “ARBITER”,表示仲裁节点

登录主库进行数据的插入操作,从库查询数据时报错 使用以下命令进行配置即可
让从库可以执行查询操作 db.getMongo().setSlaveOk() (每次登录时需要重新执行)

故障转移

使用 ps -aux|grep mongod 查询到主库运行的进程id
使用kill -9 pid 结束进程
登录之前的从库(主库进程被结束后该库晋升为主库)进行数据插入后,同时重新启动之前的主库,此时在两个库中均可以以查询到数据,同时之前的27017端口对应的库重新变为主库。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值