mongoDB安装
http://www.mongodb.org/downloads
拷文件到
# cp mongodb-linux-i686-2.4.1.tgz /usr/local/
进入目录:
# cd /usr/local/
解压:
# tar zxvf mongodb-linux-i686-2.4.1.tgz
改名:
# mv mongodb-linux-i686-2.4.1 mongodb
根目录
# cd
建文件夹:
# mkdir -p /data/mongodb/data_shard1 #创建数据存储目录
# mkdir -p /data/mongodb/data_shard2 #创建数据存储目录
# mkdir -p /data/mongodb/data_shard3 #创建数据存储目录
# mkdir -p /data/mongodb/log/ #创建日志存储目录
# mkdir -p /data/mongodb/config/ #创建配置存储目录

启动服务
/* /usr/local/mongodb/bin/mongod --dbpath=/data/mongodb/data --logpath=/data/mongodb/log/mongodb.log */

192.168.1.191
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18001 --replSet shard1 --dbpath /data/mongodb/data_shard1 --logpath /data/mongodb/log/mongod_shard1.log --logappend --maxConns 10000
# /usr/local/mongodb/bin/mongod --fork --configsvr --port 18005 --dbpath /data/mongodb/config/ --logpath /data/mongodb/log/config.log --rest
# /usr/local/mongodb/bin/mongos --configdb 192.168.1.191:18005,192.168.1.192:18005,192.168.1.193:18005 --fork --port 18000 --logpath /data/mongodb/log/mongos.log --chunkSize 256
连接此服务器
# /usr/local/mongodb/bin/mongo 192.168.1.191:18001
config = {_id: 'shard1', members: [ {_id: 0, host: '192.168.1.191:18001'}, {_id: 1, host: '192.168.1.194:18001'}, {_id: 2, host: '192.168.1.195:18001'}]}
rs.initiate(config)
rs.status()

192.168.1.192
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18002 --replSet shard2 --dbpath /data/mongodb/data_shard2 --logpath /data/mongodb/log/mongod.log --logappend --maxConns 10000
# /usr/local/mongodb/bin/mongod --fork --configsvr --port 18005 --dbpath /data/mongodb/config/ --logpath /data/mongodb/log/config.log --rest
# /usr/local/mongodb/bin/mongos --configdb 192.168.1.191:18005,192.168.1.192:18005,192.168.1.193:18005 --fork --port 18000 --logpath /data/mongodb/log/mongos.log --chunkSize 256
连接此服务器
# /usr/local/mongodb/bin/mongo 192.168.1.192:18002
config = {_id: 'shard2', members: [ {_id: 0, host: '192.168.1.192:18002'}, {_id: 1, host: '192.168.1.195:18002'}, {_id: 2, host: '192.168.1.196:18002'}]}
rs.initiate(config)
rs.status()

192.168.1.193
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18003 --replSet shard3 --dbpath /data/mongodb/data_shard3 --logpath /data/mongodb/log/mongod.log --logappend --maxConns 10000
# /usr/local/mongodb/bin/mongod --fork --configsvr --port 18005 --dbpath /data/mongodb/config/ --logpath /data/mongodb/log/config.log --rest
# /usr/local/mongodb/bin/mongos --configdb 192.168.1.191:18005,192.168.1.192:18005,192.168.1.193:18005 --fork --port 18000 --logpath /data/mongodb/log/mongos.log --chunkSize 256

连接一台此服务器
# /usr/local/mongodb/bin/mongo 192.168.1.193:18003
config = {_id: 'shard3', members: [{_id: 0, host: '192.168.1.193:18003'}, {_id: 1, host: '192.168.1.196:18003'} , {_id: 2, host: '192.168.1.194:18003'} ]}
rs.initiate(config)
rs.status()

192.168.1.194
分片1的复制集
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18001 --replSet shard1 --dbpath /data/mongodb/data_shard1 --logpath /data/mongodb/log/mongod_shard1.log --logappend --maxConns 10000
分片3的复制集
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18003 --replSet shard3 --dbpath /data/mongodb/data_shard3 --logpath /data/mongodb/log/mongod_shard3.log --logappend --maxConns 10000

