美文网首页
MongoDB复制集环境搭建

MongoDB复制集环境搭建

作者: 古飞_数据 | 来源:发表于2022-09-25 06:34 被阅读0次

PSS(推荐) PSA

复制集架构

image.png

环境准备

版本4.4.9
端口28017/28018/28019

初始化环境(用脚本)

创建目录
mkdir -p /data/db{1,2,3}

touch /data/db1/mongo.log
创建配置文件
vi /data/db1/mongod.conf
systemLog:
destination: file
path: /data/db1/mongo.log # log path
logAppend: true
storage:
dbPath: /data/db1/ # data directory
engine: wiredTiger #存储引擎
journal: #是否启用journal日志 100ms
enabled: true
net:
bindIp: 0.0.0.0
port: 28017 # port
replcation:
replSetName: rs0
processManagement:
fork: true

touch /data/db2/mongo.log
创建配置文件
vi /data/db2/mongod.conf
systemLog:
destination: file
path: /data/db2/mongo.log # log path
logAppend: true
storage:
dbPath: /data/db2/ # data directory
engine: wiredTiger #存储引擎
journal: #是否启用journal日志 100ms
enabled: true
net:
bindIp: 0.0.0.0
port: 28018 # port
replcation:
replSetName: rs0
processManagement:
fork: true

touch /data/db3/mongo.log
创建配置文件
vi /data/db3/mongod.conf
systemLog:
destination: file
path: /data/db3/mongo.log # log path
logAppend: true
storage:
dbPath: /data/db3/ # data directory
engine: wiredTiger #存储引擎
journal: #是否启用journal日志 100ms
enabled: true
net:
bindIp: 0.0.0.0
port: 28019 # port
replcation:
replSetName: rs0
processManagement:
fork: true

启动服务
mongod -f /data/db1/mongod.conf
mongod -f /data/db2/mongod.conf
mongod -f /data/db3/mongod.conf

关闭服务
mongod -f /data/db1/mongod.conf shutdown

配置复制集

mongo --port 28017
方法一
初始化复制集

rs.initiate()
rs.add("HOSTNAME:28018")
rs.add("HOSTNAME:28019")

方法二

rs.initiate({
  _id: "rs0",
  members: [{
    _id: 0,
    host: "192.168.65.174:28017"
  },{
    _id: 1,
    host: "192.168.65.174:28018"
  },{
    _id: 2,
    host: "192.168.65.174:28019"
  }]
})

查看复制集整体状态
rs.status()
查看当前节点角色
db.isMaster()

查看oplog信息

返回一个汇总的各Secondary同步延迟信息
rs.printSecondaryReplicationInfo()
返回oplog大小,保留时长,起始时间等信息
rs.printReplicationInfo()

rs.slaveOk() --早期版本开机从节点读操作
rs.secondaryOk()

db.user.find()
db.user.remove({name:"fox"})

安全认证

在主节点服务器上

use admin
#创建用户
db.createUser({
  user: "fox",
  pwd: "fox",
  roles: [ { role: "clusterAdmin", db: "admin" },
    { role: "userAdminAnyDatabase", db: "admin"},
    { role: "userAdminAnyDatabase", db: "admin"},
    { role: "readWriteAnyDatabase", db: "admin"},
})

创建keyFile文件
keyFile文件的作用: 集群之间的安全认证,增加安全认证机制KeyFile(开启keyfile认证就
默认开启了auth认证了)。

mongo.key采用随机算法生成,用作节点内部通信的密钥文件。

openssl rand -base64 756 > /data/mongo.key

权限必须是600

chmod 600 /data/mongo.key

注意:创建keyFile前,需要先停掉复制集中所有主从节点的mongod服务,然后再创建,
否则有可能出现服务启动不了的情况。

将主节点中的keyfile文件拷贝到复制集其他从节点服务器中,路径地址对应
mongo.conf配置文件中的keyFile字段地址,并设置keyfile权限为600
启动mongod

#启动mongod
mongod ‐f /data/db1/mongod.conf --keyFile /data/mongo.key
mongod ‐f /data/db2/mongod.conf --keyFile /data/mongo.key
mongod ‐f /data/db3/mongod.conf --keyFile /data/mongo.key

测试

进入主节点

mongo --port 28017
db.user.find()       #无法读取

进入主节点

mongo --port 28017 -ufox -pfox --authenticationDatabase=admin
db.user.find()
db.user.insert({name:"fox"})

进入从节点

mongo --port 28019 -ufox -pfox --authenticationDatabase=admin
rs.secondaryOk()
db.user.find()

相关文章

  • MongoDB复制集环境搭建

    PSS(推荐) PSA 复制集架构 环境准备 版本4.4.9端口28017/28018/28019 初始化环境(用...

  • mongodb——分布式

    复制集 mongodb在集群环境中,通过复制的形式对数据进行冗余。mongodb复制集有Primary、Secon...

  • mongodb复制集搭建

    服务器 OS:CentOS7内存:16G硬盘:6TIP:192.168.1.2/192.168.1.51/192....

  • MongoDB 复制集搭建

    MongoDB replica set : A replica set in MongoDB is a group...

  • MongoDB复制集 搭建

    MongoDB复制集概述 准备 初始化复制集主节点、添加从节点和仲裁节点 检查各个节点local库信息 检查复制集...

  • Mongodb复制集配置

    配置环境:centos7配置mongodb复制集 VMware+centos7+mongodb4.2.0 1.搭...

  • MongoDB复制集部署

    MongoDB的高可用特使是用复制集实现的,本文介绍如何在CentOS7快速搭建一个复制集 部署单节点版本 yum...

  • mongodb笔记07--复制集

    复制集(replication set): mongodb的集群搭建方式主要有三种,主从模式,Replica se...

  • mongodb分片复制集搭建

    目录 1 部署规划... 2 2 内核参数调整... 2 2.1 sysctl.conf 2 2.2 limits...

  • mongodb复制集搭建笔记!

    复制集机制及原理 影响选举因素: 复制集节点常见选配项: 注意事项: 搭建复制集测试是在同一台服务器,宝塔安装的最...

网友评论

      本文标题:MongoDB复制集环境搭建

      本文链接:https://www.haomeiwen.com/subject/zfjzortx.html