# linux 网络优化

1. 文件中/etc/sysctl.conf, 加入
net.core.somaxconn = 2048
fs.file-max = 2000000
fs.nr_open = 2000000
net.ipv4.ip_local_port_range = 1024 65535

2. 文件/etc/security/limits.conf中加入:
* hard nofile 1000000
* soft nofile 1000000

* hard nproc 1000000
* hard nproc 1000000

3. mongo部分的优化
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# disable senux
/etc/selinux/config
SELINUX=disabled

# 防火墙部分, 暂时停止firewalld
firewall:
systemctl start firewalld.service #启动firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

# mongodb 安装
如果是解压安装, 默认放到 /tools
1. 解压到
/root/tools/mongodb
cd /
ln -s /root/tools

2. 加入PATH
vim /etc/profile
export PATH=$PATH:/tools/mongodb/bin

对于rpm包, 运行下面命令
rpm -ivh *.rpm

# 配置mongodb
mkdir /data/mongodb
cd /data/mongodb
mkdir db log

常见配置文件, 并启动
mongod --config configdb.conf


=====================================
https://docs.mongodb.org/v3.0/tutorial/deploy-shard-cluster/

# 配置说明
234机器上:
shard0 192.168.1.60:27017
shard1 192.168.1.63:27017


configsrv需要三个:
configsrv 192.168.1.60:30001 /data/mongodb/cfgsrv1
configsrv 192.168.1.63:30001 /data/mongodb/cfgsrv1
configsrv 192.168.1.234:30001 /data/mongodb/cfgsrv1

# 配置 configserver
1. 文件配置的例子
sharding:
clusterRole: configsvr
net:
port: <port>
storage:
dbpath: <path>

2. 启动
mongod --config configsrv1.conf &
mongod --config configsrv2.conf &
mongod --config configsrv3.conf &
非文件方式
mongod --configsvr --replSet configReplSet --port <port> --dbpath <path>

# start mongos
//mongos --configdb configReplSet/192.168.1.55:30001,192.168.1.234:30001 --port 37017&
mongos --configdb 192.168.1.63:30001,192.168.1.63:30002,192.168.1.63:30003 --port 37017 --logappend --logpath /data/mongodb/log/route.log&
mongos --configdb 192.168.1.234:30001 --port 37017 --logappend --logpath /data/mongodb/log/route.log&

# connect to mongos
mongo --host 192.168.1.234 --port 37017

# add sharding
1. 建立实例
mkdir db2 db3
修改对应的配置文件
Note: 这个地方需要设置最大内存
ulimit -v 10000000 修改最大虚拟地址空间为10G
--wiredTigerCacheSizeGB 5

2. 加入分片
// sh.addShard( "rs1/192.168.1.234:27018" ) // add a shard for a replica set named rs1
sh.addShard( "192.168.1.63:27017" )
sh.addShard( "192.168.1.60:27017" )

3. 激活分片
sh.enableSharding("<database>") // db.runCommand( { enableSharding: <database> } )
sh.enableSharding("mydb")

4. 查看状态
sh.status()

5. 删除分片
db.runCommand( { removeshard: "shard0000" } )

#########################
插入前的准备
sh.enableSharding("<database>") // db.runCommand( { enableSharding: <database> } )

1. 建立索引
use gwgps
db.location.ensureIndex({"hostid":1})
db.location.ensureIndex({"posTime":1})
db.location.createIndex( { loc : "2dsphere" } )
db.location.getIndexes()

2. 开启分片
sh.enableSharding("gwgps")
sh.shardCollection("gwgps.location", { "hostid": 1})

sh.stopBalancer()
sh.getBalancerState()

3. AddTag
sh.addShardTag("shard0000", "TAG0")
sh.addShardTag("shard0001", "TAG1")

sh.addTagRange("gwgps.location", { hostid: "0000000" }, { hostid: "3100000" }, "TAG0")
sh.addTagRange("gwgps.location", { hostid: "3100000" }, { hostid: "9100000" }, "TAG1")

一些其他操作
sh.removeShardTag("shard0001", "TAG1")

4. add trunck
for ( var x=3000; x<3500; x++ ){
var prefix = String(x*1000);
sh.splitAt( "gwgps.location", { "hostid":prefix } )
}

##########################
加入两个分片操作
sh.addShard( "192.168.1.61:27017" )
sh.addShard( "192.168.1.62:27017" )

sh.addShardTag("shard0002", "TAG2")
sh.addShardTag("shard0003", "TAG3")

sh.removeTagRange( "gwgps.location", { hostid: "3100000" }, { hostid: "9100000" }, "TAG1")
sh.addTagRange("gwgps.location", { hostid: "3100000" }, { hostid: "3200000" }, "TAG1")
sh.addTagRange("gwgps.location", { hostid: "3200000" }, { hostid: "3300000" }, "TAG2")
sh.addTagRange("gwgps.location", { hostid: "3300000" }, { hostid: "9100000" }, "TAG3")

for ( var x=3300; x<3900; x++ ){
var prefix = String(x*1000);
sh.splitAt( "gwgps.location", { "hostid":prefix } )
}

===========================
234:
mkdir /data/mongodb/cfgsrv1
mkdir /data/mongodb/log
mongod --config /tools/percona-mongodb/conf/configsrv1.conf &
mongos --configdb 192.168.1.234:30001 --port 37017 --logappend --logpath /data/mongodb/log/route.log&

60-63:
/data/mongodb-perco/db
/data/mongodb-perco/log
mongod --config /tools/percona-mongodb/conf/mongod.conf &

