centos7.4 配置 mongodb4.0.4 三节点副本集

环境说明

  • mongodb 4.0.4
  • centos linux 7.4
  • 192.168.0.19 192.168.0.20 192.168.0.21 三台机器

安装mongodb,配置副本集

  • 前往mongo的官网下载安装包,如果你下的是rpm包,直接rpm安装就好了。如果是tar包,就解压把里面的bin目录移动到你想要的地方。
本博客mongodb的根目录是/app/mogodb
  • 创建目录
# /app/mogodb下创建如下目录
conf 放置配置文件
data 放置数据文件
keyfile 放置秘钥文件
log 放置日志文件
run 放置pid文件
  • 创建配置文件
# 进入conf文件夹
cd conf
# vi mongo_node.conf
net:
  port: 26001
  bindIp: 0.0.0.0 

storage:
    engine: wiredTiger
    directoryPerDB: true
    dbPath: /app/mogodb/data
    journal:
        enabled: true
systemLog:
    destination: file
    logAppend: true
    path: /app/mogodb/log/mongod.log

operationProfiling:
  slowOpThresholdMs: 10000

replication:
    oplogSizeMB: 10240
    replSetName: han

processManagement:
    fork: true
    pidFilePath: /app/mogodb/run/mongodb.pid

security:
    authorization: "enabled"
    clusterAuthMode: keyFile
    keyFile: /app/mogodb/keyfile/mongo.key

replSetName这是副本集的名字,请你自定义
port三个节点可以用相同的端口,建议不要用一样的容易混,我这里用的是26001 26002 26003

  • 创建秘钥文件
进入keyfile目录
openssl rand -base64 756 > mongo.key
  • 启动节点
进入bin目录
# 启动节点
./mongod -f /app/mogodb/conf/mongo_node.conf --auth
# 如果要关闭节点
#./mongod -f /app/mogodb/conf/mongo_node.conf  --shutdown
# netstat -an|grep 26001
检查端口是不是启动了
  • 配置副本集
#随便挑选一个节点,连接进入
./mongo --port=26001
#配置admin用户
db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]});
# 切换到admin数据库,并使用admin登录
use admin;
db.auth("admin","admmin");
# 创建副本集,注意这里的_id 要和你的副本集的名字一样
# priority: 添加优先级, 0代表不能成为主节点;优先级为0的成员 可以设置 hidden:true 用来隐藏这个成员也就是在查看配置的时候看不到这个成员
config = { _id : "han", members : [ {_id : 0, host : "192.168.0.19:26002" }, {_id : 1, host : "192.168.0.20:26003" }, {_id : 2, host : "192.168.0.21:26001"} ] };
#初始化副本集
rs.initiate(config);
#查看创建状态
rs.status() 
  • 测试
# 在主节点上插入一条数据,命令行中显示PRIMARY的那个节点就是主节点
db.blog.insert({"name":"test"});
# 去其他节点上查看
#默认slave节点上不能读,提示 not master and slaveOk=false
# 执行  rs.slaveOk();  解决只读问题
db.blog.find();

centos7.4 配置 mongodb4.0.4 三节点副本集_第1张图片

延迟节点

当我们误操作删除了某些东西,并且我们mongodb的数据库同步很给力,这时的副本集对于你的误操作不能帮上什么忙。
那么我们就要引入延迟节点,顾名思义就是他同步数据时总是和别人慢半拍。

  • 配置
# 主节点创建配置,注意选择的延迟节点不要是主节点
# 延迟节点的优先级是0,也就是说永远不会成为主节点
config = { _id : "han", "protocolVersion" : 1,members : [ {_id : 0, host : "192.168.0.19:26002" }, {_id : 1, host : "192.168.0.20:26003" }, {_id : 2, host : "192.168.0.21:26001","slaveDelay":10,"priority":0} ] };
# 重新配置副本集
rs.reconfig(config);

protocolVersion这个要必须有的,否则会报Support for replication protocol version 0 was removed in MongoDB 4.0

  • 测试
#主节点上插入数据
#然后登入延迟节点上查看,查看是不是延迟了

centos7.4 配置 mongodb4.0.4 三节点副本集_第2张图片


先写到这里了,如果有问题请加入qq群630300475,大家一起聊一下

你可能感兴趣的:(MongoDB)