mongodb 3.4分片复制集配置

1:启动三个实例

mongod -f /home/mongodb/db27017/mongodb27017.conf
mongod -f /home/mongodb/db27018/mongodb27018.conf
mongod -f /home/mongodb/db27019/mongodb27019.conf

配置文件如下:

verbose = true #日志信息
vvvv = true #日志的级别
logpath=/home/mongodb/db27019/log/mongodb.log #日志文件
logappend=true #设置文件记录格式TRUE为追加,false为覆盖p
port = 27019 #指定端口号
maxConns = 2000 #最大链接数,默认情况是根据系统限制最大不超过2W
pidfilepath =/home/mongodb/db27019/tmp/mongo.pid #进程ID,没有指定则启动时候就没有PID文件
nounixsocket = false #当设置为true时,不会生成socket文件
unixSocketPrefix =/home/mongodb/db27019/tmp #套接字文件路径,默认/tmp
fork = true #后台运行的守护进程模式
dbpath=/home/mongodb/db27019/data #数据存放目录
noprealloc = false #预分配方式来保证写入性能,true会带来性能下降
nssize = 16 #命名空间默认大小16M,最大2G
#慢日志
profile = 1 #0 关。无分析1仅包括慢操作2包括所有操作。
slowms = 200 #大于200ms的日志将会被记录下来
replSet=sharingmxq
configsvr=true

2:进入一台机器进行初始化:

mongo
use admin
rs.initiate(
{
_id: "sharingmxq",
configsvr: true,
members: [
{ _id : 0, host : "localhost:27017" },
{ _id : 1, host : "localhost:27018" },
{ _id : 2, host : "localhost:27019" }
]
}
)

3:创建分片的复制集

[[email protected] mongodb]# mkdir -p /home/mongodb/db37017/data
[[email protected] mongodb]# mkdir -p /home/mongodb/db37017/tmp
[[email protected] mongodb]# mkdir -p /home/mongodb/db37017/log
[[email protected] mongodb]# mkdir -p /home/mongodb/db37017/key
[[email protected] mongodb]# mkdir -p /home/mongodb/db37018/data
[[email protected] mongodb]# mkdir -p /home/mongodb/db37018/tmp
[[email protected] mongodb]# mkdir -p /home/mongodb/db37018/log
[[email protected] mongodb]# mkdir -p /home/mongodb/db37018/key
[[email protected] mongodb]# mkdir -p /home/mongodb/db37019/key
[[email protected] mongodb]# mkdir -p /home/mongodb/db37019/log
[[email protected] mongodb]# mkdir -p /home/mongodb/db37019/tmp
[[email protected] mongodb]# mkdir -p /home/mongodb/db37019/data

启动:

mongod -f /home/mongodb/db37017/mongodb37017.conf
mongod -f /home/mongodb/db37018/mongodb37018.conf
mongod -f /home/mongodb/db37019/mongodb37019.conf

要注意一点,如果是添加分片复制集的话。每一个分片要指定不同的replSet,然后进行初始化。把一个复制集当成是每一个单机节点就好了,但是添加分片的时候必须指定的是master

4:启动一个mongos实例链接配置mongodb数据库

mongos --configdb "sharingmxq"/localhost:27017,localhost:27018,localhost:27019 --port=30000

然后添加分片节点:

use admin
mongos> sh.addShard(‘localhost:37017‘)
{ "shardAdded" : "shard0000", "ok" : 1 }
mongos> sh.addShard(‘localhost:37018‘)
{ "shardAdded" : "shard0001", "ok" : 1 }
mongos> sh.addShard(‘localhost:37019‘)
{ "shardAdded" : "shard0002", "ok" : 1 }

如果三个分片节点使用的是复制集的话就要用以下的方式添加:

mongos> sh.addShard( "sharingmxq/localhost:37017")
{ "shardAdded" : "sharingmxq", "ok" : 1 }
mongos> sh.addShard( "sharingmxq/localhost:37018")
{ "shardAdded" : "sharingmxq", "ok" : 1 }
mongos> sh.addShard( "sharingmxq/localhost:37019")
{ "shardAdded" : "sharingmxq", "ok" : 1 }

5:分片的配置

mongos --port=30000

为某个数据库启动分片

sh.enableSharding("maxiangqian")

为某张表添加分片:

sh.shardCollection("maxiangqian.maxiangqian", { ‘id‘:1} )
sh.shardCollection(‘aedata.ac01_test‘,{‘id‘:1,‘idcard‘:1})

6:验证分片是否完成

mongos --port=30000
use maxiangqian
for (var i = 1; i <= 100000; i++) db.maxiangqian.save({id:i,"test1":"testval1"});

