在部门服务器搭建MongoDB分片集群,记录整个操作过程,朋友们也可以参考。

计划如下:

用5台机器搭建,IP分别为:192.168.58.5、192.168.58.6、192.168.58.8、192.168.58.9、192.168.58.10。分为两个分片,每个分片下有一个primary,一个secondary,一个仲裁。在其中三台启动config server和mongos。

shard1:58.5、58.6、58.10(仲裁)

shard2:58.8、58.9、58.10(仲裁)

config server:58.5、58.8、58.10

mongos:58.5、58.8、58.10

实施如下:

1、所有机器创建mongodb文件夹

mkdir -p /opt/mongodb

cd  /opt/mongodb

2、所有机器下载mongodb的安装程序包

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz

tar xvzf mongodb-linux-x86_64-2.4.8.tgz

3、分别在相应机器建立mongos 、config 、 shard1 、shard2目录

#58.5、58.8、58.10建立mongos目录
mkdir -p /opt/mongodb/mongos/log
#58.5、58.8、58.10建立config server 数据文件存放目录
mkdir -p /opt/mongodb/config/data
#58.5、58.8、58.10建立config server 日志文件存放目录
mkdir -p /opt/mongodb/config/log
#58.5、58.6、58.10建立shard1 数据文件存放目录
mkdir -p /opt/mongodb/shard1/data
#58.5、58.6、58.10建立shard1 日志文件存放目录
mkdir -p /opt/mongodb/shard1/log
#58.8、58.9、58.10建立shard2 数据文件存放目录
mkdir -p /opt/mongodb/shard2/data
#58.8、58.9、58.10建立shard2 日志文件存放目录
mkdir -p /opt/mongodb/shard2/log
 
4、规划组件对应的端口号,这个端口可以自由定义,在本文 mongos为 27017, config server 为 21000, shard1为 22001 , shard2为22002
 
5、58.5、58.8、58.10分别启动配置服务器
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --configsvr --dbpath /opt/mongodb/config/data --port 21000 --logpath /opt/mongodb/config/log/config.log --fork
 
6、58.5、58.8、58.10分别启动mongos服务器
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongos  --configdb 192.168.58.5:21000,192.168.58.8:21000,192.168.58.10:21000  --port 27017   --logpath  /opt/mongodb/mongos/log/mongos.log --fork
 
7、配置各个分片的副本集
#58.5、58.6、58.10分别设置分片1服务器及副本集shard1
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --shardsvr --replSet shard1 --port 22001 --dbpath /opt/mongodb/shard1/data  --logpath /opt/mongodb/shard1/log/shard1.log --fork
#58.8、58.9、58.10分别设置分片2服务器及副本集shard2
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --shardsvr --replSet shard2 --port 22002 --dbpath /opt/mongodb/shard2/data  --logpath /opt/mongodb/shard2/log/shard2.log --fork
 
8、分别对每个分片配置副本集

1)登陆192.168.58.5

#设置第一个分片副本集
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo  127.0.0.1:22001
#使用admin数据库
use admin
#定义副本集配置
config = { _id:"shard1", members:[
                     {_id:0,host:"192.168.58.5:22001"},
                     {_id:1,host:"192.168.58.6:22001"},
                     {_id:2,host:"192.168.58.10:22001",arbiterOnly:true}
                ]
         }
#初始化副本集配置
rs.initiate(config);
2)登陆192.168.58.8
#设置第二个分片副本集
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo  127.0.0.1:22002
#使用admin数据库
use admin
#定义副本集配置
config = { _id:"shard2", members:[
                     {_id:0,host:"192.168.58.8:22002"},
                     {_id:1,host:"192.168.58.9:22002"},
                     {_id:2,host:"192.168.58.10:22002",arbiterOnly:true}
                ]
         }
#初始化副本集配置
rs.initiate(config);
 
9、目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到 mongos 路由服务器并不能使用分片机制,还需要设置分片配置,让分片生效
登陆192.168.58.10
#连接到mongos
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo  127.0.0.1:27017
#使用admin数据库
use admin
#串联路由服务器与分配副本集1
db.runCommand( { addshard : "shard1/192.168.58.5:22001,192.168.58.6:22001,192.168.58.10:22001"});
#串联路由服务器与分配副本集2
db.runCommand( { addshard : "shard2/192.168.58.8:22002,192.168.58.9:22002,192.168.58.10:22002"});
#查看分片服务器的配置
db.runCommand( { listshards : 1 } );
 
