mongodb replica set + shard 安装

概览 - 机器

三台mongo数据节点机器(默认端口27107,这里一台机器存了多份,故新起端口):

10.13.2.51:10001/10002/10003

10.13.2.52:10001/10002/10003

10.13.2.151:10001/10002/10003

一台mongos机器:

10.13.2.112:27107

三台config机器:

10.13.2.91:27109

10.13.2.92:27109

10.13.2.102:27109

架构:

数据分散在3台机器上,既有3个shard,而每个shard又有复制集(简单理解,主备)的配置,即是下面这样

shard1/10.13.2.151:10001,10.13.2.51:10001,10.13.2.52:10001

shard2/10.13.2.151:10002,10.13.2.51:10002,10.13.2.52:10002

shard3/10.13.2.151:10003,10.13.2.51:10003,10.13.2.52:10003

前提工作:

useradd mongodb # 建议用mongodb用户
echo never > /sys/kernel/mm/transparent_hugepage/enabled  #mongodb建议为never
echo never > /sys/kernel/mm/transparent_hugepage/defrag   #mongodb建议为never
关闭防火墙

创建第一个replica set

1. 三台数据节点 分别执行

1. mkdir log db db/shard1 db/shard2 db/shard3 # 创建必要的文件夹
2. bin/mongod --dbpath /home/data/mongodb/db/shard1 --port 10001 --replSet shard1 --logpath log/mongodb1.log --logappend --fork # 后台启动mongodb服务

2.连接到mongo配置replica set

1. bin/mongo 10.13.2.151:10001
2. config = {_id:"shard1", members: [  
    {_id: 0, host:"10.13.2.151:10001"},  
    {_id: 1, host:"10.13.2.51:10001"},
    {_id: 2, host:"10.13.2.52:10001"}  
    ]  
}; 
3. rs.initiate(config)

config机器部署

1. 三台config机器上分别执行

1. mkdir log configdb
2. bin/mongod --configsvr --dbpath /home/data/mongodb/configdb --logpath log/mongodb.log --logappend --fork

mongos机器部署

1. mongos机器上执行

1. mkdir log
2. bin/mongos --configdb 10.13.2.91:27019,10.13.2.92:27019,10.13.2.102:27019 --logpath log/mongodb.log --logappend --fork

往集群添加第一个shard

1. 连接mongos,加入shard1

1. bin/mongo 10.13.2.112:27017/admin
2. sh.addShard( "shard1/10.13.2.151:10001,10.13.2.51:10001,10.13.2.52:10001" )

添加第二个shard

首先创建shard2,同上“创建第一个replica set”

1. 三台数据节点 分别执行

1. bin/mongod --dbpath /home/data/mongodb/db/shard2 --port 10002 --replSet shard2 --logpath log/mongodb2.log --logappend --fork # 后台启动mongodb服务

2.连接到mongo配置replica set

1. bin/mongo 10.13.2.151:10002
2. config = {_id:"shard2", members: [  
    {_id: 0, host:"10.13.2.151:10002"},  
    {_id: 1, host:"10.13.2.51:10002"},
    {_id: 2, host:"10.13.2.52:10002"}  
    ]  
}; 
3. rs.initiate(config)

创建完后添加shard2

1. bin/mongo 10.13.2.112:27017/admin
2. sh.addShard( "shard2/10.13.2.151:10002,10.13.2.51:10002,10.13.2.52:10002" )

添加第三个shard

首先创建shard3,同上“创建第一个replica set”

1. 三台数据节点 分别执行

1. bin/mongod --dbpath /home/data/mongodb/db/shard3 --port 10003 --replSet shard3 --logpath log/mongodb3.log --logappend --fork # 后台启动mongodb服务

2.连接到mongo配置replica set

1. bin/mongo 10.13.2.151:10003
2. config = {_id:"shard2", members: [  
    {_id: 0, host:"10.13.2.151:10003"},  
    {_id: 1, host:"10.13.2.51:10003"},
    {_id: 2, host:"10.13.2.52:10003"}  
    ]  
}; 
3. rs.initiate(config)

创建完后添加shard3

1. bin/mongo 10.13.2.112:27017/admin
2. sh.addShard( "shard3/10.13.2.151:10003,10.13.2.51:10003,10.13.2.52:10003" )

以上配置完了,但还需要开启数据库和表的分片

下面以test为例

1. 连接mongos

bin/mongo 10.13.2.112:27017/admin

2.  开启数据库分片

sh.enableSharding( "test" )

