Linux中部署Mongodb副本集

提示:

以下操作步骤较多,请耐心阅读。

关于理论部分请参考上篇浅谈mongodb副本集。

1、 准备

192.168.102.110 master

192.168.102.111 slave1

192.168.102.112 slave2

以下操作以常用的1主2从3台机器为例

2、 操作

以master为例,配置好一台再scp到slave1、slave2

2.1、准备好mongodb

2.2、创建数据库目录和日志文件、配置文件、mongo.pid文件

[root@odysee mongodb4.0]# mkdir data/db -p

[root@odysee mongodb4.0]# mkdir {etc,logs}

[root@odysee mongodb4.0]# touch logs/mongodb.log

[root@odysee mongodb4.0]# touch etc/mongodb.conf

创建mongo.pid文件

touch mongo.pid

2.3、配置mongodb.conf文件

port=27017

bind_ip=192.168.102.110

dbpath=/root/General/mongodb4.0/data/db/

logpath=/root/General/mongodb4.0/logs/mongodb.log

pidfilepath=/root/General/mongodb4.0/mongo.pid

fork=true

logappend=true

shardsvr=true

directoryperdb=true

#auth=true

#keyFile=/root/General/mongodb4.0/keyfile

#副本集名字

replSet=odysee

3、 编写启动脚本

[root@odysee mongodb4.0]# vi /etc/init.d/mongod

写入

#!/bin/bash

# chkconfig: - 64 36

# description: this is mongod

case $1 in

start)

/root/General/mongodb4.0/bin/mongod --maxConns 20000 --config /root/General/mongodb4.0/etc/mongodb.conf

;;

stop)

/root/General/mongodb4.0/bin/mongo 192.168.102.110:27017/admin --eval "db.shutdownServer()"

#/root/General/mongodb4.0/bin/mongo 192.168.102.110:27017/admin --eval "db.auth('system', '123456');db.shutdownServer()"

;;

status)

/root/General/mongodb4.0/bin/mongo 192.168.102.110:27017/admin --eval "db.stats()"

#/root/General/mongodb4.0/bin/mongo 192.168.102.110:27017/admin --eval "db.auth('system', '123456');db.stats()"

;; esac

启动master节点

注意:

给mongod执行的权限

chmod a+x /etc/init.d/mongod

/etc/init.d/mongod start

4、 Scp mongodb4.0和mongod.conf文件到slave1和slave2

将mongodb4.0 远程cp的slave1

scp -r ~/General/mongodb4.0/ root@192.168.102.111:~/General/

将mongodb4.0 远程cp的slave2

scp -r ~/General/mongodb4.0/ root@192.168.102.112:~/General/

将mongod.conf 远程cp的slave1

scp /etc/init.d/mongod root@192.168.102.111:/etc/init.d/

将mongod.conf 远程cp的slave2

scp /etc/init.d/mongod root@192.168.102.112:/etc/init.d/

修改slave1 mongodb.conf的ip

修改slave2 mongodb.conf的ip

修改slave1 mongod的ip

修改slave2 mongod的ip

启动slave1

/etc/init.d/mongod start

启动slave2

/etc/init.d/mongod start

5、配置主节点

5.1、利用mongo登录

bin/mongo 192.168.102.110

5.2、初始化副本集,设置本机为主节点

rs.initiate()

rs.conf()

注意:

执行上面的两个命令后,前缀已经改成odysee:PRIMARY>

5.3、添加副本集从节点

添加slave1

rs.add("192.168.102.111:27017")

添加slave2

rs.add("192.168.102.112:27017")

5.4、设置节点优先级

查看节点顺序

cfg = rs.conf()

设置节点优先级

odysee:PRIMARY> cfg.members[0].priority = 1

1

odysee:PRIMARY> cfg.members[1].priority = 1

1

odysee:PRIMARY> cfg.members[2].priority = 2

2

//使配置生效

odysee:PRIMARY> rs.reconfig(cfg)

注意:

主节点发生故障时,优先级高的节点就会转变为主节点接管服务。

提示:

副本集通过设置priority决定优先级,默认优先级为1。

priority值是0到100之间的数字,数字越大优先级越高。

若priority=0,则此节点永远不能成为主节点primay。

6、配置slave1和slave2

Slave1

bin/mongo 192.168.102.111

//设置Slave1为只读

odysee:SECONDARY> db.getMongo().setSlaveOk()

odysee:SECONDARY>

Slave2

bin/mongo 192.168.102.112

//设置Slave2为只读

odysee:SECONDARY> db.getMongo().setSlaveOk()

odysee:SECONDARY>

7、设置数据库账号

添加两个管理员账号:

一个系统管理员:system

一个数据库管理员:administrator

在master操作