sh.addShard( "192.168.1.60:27017" )
sh.addShard( "192.168.1.61:27017" )
sh.addShard( "192.168.1.62:27017" )
sh.addShard( "192.168.1.63:27017" )

sh.addShardTag("shard0000", "TAG0")
sh.addShardTag("shard0001", "TAG1")
sh.addShardTag("shard0002", "TAG2")
sh.addShardTag("shard0003", "TAG3")

db.runCommand({movePrimary:"gwgps",to:"shard0000"})

sh.addTagRange("gwgps.location", { hostid: "0000000" }, { hostid: "3100000" }, "TAG0")
sh.addTagRange("gwgps.location", { hostid: "3100000" }, { hostid: "3200000" }, "TAG1")
sh.addTagRange("gwgps.location", { hostid: "3200000" }, { hostid: "3400000" }, "TAG2")
--sh.addTagRange("gwgps.location", { hostid: "3300000" }, { hostid: "9100000" }, "TAG3")

手动建立空的chunk
for ( var x=300; x<340; x++ ){
var prefix = String(x*10000);
sh.splitAt( "gwgps.location", { "hostid":prefix } )
}

==shard0000
for ( var x=300; x<310; x++ ){
var prefix = String(x*10000);
sh.moveChunk( "gwgps.location", { "hostid":prefix }, "shard0000" )
}

==shard0001 310 - 320
for ( var x=310; x<320; x++ ){
var prefix = String(x*10000);
sh.moveChunk( "gwgps.location", { "hostid":prefix }, "shard0001" )
}

==shard0002 320 - 340
for ( var x=320; x<340; x++ ){
var prefix = String(x*10000);
sh.moveChunk( "gwgps.location", { "hostid":prefix }, "shard0002" )
}

索引建立
use gwgps
db.location.ensureIndex({"hostid":1})
db.location.ensureIndex({"hostno":1})
db.location.ensureIndex({"posTime":1})
db.location.ensureIndex( { "loc" : "2dsphere" } )
db.location.ensureIndex({"hostno":1,"posTime":1})
db.location.ensureIndex({"hostno":1,"posTime":1, "loc" : "2dsphere"})

db.location.getIndexes()

mongodb 3.0 版本分片部署步骤的更多相关文章

  1. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...

  2. mongodb 3.2 分片部署步骤

    #linux 网络优化1. 文件中/etc/sysctl.conf, 加入net.core.somaxconn = 2048fs.file-max = 2000000fs.nr_open = 2000 ...

  3. 七、Java多人博客系统-2.0版本-docker部署

    docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...

  4. MongoDB 3.0 新特性【转】

    本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...

  5. [译]MongoDB 3.0发布说明

    原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...

  6. MongoDB 3.0新增特性一览

    转自:http://blog.sina.com.cn/s/blog_48c95a190102vedr.html 引言 在历经版本号修改(2.8版本直接跳到3.0版本)和11个rc版本之后,MongoD ...

  7. mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍

    mongoDB简介(本文由www.169it.com搜集整理) MongoDB是一个高性能,开源,无模式的文档型数据库,是目前在IT行业非常流行的一种非关系型数据库(NoSql).它在许多场景下可用于 ...

  8. mongodb集群+分片部署(二)

    机器:10.165.38.68    10.165.38.72 部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu. ...

  9. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

随机推荐

  1. Oracle错误代码大全

    Oracle错误代码大全——最新.最全的Oracle错误代码 对快速查找oracle数据库错误原因很有帮助 ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ...

  2. opencv学习笔记(四)投影

    opencv学习笔记(四)投影 任选了一张图片用于测试,图片如下所示: #include <cv.h> #include <highgui.h> using namespace ...

  3. Man简单介绍

    转自:http://os.51cto.com/art/201312/425525.htm Linux系统提供了相对比较丰富的帮助手册(man),man是manual的缩写,在日常linux系统管理中经 ...

  4. OpenStack Keystone安装部署流程

    之前介绍了OpenStack Swift的安装部署,采用的都是tempauth认证模式,今天就来介绍一个新的组件,名为Keystone. 1. 简介 本文将详细描述Keystone的安装部署流程,并给 ...

  5. ServletContext与ServletConfig的详解及区别

    转自http://hi.baidu.com/huaxuelili/item/1704a03dbb5cd7f22784f4c6 一.ServletContext详解ServletContext是serv ...

  6. SQLServer2008 绑定默认值

    默认值或绑定:(newid())值:2E014A19-7AF5-471E-866C-DC5D6DFE59A5 (dateadd(day,(1),getdate()))值: 2014-07-31 20: ...

  7. POJ 3461 Oulipo KMP

    题意:统计其中一个子串的出现次数 题解:即KMP算法中j==m的次数 //作者:1085422276 #include <cstdio> #include <cmath> #i ...

  8. cocos2dx学习笔记——demo学习(一)——ActionTest

    在此我会将一步步看到的小白我认为疑难和重点记下,并自解,若是在无法解答,便以红色标记出来,希望各位大神帮忙解惑. 一.onEnter()还有OnExit()是什么 因为小白在使用cocos2dx这款的 ...

  9. kali 安装火狐

    转自:http://www.kali.org.cn/thread-21271-1-1.html 安装火狐浏览器 打开终端 第一步:apt-get remove iceweasel 第二步: echo ...

  10. JVM的粗略简述

    什么是Java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体架构,如处理器.堆栈.寄存器等,还具有相应的指令系统.JVM屏蔽了与 ...