3. 创建片键 - (此处片键很重要,关于数据如何分片,一般都是取本身_id作为片键,业务相关根据业务自己组合片键)

1. use test
2. db.test_collection.createIndex( { number : 1 } ) # 这里以test_collection表里的number为片键

4. 开启数据库下面的表分片

1. use test
2. sh.shardCollection( "test.test_collection", { "number" : 1 } )

5. 查看分片状态,数据平衡的情况

1. use test
2. db.stats()
3. db.printShardingStatus()

over!

时间: 2024-08-02 11:30:03

mongodb replica set + shard 安装的相关文章

linux mongodb replica set集群安装

RS集群中mongod的安装和单机一样,只是配置文件略有不同, 单机安装路径linux 下mongodb 3.2.5安装 下面是rs集群的配置文件: systemLog:destination: filepath: /home/mongodb/log1/mongod.log    ##log的路径logAppend: truestorage:journal:enabled: truedbPath: /home/mongodb/data                 ##数据的路径directo

第五部分 架构篇 第十四章 MongoDB Replica Sets 架构(自动故障转移/读写分离实践)

说明:该篇内容部分来自红丸编写的MongoDB实战文章. 1.简介 MongoDB支持在多个机器中通过异步复制达到故障转移和实现冗余,多机器中同一时刻只有一台是用于写操作,正是由于这个情况,为了MongoDB提供了数据一致性的保障,担当primary角色的服务能把读操作分发给Slave(详情请看前两篇关于Replica Set成员组成和理解). MongoDB高可用分为两种: Master-Slave主从复制:只需要在某一个服务启动时加上-master参数,而另外一个服务加上-slave与-so

MongoDB 的获取和安装

MongoDB的获取和安装 1. MongoDB的获取和安装 (1)获取地址 http://www.mongodb.org/downloads 根据自己需要选择相应的版本,linux下可以使用wget 命令. (2)解压 mongodb-win32-i386-1.8.1 (3)创建数据存放文件夹,mongodb默认的数据目录 /data/db C:/> mkdir /data C:/> mkdir /data/db (4)运行 MongoDB mongod.exe - 数据库的服务器端,相当于

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

PHP学习之-Mongodb在Windows下安装及配置

Mongodb在Windows下安装及配置 1.下载 下载地址:http://www.mongodb.org/ 建议下载zip版本. 2.安装 下载windows版本安装就和普通的软件一样,直接下一步就可以了. 3.启动服务 启动服务之前先创建存放数据库文件的文件夹然后再启动服务. #创建一个MongoDB服务mongod --logpath "D:\development\db\mongodb-win32-x86_64-2008plus-2.6.7\data\log\mongodb.log&q

MongoDB学习笔记一:MongoDB的下载和安装

趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库.将自己今天学习到的写成博客分享给大家. 一.MongoDB的下载和安装 MongoDB的下载地址为:http://www.mongodb.org/ 1.进入官网的首页后,在首页的右上方单击Downloads连接,如图所示: 2.在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单

MongoDB Replica Set搭建集群

MongoDB做集群,版本3.2官网推荐的集群方式Replica Set 准备服务器3台 两个standard节点(这两个节点直接可以互切primary secondary). 一个arbiter节点,它手中握着一张选票,决定上面两个standard节点中的哪一个可以成为primay. 机器名称和预承担的角色如下: test39 primary test41 secondary test42 arbiter 介绍一下涉及到的参数 --dbpath   数据文件路径 --logpath  日志文件

mongodb replica set 添加/删除节点方法--http://www.ii123.com/jc/bc/bczh/258948.html

replica set多服务器主从,添加,删除节点,肯定会经常遇到的.下面详细说明一下,添加,删除节点的2种方法. 一,利用rs.reconfig,来添加,删除节点 1,添加节点  代码如下   repmore:PRIMARY> config = {_id:"repmore",members:[{_id:0,host:'127.0.0.1:27017',priority :2},{_id:1,host:'127.0.0.1:27018',priority:1}]};   //添加

mongodb 3.2.5安装过程详细记录

2016-10-19    mongodb 3.2.5安装 1 准备安装介质 安装介质下载: mongodb的安装方式,我通常使用二进制包的方式,内网不能配置连接外网的yum源: 官方建议的mongodb下载地址为:   Downloads.mongodb.org 但实际上,这个地址,很难找到下载表,正常下载,通常可以用下面的下载地址选择下载: 我这里下载的是: 3.2.5 版本对应的 mongodb-linux-x86_64-rhel62-3.2.5-20-g07e21d8.tgz 如果将整个