mongodb3.2 replica sets

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

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

[root@mongo01 ~]# egrep -v "^(#|$)" /etc/mongod.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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


[root@mongo01 ~]#

[root@mongo01 ~]# ls /data/mongodb/

1
arbiter  conf  data  log  startaribiter.sh

[root@mongo01 ~]# ls /data/mongodb/arbiter/

1
arbiter.conf  conf  data  log

[root@mongo01 ~]# egrep -v "^(#|$)" /data/mongodb/arbiter/arbiter.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

[root@mongo01 ~]# cat /data/mongodb/startarbiter.sh

1
2
3
4
#!/bin/sh
/etc/rc .d /init .d /functions
cd  ${0%/*} /arbiter
daemon --user mongod  "mongod --config arbiter.conf"

[root@mongo01 ~]#

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


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

service mongod  start 

/data/mongodb/startaribiter.sh

启动第二个节点

然后:在primary上,

1
2
3
4
rs.initiate()
rs.add( "mongodb2.example.net" )
rs.add( "mongodb3.example.net" )
rs.addArb(“mongodb1.example.net:27029”)


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

1
2
3
4
cfg = rs.conf()
cfg.members[2].priority = 0.5
rs.reconfig(cfg)
rs.status()


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

1
2
SECONDARY> rs.slaveOk()
SECONDARY> show collections

三、 使用keyFile实现复制验证

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

1
2
3
4
5
6
7
8
9
10
11
12
admin = db.getSiblingDB( "admin" )
admin.createUser(
   {
     user: “clusteradmin”,
     pwd : “clusterpwd”,
     roles: [ 
     { role:  "userAdminAnyDatabase" , db:  "admin"  },
     { role: “clusterAdmin”, db:  "admin"  },
     { role: “root”, db:  "admin"  }
     ]
   }
)

测试用户:

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


在各从节点上关闭服务:

use admin

db.shutdownServer()

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


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

1
2
security:
   keyFile:  /data/mongodb/conf/keyfile .key

[root@mongo01 ~]# cat /data/mongodb/conf/keyfile.key

1
abcdefgh

该文件的权限必须是600400,并把该文件复制到各节点上(保持内容相同),该文件也可以使用以下命令生成:

1
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/











本文转自 meteor_hy 51CTO博客,原文链接:http://blog.51cto.com/caiyuanji/1790862,如需转载请自行联系原作者
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
NoSQL MongoDB Docker
基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群(1)
基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群(1)
173 0
基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群(1)
|
NoSQL Java MongoDB
基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群(3)
基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群(3)
180 0
|
NoSQL MongoDB Docker
基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群(2)
基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群(2)
185 0
|
NoSQL
How to Create Highly Available MongoDB Databases with Replica Sets
Find out how you can create MongoDB databases with high availability by backing up data through replica set elections.
4121 0
How to Create Highly Available MongoDB Databases with Replica Sets
|
16天前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
16天前
|
NoSQL 关系型数据库 MongoDB
非关系型数据库-MongoDB技术(一)
非关系型数据库-MongoDB技术(一)
|
2月前
|
运维 监控 NoSQL
【MongoDB 复制集秘籍】Secondary 同步慢怎么办?深度解析与实战指南,让你的数据库飞速同步!
【8月更文挑战第24天】本文通过一个具体案例探讨了MongoDB复制集中Secondary成员同步缓慢的问题。现象表现为数据延迟增加,影响业务运行。经分析,可能的原因包括硬件资源不足、网络状况不佳、复制日志错误等。解决策略涵盖优化硬件(如增加内存、升级CPU)、调整网络配置以减少延迟以及优化MongoDB配置(例如调整`oplogSize`、启用压缩)。通过这些方法可有效提升同步效率,保证系统的稳定性和性能。
56 4