关于mongodb:mongodb集群副本集

linux配置mongodb集群

正本集

Mongodb(M)示意主节点,Mongodb(S)示意备节点,Mongodb(A)示意仲裁节点。

Primary:主节点,一个正本集有且仅有一台服务器处于Primary状态,只有主节点才对外提供读写服务。如果主节点挂掉,正本集将投票选出一个备节点成为新的主节点。

Secondary:备用节点,正本集容许有多台Secondary,每个备用节点的数据与主节点的数据是齐全同步的。Recovering 复原中,当正本集中某台服务器挂掉或者掉线后数据无奈同步,从新复原服务后从其余成员复制数据,这时就处于复原过程,数据同步后,该节点又回到备用状态。

Arbiter:仲裁节点,该类节点能够不必独自存在,如果配置为仲裁节点,就次要负责在复本集中监控其余节点状态,投票选出主节点。该节点将不会用于存放数据。如果没有仲裁节点,那么投票工作将由所有节点独特进行。

mongodb官网下载

https://www.mongodb.com/try/download/community

1、软件上传解压

tar zxvf mongodb-linux-x86_64-amazon2-6.0.4.tgz

2、创立对应目录

创立文件夹
mkdir -pv /root/mongodb/{master,slave,arbiter}
mkdir: 已创立目录 "/root/mongodb"
mkdir: 已创立目录 "/root/mongodb/master"
mkdir: 已创立目录 "/root/mongodb/slave"
mkdir: 已创立目录 "/root/mongodb/arbiter"


创立master文件夹中的data、log、conf
mkdir -pv /root/mongodb/master/{data,log,conf}
mkdir: 已创立目录 "/root/mongodb/master/data"
mkdir: 已创立目录 "/root/mongodb/master/log"
mkdir: 已创立目录 "/root/mongodb/master/conf"


创立slave文件夹中的data、log、conf
mkdir -pv /root/mongodb/slave/{data,log,conf}
mkdir: 已创立目录 "/root/mongodb/slave/data"
mkdir: 已创立目录 "/root/mongodb/slave/log"
mkdir: 已创立目录 "/root/mongodb/slave/conf"

创立slave文件夹中的data、log、conf
mkdir -pv /root/mongodb/arbiter/{data,log,conf}
mkdir: 已创立目录 "/root/mongodb/arbiter/data"
mkdir: 已创立目录 "/root/mongodb/arbiter/log"
mkdir: 已创立目录 "/root/mongodb/arbiter/conf"

3、复制软件到绝对应地位

cd mongodb-linux-x86_64-amazon2-6.0.1/
cp -ra ./* /root/mongodb/master/
cp -ra ./* /root/mongodb/slave/
cp -ra ./* /root/mongodb/arbiter/

4、创立master配置文件

编辑conf设置:vi master/conf/mongodb.conf

dbpath=/root/mongodb/master/data
logpath=/root/mongodb/master/log/mongodb.log
pidfilepath=/root/mongodb/master/master.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=0.0.0.0
port=27017
oplogSize=10000
fork=true

5、创立slave配置文件

编辑conf设置:vi slave/conf/mongodb.conf

dbpath=/root/mongodb/slave/data
logpath=/root/mongodb/slave/log/mongodb.log
pidfilepath=/root/mongodb/slave/slave.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=0.0.0.0
port=27018
oplogSize=10000
fork=true

6、创立arbiter配置文件

编辑conf设置:vi arbiter/conf/mongodb.conf

dbpath=/root/mongodb/arbiter/data
logpath=/root/mongodb/arbiter/log/mongodb.log
pidfilepath=/root/mongodb/arbiter/arbiter.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=0.0.0.0
port=27019
oplogSize=10000
fork=true

7、配置文件参数解释

dbpath:数据寄存目录
logpath:日志寄存门路
pidfilepath:过程文件,不便进行mongodb
directoryperdb:为每一个数据库依照数据库名建设文件夹寄存
logappend:以追加的形式记录日志
replSet:replica set的名字
bind_ip:mongodb所绑定的ip地址
port:mongodb过程所应用的端口号,默认为27017
oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘残余空间的5%
fork:当前台形式运行过程
noprealloc:不事后调配存储


# usercenter replset master
bind_ip=
#指定服务器监听的端口,默认是27017
port=30010
#集群名字
replSet=test_set
#以守护过程的形式运行MongoDB
fork=true
#一个数据库一个文件夹
directoryperdb=true
##启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
journal = true
# 在收到客户数据,查看的有效性
objcheck=true
#操作日志大小限度2G
oplogSize=2000
#pidfile
pidfilepath=/data/mongo_set/test_set/30010/mongo_m30010.pid
#指定数据目录,默认是/data/db/。每个mongod过程都须要独立的目录,
#启动mongod时就会在数据目录中创立mongod.lock文件,避免其余mongod过程应用该数据目录。
dbpath=/data/mongo_set/test_set/30010
#指定日志输入门路,如果不指定则会在终端输入。每次启动都会笼罩原来的日志,如果不想笼罩就要用--logappend选项
logpath=/data/mongo_set/test_set/30010/mongo30010.log
logappend=true
#auth=true
#0:敞开,不收集任何数据。1:收集慢查问数据,默认是100毫秒。2:收集所有数据
profile=2
slowms=100
#.禁止HTTP状态接口
nohttpinterface=true
#.禁止REST接口-在生产环境下倡议不要启用MongoDB的REST接口
rest=false

8、启动mongodb

# 启动主节点
/master/bin/mongod -f master/conf/mongodb.conf 

# 启动从节点
./slave/bin/mongod -f slave/conf/mongodb.conf

# 启动仲裁节点
./arbiter/bin/mongod -f arbiter/conf/mongodb.conf

9、查看启动过程

ps -ef | grep mongodb

ps aux | grep -v grep | grep mongod

10、装置shell工具

因为高版本的mongodb去掉了自带的shell工具
https://www.mongodb.com/try/download/shell

tar -zxvf mongosh-1.6.2-linux-x64.tgz

#挪动文件
mv mongosh-1.6.2-linux-x64 /usr/local/mongosh
#无明码连贯
/usr/local/mongosh/bin/mongosh 127.0.0.1:27017
 
#应用账号密码登录
 
/usr/local/mongosh/bin/mongosh -u root -p 123456

11、配置正本集

use admin

reset={_id:"testrs", members:[ {_id:0,host:'127.0.0.1:27011',priority:2}, {_id:1,host:'127.0.0.1:27012',priority:1}, {_id:2,host:'127.0.0.1:27013',arbiterOnly:true}]};

rs.initiate(reset)  # 使配置失效

rs.status()

最外层的_id示意replica set的名字,members里蕴含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的’127.0.0.1:27017’。特地留神的是,对于仲裁节点,须要有个特地的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能失效。

配置的失效工夫依据不同的机器配置会有长有短,配置不错的话基本上十几秒内就能失效,有的配置须要一两分钟。能够依据rs.status()来查看是否失效了,如果失效会看到如下信息:

(正本集曾经配置胜利)

12、正本集设置用户名明码

db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
权限:
readWrite:容许用户读写指定数据库
dbAdmin:容许用户在指定数据库中执行治理函数,如索引创立、删除,查看统计或拜访system.profile
userAdmin:容许用户向system.users汇合写入,能够找指定数据库里创立、删除和治理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相干函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限


#正本集共享秘钥(目录以本人寄存地位为准)
#keyFile=/home/mongod/mongodb/keyfile
#开启访问控制
#auth=true

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据