10、完成

搭建MongoDB分片集群的更多相关文章

  1. Windows 搭建MongoDB分片集群(二)

    在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程 ...

  2. Windows 搭建MongoDB分片集群(一)

    一.角色说明 要构建一个MongoDB分片集群,需要三个角色: shard server  即存储实际数据得分片,每个shard 可以是一个Mongod实例,也可以是一组mongod实例构成得Repl ...

  3. MongoDB 分片集群实战

    背景 在如今的互联网环境下,海量数据已随处可见并且还在不断增长,对于如何存储处理海量数据,比较常见的方法有两种: 垂直扩展:通过增加单台服务器的配置,例如使用更强悍的 CPU.更大的内存.更大容量的磁 ...

  4. MongoDB分片集群原理、搭建及测试详解

    随着技术的发展,目前数据库系统对于海量数据的存储和高效访问海量数据要求越来越高,MongoDB分片机制就是为了解决海量数据的存储和高效海量数据访问而生. MongoDB分片集群由mongos路由进程( ...

  5. 网易云MongoDB分片集群(Sharding)服务已上线

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB sharding cluster(分片集群)是MongoDB提供的数据在线水平扩展方案,包括 ...

  6. 分布式文档存储数据库之MongoDB分片集群

    前文我们聊到了mongodb的副本集以及配置副本集,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13953598.html:今天我们来聊下mongodb的分片 ...

  7. mongodb分片集群

    第一章 1.mongodb 分片集群解释和目的 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础. 第二章 1. ...

  8. TiDB和MongoDB分片集群架构比较

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近阅读了TiDB源码的说明文档,跟MongoDB的分片集群做了下简单对比. 首先展示TiDB的整体架构 M ...

  9. CentOS7+Docker+MangoDB下部署简单的MongoDB分片集群

    简单的在Docker上快速部署MongoDB分片集群 前言 文中使用的环境如下 OS:CentOS Linux release 7.5.1804 (Core) Docker:Docker versio ...

随机推荐

  1. python学习笔记 操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  2. Linux 2.6内核Makefile浅析【转】

    转自:http://blog.csdn.net/tommy_wxie/article/details/7280463 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 概述 ...

  3. Oracle 11g 安装环境配置脚本

    #!/bin/bash #Test in RHEL 5.5 for 11g c=`cat /etc/shadow | grep oracle | wc -l`if [ $c != 0 ]then  w ...

  4. Android之BInder分析

      MediaService的诞生: nt main(int argc, char** argv) { //FT,就这么简单?? //获得一个ProcessState实例 sp<ProcessS ...

  5. 【 Linux 】Keepalived实现双主模型高可用集群

    要求:    1. 两台web服务器安装wordpress,数据库通过nfs共享    2. 使用keepalived实现双主模型 环境:    主机:        系统:CentOS6.7 x64 ...

  6. Vue cmd命令操作

    1.安装node(安装到电脑中,不同项目不需重复安装) 安装nodejs(如果不是在C:则需要配环境变量)2.打开cmd C:创建一个文件夹(名字不要用node) 1.进入该文件夹 2.node -v ...

  7. 一步步疑难解析 —— Python 异步编程构建博客

    声明:该项目学习资源主要来自廖雪峰的Python教程,参见 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6 ...

  8. python3生成测试数据,并写入ssdb

    import pyssdb import random import time c = pyssdb.Client() chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoP ...

  9. Python 进阶 之 函数对象

    Python的世界里,万物皆对象,函数当然也是: 首先要定义一个函数: def add(a,b): print a+b 其次定义一个字典来引用该函数: dic = {"add":a ...

  10. 记一次Laravel定时任务导致日志没有写入权限的坑

    问题:用laravel开发定时任务时,发生了日志没有写入权限导致项目打不开的问题 原因:linux的添加定时任务时默认是当前登录用户,我定时任务会生成日志 crontab: kernel: 生成日志的 ...