mongodb3.2 replica sets

一、配置文件/etc/mongod.conf

[[email protected] ~]# egrep -v "^(#|$)" /etc/mongod.conf

systemLog:

destination: file

logAppend: true

path: /data/mongodb/log/rs1.log

storage:

dbPath: /data/mongodb/data

directoryPerDB: true

journal:

enabled: true

processManagement:

fork: true  # fork and run in background

pidFilePath: /data/mongodb/conf/mongod.pid  # location of pidfile

net:

port: 27027

replication:

oplogSizeMB: 50000

replSetName: rs1

[[email protected] ~]#

[[email protected] ~]# ls /data/mongodb/

arbiter  conf  data  log  startaribiter.sh

[[email protected] ~]# ls /data/mongodb/arbiter/

arbiter.conf  conf  data  log

[[email protected] ~]# egrep -v "^(#|$)" /data/mongodb/arbiter/arbiter.conf

systemLog:

destination: file

logAppend: true

path: /data/mongodb/arbiter/log/rs1.log

storage:

dbPath: /data/mongodb/arbiter/data

directoryPerDB: true

journal:

enabled: true

processManagement:

fork: true  # fork and run in background

pidFilePath: /data/mongodb/arbiter/conf/mongod.pid  # location of pidfile

net:

port: 27029

replication:

oplogSizeMB: 50000

replSetName: rs1

[[email protected] ~]# cat /data/mongodb/startarbiter.sh

#!/bin/sh

. /etc/rc.d/init.d/functions

