mongodb集群安装

一、复制集(replica_sets)搭建

1、主节点配置

# 主节点配置
dbpath=/data/mongo/data/server1
bind_ip=0.0.0.0
port=37017
fork=true
logpath=/data/mongo/logs/server1.log
replSet=lagouCluster

2、两个从节点配置

dbpath=/data/mongo/data/server2
bind_ip=0.0.0.0
port=37018
fork=true
logpath=/data/mongo/logs/server2.log
replSet=lagouCluster

修改同样的配置增加一个仲裁节点

3、创建对应的目录data和log

4、依次启动三个节点,启动命令,修改制定的配置文件

./bin/mongod -f mongo-37017.conf

5、连接server

./bin/mongo --port 37017

6、初始化(任意选择一个节点执行如下命令,相当于初始化一个collection)

var cfg ={"_id":"lagouCluster",
"protocolVersion" : 1,
"members":[
{"_id":1,"host":"8.131.93.105:37017","priority":10},
{"_id":2,"host":"8.131.93.105:37018"}
]
}

rs.initiate(cfg)
//初始化后过一会才会发现SECONDARY编程PRIMARY
rs.status()

7、可以在PRIMARY动态增减节点

增加节点
rs.add("8.131.93.105:37019")
删除slave 节点
rs.remove("8.131.93.105:37019")

8、问题记录

如果从节点不能查询数据,需要先在从节点执行命令

rs.slaveOk() 

为了保证高可用,在集群当中如果主节点挂掉后,会自动 在从节点中选举一个 重新做为主节点。

9、节点说明

PRIMARY 节点: 可以查询和新增数据 
SECONDARY 节点:只能查询 不能新增 基于priority 权重可以被选为主节点 
ARBITER(裁判) 节点: 不能查询数据 和新增数据 ,不能变成主节点

10、增加仲裁节点

配置文件同从节点

11、设置各节点的优先级,重新加载配置

var cfg ={"_id":"lagouCluster",
"protocolVersion" : 1,
"members":[
{"_id":1,"host":"8.131.93.105:37017","priority":10},
{"_id":2,"host":"8.131.93.105:37018","priority":0},
{"_id":3,"host":"8.131.93.105:37019","priority":5},
{"_id":4,"host":"8.131.93.105:37020","arbiterOnly":true}
]
};
// 重新装载配置,并重新生成集群节点。
rs.reconfig(cfg)
//重新查看集群状态
rs.status()

也可以通过动态增删节点来配置仲裁节点

rs.addArb("8.131.93.105:37020")

二、分片集群

重要概念:分片键、Sharding Server、Config Server、Routing Server

目标:一台服务器上搭建伪集群

1、端口分配

角色
config-server170171701817019
sharding-server(shard1)370173701837019
sharding-server(shard2)470174701847019
routing-server27017

sharding-server和config-server都是通过mongod来启动,routing-server是mongos来启动

./bin/mongos -f route/route-27017.conf

2、配置并启动config-server

# 数据库文件位置
dbpath=config/config1
#日志文件位置
logpath=config/logs/config1.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork = true
bind_ip=0.0.0.0
port = 17017
# 表示是一个配置服务器
configsvr=true
#配置服务器副本集名称
replSet=configsvr

一次启动三个config节点

./bin/mongod -f con/config/config-17017.conf

配置config-server集群

/bin/mongo --port 17017
use admin
var cfg ={"_id":"configsvr",
"members":[
{"_id":1,"host":"8.131.93.105:17017"},
{"_id":2,"host":"8.131.93.105:17018"},
{"_id":3,"host":"8.131.93.105:17019"}]
};
rs.initiate(cfg)

3、配置shard-server集群

var cfg ={"_id":"shard1",
"protocolVersion" : 1,
"members":[
{"_id":1,"host":"8.131.93.105:37017"},
{"_id":2,"host":"8.131.93.105:37018"},
{"_id":3,"host":"8.131.93.105:37019"}
]
};
rs.initiate(cfg)
rs.status()

var cfg ={"_id":"shard2",
"protocolVersion" : 1,
"members":[
{"_id":1,"host":"8.131.93.105:47017"},
{"_id":2,"host":"8.131.93.105:47018"},
{"_id":3,"host":"8.131.93.105:47019"}
]
};
rs.initiate(cfg)
rs.status()

4、路由中添加分片节点route-27017.conf

port=27017
bind_ip=0.0.0.0
fork=true
logpath=route/logs/route.log
configdb=configsvr/8.131.93.105:17017,8.131.93.105:17018,8.131.93.105:1
7019

启动脚本

./bin/mongos -f route/route-27017.conf

路由中添加分片

./bin/mongo --port 27017
sh.status()
sh.addShard("shard1/8.131.93.105:37017,8.131.93.105:37018,8.131.93.105:37019");
sh.addShard("shard2/8.131.93.105:47017,8.131.93.105:47018,8.131.93.105:47019");
sh.status()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值