首页 技术 正文
技术 2022年11月18日
0 收藏 370 点赞 3,718 浏览 2824 个字

单台mongodb配置文件:

dbpath=/opt/mongodb/data
logpath=/opt/mongodb/logs/mongodb.log
logappend=true
fork=true
bind_ip=192.168.209.128
port=27017

启动MongoDB

./mongod -f mongodb.cfg


MongoDB 主从搭建

MongoDB 4.0之后不再支持该配置方法:

Master配置文件如下:

dbpath=/opt/mongodb/master-slave/master/data
logpath=/opt/mongodb/master-slave/master/logs/mongodb.log
logappend=true
fork=true
bind_ip=192.168.209.128
port=27001
master=true//4.0后不再支持
//source=192.168.x.x:27002

Slaver配置如下:

..........slave=true............

MongoDB 副本集

简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,提供的前提就是数据需要和主节点一致。

Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点。
1. 主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。
默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。这个设置叫做Read Preference Modes,同时Java 客户端提供了简单的配置方式,可以不必直接对数据库进行操作。
2.仲裁节点是一种特殊的节点,它本身并不存储数据,主要的作用是决定哪一个备节点在主节点挂掉之后提升为主节点,所以客户端不需要连接此节点。这里虽然只有一个备节点,但是仍然需要一个仲裁节点来提升备节点级别。

主, 备, 仲裁节点配置文件如下:

dbpath=/opt/mongodb/replset/xx/data
logpath=/opt/mongodb/replset/xx/logs/mongodb.log
logappend=true//注意: 这里是关键, 记录集群的名字
replSet=shard002
bind_ip=192.168.x.x
port=27017
fork=true

启动各节点之后, 配置主,备,仲裁节点

#连接好其中一台主机, 方便配置
mongo 192.168.x.x:27017
use admin
cfg={_id:"shard002",members:[{_id:0,host:'192.168.x.128:27017',priority:9},{_id:1,host:'192.168.x.129:27017',priority:1},{_id:2,host:'192.168.x.130:27017',arbiterOnly:true}]};#使配置生效
rs.initiate(cfg)rs.status()

注意: 对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。


MongoDB 数据分片:

服务器结构图如下:

MongoDB集群配置笔记二(实战)

1). 数据节点配置文件:

dbpath=/opt/mongodb/shard/replset/replica2/data
logpath=/opt/mongodb/shard/replset/replica2/logs/mongodb.log
logappend=true
fork=true
bind_ip=192.168.x.x
port=27002
replSet=shard001
shardsvr=true

使数据节点集群生效

//#连接上其中一台数据服务器,进行其余配置
mongo 192.168.209.128:27001 #ip 和port 是某个节点的地址cfg={_id:"shard001",members:[{_id:0,host:'192.168.209.x:27001'},{_id:1,host:'192.168.209.x:27002'},{_id:2,host:'192.168.209.x:27003'}]};//#使配置生效
rs.initiate(cfg)

2). config 集群配置文件如下:

dbpath=/opt/mongodb/shard/configsvr/config2/data
configsvr=true
//此处端口号根据实际应用调整
port=28002
fork=true
logpath=/opt/mongodb/shard/configsvr/config2/logs/mongodb.log
replSet=configrs
logappend=true
bind_ip=192.168.209.x

启动config集群,并使节点集群生效

##连接上其中一台数据服务器,进行其余配置
mongo 192.168.209.x:28001 #先切换到admin
use admincfg={_id:"configrs",members:[{_id:0,host:'192.168.209.x:28001'},{_id:1,host:'192.168.209.x:28002'},{_id:2,host:'192.168.209.x:28003'}]};#使配置生效
rs.initiate(cfg)

3). 路由集群配置文件如下:

//此处配置config集群的地址
configdb=configrs/192.168.209.x:28001,192.168.209.x:28002,192.168.209.x:28003
//此处端口号根据实际应用调整
port=29000
fork=true
logpath=/opt/mongodb/shard/routesvr/logs/mongodb.log
logappend=true
bind_ip=192.168.209.x

4). 配置Replica Set 分片信息

//#这里必须连接路由节点
mongo 192.168.209.x:29000 //#连接上数据集群中的其中一台,自动同步集群中其他机器信息
sh.addShard("shard001/192.168.209.x:27001");//#连接上collection[testdb], 并设置分片
use testdb//#testdb is database name
sh.enableSharding("testdb") sh.shardCollection("testdb.testcon",{"name":”hashed”})db.collection.status()
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,581
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918