cd ${0%/*}/arbiter

daemon --user mongod "mongod --config arbiter.conf"

[[email protected] ~]#

注意:arbiter.conf文件的属主、属组为mongod

二、启动服务,配置副本集

service mongod  start

/data/mongodb/startaribiter.sh

启动第二个节点

然后:在primary上,

rs.initiate()

rs.add("mongodb2.example.net")

rs.add("mongodb3.example.net")

rs.addArb(“mongodb1.example.net:27029”)

如果希望降低primary的优先级:

cfg = rs.conf()

cfg.members[2].priority = 0.5

rs.reconfig(cfg)

rs.status()

实现复制后,在从节点上查看数据如下:

SECONDARY> rs.slaveOk()

SECONDARY> rs.slaveOk()

SECONDARY> show collections

三、 使用keyFile实现复制验证

在主节点上创建群集用户及密码如下:

admin = db.getSiblingDB("admin")

admin.createUser(

{

user: “clusteradmin”,

pwd: “clusterpwd”,

roles: [

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

{ role: “clusterAdmin”, db: "admin" },

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

]

}

)

测试用户:

db.getSiblingDB("admin").auth(“clusteradmin”, “clusterpwd” )

在各从节点上关闭服务:

use admin

db.shutdownServer()

包括arbiter节点也要关闭服务,最后再关闭primary节点的服务。

然后在各配置文件mongdb.conf中添加认证文件:

security:

keyFile: /data/mongodb/conf/keyfile.key

[[email protected] ~]# cat /data/mongodb/conf/keyfile.key

abcdefgh

该文件的权限必须是600或400,并把该文件复制到各节点上(保持内容相同),该文件也可以使用以下命令生成:openssl rand -base64 755 >  path-to-keyfile

最后再新启动各节点的mongodb服务,并重新login ,测试。

参考:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/

时间: 2024-10-12 01:28:25

mongodb3.2 replica sets的相关文章

实战mongodb3.06 Relica Sets+sharding集群

前  言 MongoDB 的Sharding机制解决了海量存储和动态扩容的问题,但离实际生产环境所需要的高可靠.高可用还有些距离,例如Shard Server的单点故障就无法解决,所以提出"ReplicatSets +Sharding"的解决方案.本方案是某某公司真实实例介绍采用MongoDB复制集和Sharding高可能用方案.本方案采用MongoDB 3.06版本. MongoDB3.0以上版本提升7到10倍的写入效率以及增加80%的数据压缩率,还能减少95%的运维成本 . Mon

mongodb replica sets复制集详解

一.replica sets介绍 一个复制集是一组包含相同数据集的mongod实例.一个复制集只能有一个是primary节点,其它的节点为secondary节点. 和主从复制的原理一样,复制集也是通过读取oplog来进行数据传输.oplog是一个capped collection即固定表,创建表的时候可以指定其大小,当oplog满的时候会删除旧的数据.所以设置oplog的大小非常重要,如果oplog在primary节点被覆盖而尚未被secondary节点读取的话就要重新resync. 一般的使用

Simple Automated Backups for MongoDB Replica Sets

There are a bunch of different methods you can use to back up your MongoDB data, but if you want to avoid downtime and/or potential performance degradation, the most common advice seems to be that you should simply do all your backups on a slave. Thi

【Mongodb】 Sharding Replica Sets 分片集群生产环境安装与介绍!

系统环境:Centos 6.5 官网手册:http://docs.mongodb.org/manual/ 参阅资料:<Mongodb权威指南><Mongodb实战><深入学习Mongodb> 由上方的官方拓扑可以看出,Sharding集群成员由Shard.ConfigServer.Router组成 Shard:可以是一个实例,官方推荐生产环境使用副本集Replica Set Config Server:为三台主机,当有1台或者2台Server当机,对于用户而言,集群还是

部署Replica Sets及查看相关配置

MongoDB 支持在多个机器中通过异步复制达到故障转移和实现冗余.多机器中同一时刻只有一台是用于写操作.正是由于这个情况,为MongoDB 提供了数据一致性的保障.担当Primary 角色的机器能把读操作分发给slave. MongoDB高可用可分为两种: Master-Slave主从复制: 只需要在某一个服务器启动时加上--master参数,而另一个服务加上--slave与--source参数,即可实现同步.MongoDB的最新版本已经不再推荐此方案. Replica Sets复制集 Mon

Mongodb Replica Sets+Sharding群集 部署手册

1.       群集简介 Mongodb是一个非关系型的分布式数据库,它可以通过自身的群集技术组成mongodb群集,进而实现数据库的横向扩展和数据库的高可用功能.Mongodb数据库群集分为Replica Sets(复制集)和Sharding(分片)两个部分.其中Replica Sets实现了mongodb数据库的高可用功能,Sharding分片实现了数据库的横向分布式扩展.在生产环境中搭建mongodb群集时一般都采取了Replica Sets+Sharding的解决方案. Replica

MongoDB整理笔记のReplica Sets

MongoDB支持在多个机器中通过异步复制达到故障转移和实现冗余.多机器中同一时刻只有一台机器是用于写操作,正因为如此,MongoDB提供了数据一致性的保障.而担当primary角色的机器,可以把读的操作分发给slave. MongoDB高可用分两种:   Master-Slave 主从复制 只需要在某一个服务启动时加上–master 参数,而另一个服务加上–slave 与–source 参数,即可实现同步.MongoDB 的最新版本已不再推荐此方案. Replica Sets 复制集 Mono

MongoDB -(2) replica sets

副本集搭建 ---何旭东(某上市公司运维工程师) 目录 副本集搭建... 1 参数介绍:... 1 开战... 3 基本操作... 3 逻辑图... 4 配置文件... 4 节点说明... 4 状态说明... 5 插入配置数据... 5 复制集初始化... 6 查看状态... 6 查看当前主库... 7 优化... 8 调整从库可读... 8 2015年7月16日 到此就配置好了二个replica sets! 发现问题思路:把基础环境一个一个总计一个一个梳理,确认每个节点的对应关系.即可! 在这

MongoDB整理笔记のReplica Sets + Sharding

MongoDB Auto-Sharding 解决了海量存储和动态扩容的问题,但离实际生产环境所需的高可靠.高可用还有些距离,所以有了"Replica Sets + Sharding"的解决方案. shard: 使用Replica Sets,确保每个数据节点都具有备份,自动容错转移,自动回复能力. config: 使用3个配置服务器,确保元数据的完整性. route: 使用3个路由进程,实现负载均衡,提高客户端接入性能. 配置Replica Sets + Sharding 架构图: 配置