登录各个分片服务器进行验证:

99981

1

18

已经完成了分片。但是为什么分布会不均匀呢,因为我们使用的是hash分区,再插入他个九十万看一下。(要区别hash分区和range分区,hash分区具有易扩展性,但是分布的服务器却不好控制)

for (var i = 100000; i <= 1000000; i++) db.maxiangqian.save({id:i,"test1":"testval1"});

再去验证一下:

328487 --port=37019

335552 --port=37018

335962 --port=37017

时间: 2024-10-12 08:14:24

mongodb 3.4分片复制集配置的相关文章

mongodb复制集配置步骤

mongodb复制集配置步骤 2012-11-09 14:10:24|  分类: mongodb|举报|字号 订阅 复制升级版的主从复制,它实现了故障自动转移功能,同时从节点支持读 一,节点类型: a)    主节点:支持读写 b)    从节点:支持读(需设置) c)    仲裁节点:参与投票同时也支持读(需设置) 二,实验 主节点:192.168.129.47 从节点:192.168.129.48 仲裁节点:192.168.129.49 1.主节点配置如下: vi  /etc/rc.loca

mongodb 分片+复制集

mongodb版本:3.0.4 准备: 1.校验服务器的时间,3台同步 2.关闭防火墙 3.关闭selinux Sharding+Replica Sets 主机 IP 服务及端口 Server A 192.168.31.231 mongod shard1_1:27017 mongod shard2_1:27018 mongod config1:20000 mongs1:30000 Server B 192.168.31.232 mongod shard1_2:27017 mongod shard

spring mongodb 复制集配置(实现读写分离)

注:mongodb当前版本是3.4.3 spring连接mongodb复制集的字符串格式: mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] mongodb:// 前缀,代表这是一个Connection String username:[email protected] 如果启用了用户认证,需要指定用户密码 hostX:por

Mongodb复制集配置

环境: 192.168.99.129 master192.168.99.130 slave1 1.配置复制集 在两台服务器上分别执行 mongod --replSet "rs0" 执行mongo命令,先添加一台 rs.initiate( { _id : "rs0", members: [ { _id : 0, host : "master:27017" } ] }) 再添加另外一台 rs.add("slave1") 执行rs.

mongodb的复制集配置

什么是mongodb副本集: mongodb副本集是一组mongodb服务器组成的一个副本集群.集群中包含一个Primary主服务器以及若干个Secondary备份服务器或者Artiber选举服务器.Secondary会向Primary服务器同步数据,实现集群内服务器的数据备份.当Primary宕机或无法提供服务时,集群会再次选举一个新的Primary服务器,以保证服务的正常,以及数据的安全. 配置副本集:    配置环境: Server1 : 192.168.189.129:5555 Serv

MongoDB3.6分片复制集群

概念 mongos 数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把对应的数据请求请求转发到对应的shard服务器上.在生产环境通常有多mongos作为请求的入口,防止其中一个挂掉所有的mongodb请求都没有办法操作. config server 顾名思义为配置服务器,存储所有数据库元信息(路由.分片)的配置.mongos本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储

Mongodb 4.2版本副本集配置

常见的复制集 线上环境常见的架构为副本集,可以理解为一主多从. 下图:1主2从 下图:一主一从一仲裁 服务器信息: 三台机器一样配置2核16G内存 存储盘100G "host" : "10.1.1.159:27020""host" : "10.1.1.77:27020""host" : "10.1.1.178:27020 1.我们在其中一台机器配置: [[email protected] ~]#

MongoDB 主从架构和复制集架构

主从架构: mongodb支持传统的master-slave架构.master节点负责数据的读写,slave没有写入权限.没有自动故障转移功能,需要指定master和slave端,不推荐在生产中使用. 主从架构的配置 环境:CentOS6.5 MongoDB3.4 master配置文件 master.conf dbpath=/data/mongo/master logpath=/var/log/mongo/master/mongodb.log port=27017 bind_ip=127.0.0

MongoDB之分片集群与复制集

分片集群 1.1.概念 分片集群是将数据存储在多台机器上的操作,主要由查询路由mongos.分片.配置服务器组成. ●查询路由根据配置服务器上的元数据将请求分发到相应的分片上,本身不存储集群的元数据,只是缓存在内存中. ●分片用来存储数据块.数据集根据分片键将集合分割为数据块,存储在不同的分片上.在生产环境下,通常一个分片由一个复制集组成. ●配置服务器存储集群的元数据,包括数据与分片的映射关系,配置服务器一旦挂掉,集群将无法工作. 注意: ●当mongos重启时,会从配置服务器读取元数据更新自