192.168.1.195
分片2的复制集
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18002 --replSet shard2 --dbpath /data/mongodb/data_shard2 --logpath /data/mongodb/log/mongod_shard2.log --logappend --maxConns 10000
分片1的复制集
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18001 --replSet shard1 --dbpath /data/mongodb/data_shard1 --logpath /data/mongodb/log/mongod_shard1.log --logappend --maxConns 10000

192.168.1.196
分片3的复制集
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18003 --replSet shard3 --dbpath /data/mongodb/data_shard3 --logpath /data/mongodb/log/mongod_shard3.log --logappend --maxConns 10000
分片2的复制集
# /usr/local/mongodb/bin/mongod --fork --shardsvr --port 18002 --replSet shard2 --dbpath /data/mongodb/data_shard2 --logpath /data/mongodb/log/mongod_shard2.log --logappend --maxConns 10000

连接其中一台服务器的路由
# /usr/local/mongodb/bin/mongo 192.168.1.191:18000
mongos> use admin
mongos> db.adminCommand({addShard : "shard1/192.168.1.191:18001,192.168.1.194:18001,192.168.1.195:18001",maxsize:20480}) //增加分片,增加20G空间
mongos> db.adminCommand({addShard : "shard2/192.168.1.192:18002,192.168.1.195:18002,192.168.1.196:18002",maxsize:20480}) //增加分片,增加20G空间
mongos> db.adminCommand({addShard : "shard3/192.168.1.193:18003,192.168.1.196:18003,192.168.1.194:18003",maxsize:20480}) //增加分片,增加20G空间
mongos> db.adminCommand({listshards:1})
mongos> printShardingStatus()
添加测试库
mongos> db.runCommand({ enablesharding:"test" }) --设置分片存储的数据库
mongos> db.runCommand({ shardcollection: "test.users", key: { _id:1 }}) --设置分片的集合名称,且必须指定Shard Key,系统会自动创建索引
测试:
mongos> use test
mongos> for (var i = 1; i <= 500000; i++) db.users.insert({age:i, name:"chensuqian", addr:"Beijing", country:"China", job:"coder"})
mongos> db.users.stats()
mongos>

简单的参数说明:
–logpath 日志文件路径
–master 指定为主机器
–slave 指定为从机器
–source 指定主机器的IP地址
–pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
–logappend 日志文件末尾添加
–port 启用端口号
–fork 在后台运行
–only 指定只复制哪一个数据库
–slavedelay 指从复制检测的时间间隔
–auth 是否需要验证权限登录(用户名和密码)
–noauth 不需要验证权限登录(用户名和密码)

一共有4台机器,各自挂接一个存储,希望实现:
尽量节约存储高可用性存储大量数据
配置方案:
每一台机器做一个分片的主数据库每一台机器做一个分片的后备数据库每一台机器做一个分片的仲裁服务两个两个一组交叉作对方的后备有三台机器开配置服务有一台机器开路由服务(生产环境可以在每一台服务器上开路由服务,App服务器集群做负载均衡)
这样的话,任何一台服务器完全离线(或者交叉的两台服务器离线),都能保证整个系统正常运行。不过在服务器和服务器起来之后需要:
在升级成为主数据库的那个后备数据库上运行rs.StepDown(100)来让它让出主数据库的位置,因为每一个分片的活动数据库都应该由独立服务器担当,以获得最好的性能配置服务和后备数据库起来之后不需要做任何调整

http://www.linuxidc.com/Linux/2012-01/51011.htm
http://hi.baidu.com/noirwinter/item/248b27d7fe494852d63aaec5
http://blog.chinaunix.net/uid-26922865-id-3399138.html

http://www.cnblogs.com/cxd4321/archive/2012/05/18/2507777.html

