mongodb6.0.13 搭建复制集PSA

一、材料

  mongodb:6.0.13

  mongosh:2.1.5   

  openssl-1.1.1w

  系统:redhat4.8

二、模式

  PDA: 一个主节点(Primary)、   一个延迟副节点(Secondary)、一个仲裁节点(arbiter)

PDA 主节点 延迟副节点 仲裁节点
名称 Primary Secondary Arbiter
端口 27017 27018 27019

 

三、安装步骤

  工具自己的系统下载对应的安装包并解压的

根据自己的系统下载对应的安装包
    mongodb: https://www.mongodb.com/try/download/community
    mongosh: https://www.mongodb.com/try/download/shell
创建安装目录
    mkdir -m 755 /usr/local/mongodb/
解压
    tar -zxvf mongodb-linux-x86_64-rhel70-6.0.13.tgz
    tar -zxvf mongosh-1.10.6-linux-x64-openssl11.tgz

将软件移动到安装目录
    mv ./mongodb-linux-x86_64-rhel70-6.0.13/bin  /usr/local/mongodb/
    mv ./mongosh-1.10.6-linux-x64-openssl11/  /usr/local/mongodb/mongosh

创建数据库数据和日志目录
    主节点:
        mkdri -m 755 /data/mongodb/27017/data
        mkdri -m 755 /data/mongodb/27017/log

    延迟副节点:
        mkdri -m 755 /data/mongodb/27018/data
        mkdri -m 755 /data/mongodb/27018/log

    仲裁节点:
        mkdri -m 755 /data/mongodb/27019/data
        mkdri -m 755 /data/mongodb/27019/log

 

四、配置文件

  创建三个配置文件,每个配置文件的内容著需要修改相对硬的端口 和 日志 数据库 目录

    /usr/local/mongodb/mongodb27017.conf
    /usr/local/mongodb/mongodb27018.conf
    /usr/local/mongodb/mongodb27019.conf
systemLog: 
    #MongoDB发送所有日志输出的目标指定为文件 
    destination: file 
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径 
    path: "/data/mongodb/27017/data/log/mongod.log" 
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。 
    logAppend: true 

storage: 
    #每个数据库创建单独目录
    directoryPerDB: true
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。 
    dbPath: "/data/mongodb/27017/data/data/"  
    journal:
        #启用或禁用持久性日志以确保数据文件保持有效和可恢复。 
        enabled: true
    wiredTiger:
        engineConfig:
            directoryForIndex: true

processManagement: 
    #启用在后台运行mongos或mongod进程的守护进程模式。 
    fork: true
    #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID 
    pidFilePath: "/data/mongodb/27017/data/log/mongod.pid"

net:
    #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip 
    #bindIpAll: true 
    #服务实例绑定的IP 
    bindIp: localhost,192.168.142.12
    #绑定的端口 
    port: 27017

replication: 
    #副本集的名称 
    replSetName: jxkshu
    oplogSizeMN: 1024

#Security:
#   authorization: disabled #disabled 关闭认证  enabled 开启认证
#   clusterAuthMode: keyFile
#   keyFile: "/usr/local/mongodb/mongodb.keyfile"

 

五、启动 

/usr/local/mongodb/bin/mongod -f  /usr/local/mongodb/mongodb27017.conf
/usr/local/mongodb/bin/mongod -f  /usr/local/mongodb/mongodb27018.conf
/usr/local/mongodb/bin/mongod -f  /usr/local/mongodb/mongodb27019.conf

tips:
/usr/local/mongodb/bin/mongod -f  /usr/local/mongodb/mongodb27019.conf --shutdown #关闭

 

六、配置复制集 

任意登录一个实例(推荐你登陆希望它成为主节点的哪个实例)
/usr/local/mongodb/mongosh/bin/mongosh --host 127.0.0.1 -port 27017
切换到admin
use admin
实例化复制集让该节点变成主节点
rs.initiate({
    _id:"jxkshu", #复制集名称就是 replSetName
    members:[
        {
            _id:0,
            host:"192.168.142.12:27017"
        }
    ]
})
继续添加副本集
rs.add("192.168.142.12:27018")
可以使用rs.status() 查看情况
添加仲裁节点
rs.addArb("192.168.142.12:27019")
配置完成
使用rs.status() 查看情况,如果一切送礼 表示搭建完成

七、延迟副节点

  主要未来防止误操作 比如删库 误删除数据什么的      将27018 实例 变更成延迟副节点

use admin
#将复制集配置信息复制到变量cfg中
cfg = rs.conf()
#查看cfg.members 列表信息 发现 27018 的_id是 1
#修改
cfg.members[1].hidden = true #隐藏该节点 不然客户端读取
cfg.members[1].priority = 0 #设置被选举权 不让起成为主节点
cfg.members[1].secondaryDelaySecs = 3600 # 副节点延迟3600秒 在同步
cfg.members[1].votes = 0 #设置退票数  不让它成为主节点

#重新就在复制集配置
rs.reconfig(cfg)
#或者
rs.reconfigForPSASet(1, cfg) #1 是27018 的_id是 1
#然复制集重新选举

 

 

Note:建议操作之前先通过 rs.help()  看看 其内部函数作用及参数详解 ,了解一下原理

 

可恶的cs/dn 不要再来偷我的博客了   太恶心啦

 

posted @ 2024-03-08 15:39  IT树  阅读(61)  评论(0编辑  收藏  举报