db.createUser({user:"system

mongodb添加创建修改时间_mongodb副本集生产环境下部署案例,推荐一个主两个从三台机器...相关推荐

  1. mongodb添加创建修改时间_MongoDB数据库插入、更新和删除操作详解

    一.Insert操作 Insert操作是MongoDB插入数据的基本方法,对目标集合使用Insert操作,会将该文档添加到MongoDB并自动生成相应的ID键.文档结构采用类似JSON的BSON格式. ...

  2. Kubernetes集群环境搭建详细教程(一主两从)

    Kubernetes集群环境搭建详细教程(一主两从) 1.1 安装要求 在开始之前,部署Kubernetes 集群机器需要满足以下几个条件: 一台或多台机器,操作系统CentOS7.x-86_x64 ...

  3. 服务器集群环境下session的共享问题

    一,集群和分布式的区别 在进入今天的正题之前,对服务器集群和分布式服务器这两个概念进行简要说明. 服务器集群:服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器. ...

  4. MongoDB高性能、高可用之副本集、读写分离、分片、操作实践

    2019独角兽企业重金招聘Python工程师标准>>> 关于MongoDb 1.MongoDB是一个开源的.基于分布式的.面向文档存储的非关系型数据库. 2.是非关系型数据库当中功能 ...

  5. MongoDB 配置文件详解,以及副本集,优先级

    ## content . mongodb 日志开启并指定日志位置 systemLog:destination: filelogAppend: truepath: /www/server/mongodb ...

  6. k8s-大型分布式集群环境捷径部署

    转k8s-大型分布式集群环境捷径部署 课程介绍 ​ Kubernetes(k8s)一个用于容器集群的自动化部署.扩容以及运维的开源平台.通过Kubernetes,你可以快速有效地响应用户需求;快速而有 ...

  7. GitOps:Kubernetes多集群环境下的高效CICD实践

    为了解决传统应用升级缓慢.架构臃肿.不能快速迭代.故障不能快速定位.问题无法快速解决等问题,云原生这一概念横空出世.云原生可以改进应用开发的效率,改变企业的组织结构,甚至会在文化层面上直接影响一个公司 ...

  8. 在非容器(集群)环境下运行dapr

    作者:李俱顺 原文:https://www.4async.com/2021/03/2021-03-11-running-dapr-without-container/ 前一段时间一直关注的dapr正式 ...

  9. 多云环境下部署 k3s 集群

    多云环境下部署 k3s 集群 最近在玩k3s,刚好手上有三台云服务器(白嫖的一年亚马逊,双11买的腾讯云,朋友的阿里云),尝试跨云厂商搭建k3s集群玩玩 一.基础配置 服务器信息 系统 公网IP 内网 ...

最新文章

  1. 【一语点醒梦中人】如何优雅地合并两个JSON对象 → Object.assign(a, b)和Object.assign({}, a, b)的区别
  2. Pytorch-nn.BatchNorm2d()
  3. art-template入门(六)之解析规则
  4. go 二进制程序守护_图解 Go 程序是怎样跑起来的
  5. LeetCode 314. 二叉树的垂直遍历(BFS/DFS)
  6. 使用Python开发SQLite代理服务器
  7. MFC 教程【8_MFC的进程和线程 】
  8. python根据题库答案自动答题器_python实现百万答题自动百度搜索答案
  9. 【IT】QTTabBar使用
  10. 前端代码更新镜像后,浏览器显示缓存
  11. js获取某月的天数以及某天的前一个日期和后一天日期
  12. u盘第一扇区 分区表_硬盘主引导扇区、分区表和分区引导扇区(MBR、DPT、DBR、BPB)详解...
  13. 域名注册必须实名认证 《互联网域名管理办法》11月1日实施
  14. 万语千言,不敌一纸情书
  15. [精简]快速入门五线谱
  16. 计算机网络图标在哪里照,网络设备图标-电脑上的网络图标怎么显示
  17. 使用Arduino IDE来编写上传STM32以及STM8代码,STM32Duino教程
  18. POJ 1625 Censored!
  19. 【Pytorch】AlexNet图像分类实战
  20. guitar chord html5,Chord Guitar Full

热门文章

  1. leetcode 130. Surrounded Regions | 130. 被围绕的区域(DFS递归“感染“思路)
  2. 【Tomcat Eclipse】8080端口被占用问题记录
  3. 【广义找零钱问题】 贪心算法求解进制转换问题
  4. C语言 记录程序运行时间(以秒为单位)
  5. JavaScript JSON操作
  6. include php 失效,为什么include(‘php:// input’)不起作用?
  7. cas 单点登录_47 使用cas完成单点登录-02 搭建cas client完成单点登录
  8. 容器学习 之 base镜像(四)
  9. 0-1 背包问题的 4 种解决方法算法策略
  10. 大量更新后数据膨胀_段合并的原理探寻