linux ubuntu 配置mongodb集群-副本集模式

本文详细介绍了如何在Ubuntu20.04.2的Linux系统中手动启动并配置3个MongoDB服务,包括主节点和两个从节点。同时提供了使用Docker部署MongoDB集群的简化方法,以及如何管理和维护副本集状态。
摘要由CSDN通过智能技术生成

使用环境:linux ubuntu 20.04.2

我这里是在同一台电脑上,启动了3个mongo服务,分配不同的端口。一个主节点,2个从节点。

#如果是直接在ubuntu用命令安装的mongo
#启动mongo
sudo service mongod start

#停止mongo
sudo service mongod stop

#修改mongo配置表
sudo nano /etc/mongod.conf
#修改两个地方
#设置bindIp,表示允许任何IP访问mongo
bindIp: 0.0.0.0
#设置副本集名称,每个版本设置方式不一样。根据版本设置,
#如果mongo启动不了,就有可能是这里配置的问题
replication:
  replSetName: mongo-replica
#修改后按ctrl+o,然后回车键保存,再按ctrl+x,退出编辑

#子节点上也需要修改上述配置表。修改的地方和值一样。



#主节点运行 对应替换ip和端口 priority为选举优先级,数字大,优先级越高

mongo --host 172.16.1.188:27017 <<EOF
 var cfg = {
   "_id": "mongo-replica",
   "version": 1,
   "members": [
     {
       "_id": 0,
       "host": "172.16.1.188:27017",
       "priority": 2
     },
     {
       "_id": 1,
       "host": "172.16.1.188:27018",
       "priority": 1
     },
     {
       "_id": 2,
       "host": "172.16.1.188:27019",
       "priority": 0
     }
   ]
 };
 rs.initiate(cfg, { force: true });
 rs.reconfig(cfg, { force: true });
 rs.secondaryOk();
 
 rs.status();
 
 db.getMongo().setReadPref('nearest');
 db.getMongo().setSecondaryOk();
EOF


#上面的是全部复制,直接粘贴运行,不能一行一行运行。

#运行后,副本集模式的集群就搭建好了。
#只有主节点才能插入数据,其他子节点只能查询主节点插入的数据


#关闭副本集:
#注释上面添加配置文件
# replication:
#   replSetName: mongo-replica

#进入mongo
mongo
#运行命令停止副本集功能
use admin
db.shutdownServer()

#重启服务,变成单节点模式
sudo service mongod restart


上面是直接安装的mongo操作方式,这里再附加一个docker运行的mongo集群

docker-compose.yml

version: "3.5"
services:
  mongodb-primary:
    image: mongo:4.4
    command: --bind_ip_all --replSet mongo-replica
    volumes:
      - ./data/mongodb1:/data/modelDb
    ports:
      - 27018:27017

  mongodb-secondary-1:
    image: mongo:4.4
    command: --bind_ip_all --replSet mongo-replica
    volumes:
      - ./data/mongodb2:/data/modelDb
    ports:
      - 27019:27017

  mongodb-secondary-2:
    image: mongo:4.4
    command: --bind_ip_all --replSet mongo-replica
    volumes:
      - ./data/mongodb3:/data/modelDb
    ports:
      - 27020:27017


会使用docker的,用这个更简单,直接运行docker-compose up -d。

本质和上面的差不多,不需要改配置表的操作。

docker里的command: --bind_ip_all --replSet mongo-replica,这一段就类似改配置表了。

docker运行后,只需要进入主节点的容器里面。

运行主节点的那一串代码就行了。注意更改主节点的端口,按docker的代码就要把27017改成27018,其他子节点的也是。

如果有什么问题,欢迎大佬指正。

 最后如果对你有一点点帮助,麻烦支持一下。

全国寄快递5元起,电影票8.8折。更多优惠微信关注公众号:【折价寄件】

感谢阅读!!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值