热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Mongodb副本集集群搭建

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Mongodb副本集集群搭建相关的知识,希望对你有一定的参考价值。 一、环境准备1.1.主机信息(机器配置要求见硬件及开发标准规范文档V1.0)序号主

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Mongodb副本集集群搭建相关的知识,希望对你有一定的参考价值。



一、环境准备


1.1.主机信息(机器配置要求见硬件及开发标准规范文档V1.0)



































序号


主机名


IP


1


DB_01


10.202.105.52


2


DB_02


10.202.105.53


3


DB_03


10.202.105.54


4


DB_04


10.202.105.181


 


 


 



 



















服务器52(DB_01)


服务器53(DB_02)


服务器54(DB_03)


服务器55DB_04


primary


secondry


secondry


hidden(阿里云一般都是主  备  Hidden三节点)  这里暂时忽略异常情况选举   其实和zk选举一样的道理


 

 

 

 


端口分配:(端口可以根据实际情况进行更改)

mongos:20000

 


1.2.软件版本















组件


版本


备注


MongoDB


3.4.X


 



1.3.软件下载


https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.7.tgz


二、软件部署


2.1软件安装

useradd  mongodb

passwd  mongodb

chown -R  mongodb:mongodb /app/mongodb/

chown -R  mongodb:mongodb /data/mongodb/

 

并用mongo用户在一台机器上生成集群间验证文件并同步文件到其余两台机器相应位置赋予同样权限

openssl rand -base64 100 > /data/keyFile/keyFilers0.key

chmod 600 /data/keyFile/keyFilers0.key

 








1、新建目录(四台机器均操作)

mkdir -p /data/mongodb/conf

mkdir -p /data/mongodb/data

mkdir -p /data/mongodb/log

 

2、安装Mongodb(三台机器均操作,目录为/app/mongo/…)

tar –zxvf mongodb-linux-x86_64-rhel70-3.4.7 tar.gz

 

然后配置环境变量

 

vim /etc/profile

# 内容

export MONGODB_HOME=…

export PATH=$MONGODB_HOME/bin:$PATH

# 使立即生效

source /etc/profile

 

 



2.2配置文件

1、打开mongod.conf,修改以下配置项:(四台机器均操作)








vi /data/mongodb/conf/mongod.conf

 

 

systemLog:

  destination: file

  logAppend: true

  logRotate: reopen

  path: /data/mongodb/log/mongod.log

# Where and howto store data.

##########operationProfilingOptions

storage:

  dbPath: /data/mongodb/data

  journal:

    enabled: true

  directoryPerDB: true

  engine: wiredTiger

#########storage.wiredTigerOptions

  wiredTiger:

    engineConfig:

       cacheSizeGB: 2

       directoryForIndexes: true

    collectionConfig:

       blockCompressor: zlib

    indexConfig:

       prefixCompression: true

operationProfiling:

   slowOpThresholdMs: 100

   mode: "all"

processManagement:

  fork: true

  pidFilePath: /data/mongodb/log/mongod.pid

net:

  port: 20000

  bindIp: 0.0.0.0

  maxIncomingConnections: 20000

security:

    #authorization: enabled

    #clusterAuthMode: keyFile

    #keyFile: /data/keyFile/keyFilers0.key

    #keyFile: /srv/mongodb/keyfile

    JavascriptEnabled: true

setParameter:

    enableLocalhostAuthBypass: false

    authenticationMechanisms: SCRAM-SHA-1

replication:

##oplog大小

  oplogSizeMB: 10000

  replSetName: repl

sharding:

  clusterRole: configsvr

 #configsvr or shardsvr


 


2.3初始化服务及副本集








1.启动四台服务器的mongod server并配置副本集(四台均启动)

mongod -f /data/mongodb/conf/mongod.conf

 

登录任意一台配置服务器,初始化配置副本集

#连接

mongo --port 20000

 

use admin

#config变量

cfg={_id:"repl",members:[

{_id:0,host:"10.202.105.52:20000",priority:2},

{_id:1,host:"10.202.105.53:20000",priority:1},

{_id:2,host:"10.202.105.54:20000",priority:1},

{_id:3,host:"10.202.105.181:20000",priority:0,hidden:true}]}

#初始化副本集

rs.initiate(cfg)

其中,"_id" : "cfg"应与配置文件中配置的 replicaction.replSetName 一致,"members" 中的 "host" 为四个节点的 ip 和 port

 

 


 


2.4增加安全机制








http://blog.csdn.net/u011191463/article/details/68485529   //mongo用户类型引导

 

http://www.jianshu.com/p/f585f71acbf2    //用户添加步骤

 

1)在Router下,切换到admin库,用db.createUser(用户名,密码)添加好认证帐号,再切换到目标数据库做类似的帐号添加操作。步骤如下

创建用户

use admin

db.createUser( 

    user: "admin", 

    pwd: "123456", 

    roles: 

    [ 

      {role: "userAdminAnyDatabase",db: "admin"},

      { role: "readAnyDatabase", db:"admin" },

      { role: "dbOwner", db:"admin" },

      { role: "userAdmin", db:"admin" },

      { role: "root", db: "admin"},

      { role: "clusterMonitor", db:"admin" },

      { role: "dbAdmin", db:"admin" },

    ] 

  } 

)

用户名为admin,密码为123456

验证用户db.auth("admin","123456");    出现1则为验证成功

再切换到zhaobo此数据库,添加用户

db.createUser( 

    user: "zhaobo", 

    pwd: "123456", 

    roles: 

    [ 

      { role: "dbOwner", db:"zhaobo" },

      { role: "userAdmin", db:"zhaobo" },

      { role: "dbAdmin", db:"zhaobo" },

    ] 

  } 

)

验证用户db.auth("zhaobo","123456");    出现1则为验证成功

2)生成keyfile,可以使用如下命令:(在开始安装之前已经生成就不需要此步骤了)

openssl rand -base64 100 > /data/keyFile/keyFilers0.key

将keyfile文件复制到各服务器备用,注意:需要给keyfile设置好权限,权限必须为600。

chmod 600 /data/keyFile/keyFilers0.key

3)杀掉所有的mongod进程。去掉配置文件的sectury下面的注释,本文以配置文件方式设置启动参数,启动各服务器

 

5)完成以后就可以使用上面配置的帐号密码访问Router了。在客户端Robo 3T测试成功

本地登陆数据库之后验证db.auth("admin","123456");  即可正常使用

mongodb的启动顺序是,

mongos -f /data/mongodb/conf/mongos.conf

 

关闭mongos

use admin

db.shutdownServer()



推荐阅读
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
author-avatar
用户7krcbz6eb6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有