MongoDB集群安装与配置2.4.3版本的更多相关文章

  1. Springboot 2.0.x 集成基于Centos7的Redis集群安装及配置

    Redis简介 Redis是一个基于C语言开发的开源(BSD许可),开源高性能的高级内存数据结构存储,用作数据库.缓存和消息代理.它支持数据结构,如 字符串.散列.列表.集合,带有范围查询的排序集,位 ...

  2. ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)

    ActiveMQ 高可用集群安装.配置(ZooKeeper + LevelDB) 1.ActiveMQ 集群部署规划: 环境: JDK7 版本:ActiveMQ 5.11.1 ZooKeeper 集群 ...

  3. MySQL集群安装与配置

    MySQL集群安装与配置   文章目录 [隐藏] 一.mysql集群安装 二.节点配置 三.首次启动节点 四.测试服务是否正常 五.安全关闭和重启 MySQL Cluster 是 MySQL 适合于分 ...

  4. mongodb集群安装及到现在遇到的一些问题

    集群搭建 只有3台服务器,开始搭建mongodb集群里主要参照的是http://www.lanceyan.com/tech/arch/mongodb_shard1.html,端口的设置也是mongos ...

  5. kafka集群安装与配置

    一.集群安装 1. Kafka下载: 可以从kafka官方网站(http://kafka.apache.org)上找到下载地址,再wgetwget http://mirrors.cnnic.cn/ap ...

  6. Hadoop 2.8集群安装及配置记录

    第一部分:环境配置(含操作系统.防火墙.SSH.JAVA安装等) Hadoop 2.8集群安装模拟环境为: 主机:Hostname:Hadoop-host,IP:10.10.11.225 节点1:Ho ...

  7. zookeeper 集群安装与配置

    Zookeeper安装和配置 准备工作 安装 JDK,此步略. 下载 zookeeper wget http://archive.apache.org/dist/zookeeper/zookeeper ...

  8. storm的集群安装与配置

    storm集群安装 机器:(storm及zookeeper都是这3台机器) 192.168.80.20 192.168.80.21 192.168.80.22 须要准备的软件有: zookeeper( ...

  9. hadoop2.7.7 分布式集群安装与配置

    环境准备 服务器四台: 系统信息 角色 hostname IP地址 Centos7.4 Mster hadoop-master-001 10.0.15.100 Centos7.4 Slave hado ...

随机推荐

  1. EF中执行Sql语句

    Entity Framework是微软出品的高级ORM框架,大多数.NET开发者对这个ORM框架应该不会陌生.本文主要罗列在.NET(ASP.NET/WINFORM)应用程序开发中使用Entity F ...

  2. 记录一个mybatis编写xml遇到的错误:java.lang.unsupportedOperationException

    写完xml里的sql在执行xml中的sql时报错,经过排查找到问题出在方法中的resultType这个属性的类型上 如图所示:只需要将sortedSet改为set集合里所存储的对象的类型即可. 这里我 ...

  3. axel---下载工具

    axel是Linux下一个不错的HTTP/ftp高速下载工具.支持多线程下载.断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件.适合网速不给力时多线程下载提高下载速度.比如在国内VP ...

  4. 使用Iperf调整网络

    使用Iperf调整网络     Iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,通过调谐各种参数可以测试TCP的最大带宽,并报告带宽.延迟,最大段和最大传输单元大小等统计信息.Ip ...

  5. Android ViewPager嵌套ViewPager滑动冲突处理方法

    dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发, 然后决定是自身消费当前事件还是继续往下分发给子控件处理.返回true表示不继续分发,事件没 ...

  6. NET Framework 4.5 有更加简便的方法 Task.Run()

    NET Framework 4.5 有更加简便的方法 Task.Run()

  7. InstallShield详细制作说明(四)

    十.编译打包

  8. C++访问WebService gSoap方式

    一.             gSOAP访问WebService 1.      下载gSOAP gSOAP 2.7.17 版下载地址http://sourceforge.net/projects/g ...

  9. [JWT] JWT Signature With RS256 - Learn The Advantages Compared to HS256

    The advantage of RS256 over HS256 is RS256 no longer need to share the secret key between client and ...

  10. datetime小练习

    题目: 1.计算你的生日比如近30年来(1990-2019),每年的生日是星期几,统计一下星期几出现的次数比较多2,生日提醒,距离生日还有几天 # !/usr/bin/env python # -*- ...