mongodb 3.0 版本分片部署步骤
# 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 版本分片部署步骤的更多相关文章
- Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...
- mongodb 3.2 分片部署步骤
#linux 网络优化1. 文件中/etc/sysctl.conf, 加入net.core.somaxconn = 2048fs.file-max = 2000000fs.nr_open = 2000 ...
- 七、Java多人博客系统-2.0版本-docker部署
docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...
- MongoDB 3.0 新特性【转】
本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...
- [译]MongoDB 3.0发布说明
原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...
- MongoDB 3.0新增特性一览
转自:http://blog.sina.com.cn/s/blog_48c95a190102vedr.html 引言 在历经版本号修改(2.8版本直接跳到3.0版本)和11个rc版本之后,MongoD ...
- mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍
mongoDB简介(本文由www.169it.com搜集整理) MongoDB是一个高性能,开源,无模式的文档型数据库,是目前在IT行业非常流行的一种非关系型数据库(NoSql).它在许多场景下可用于 ...
- mongodb集群+分片部署(二)
机器:10.165.38.68 10.165.38.72 部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu. ...
- Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...
随机推荐
- Circle(codevs 3134)
题目描述 Description 在一个圆上,有2*K个不同的结点,我们以这些点为端点,连K条线段,使得每个结点都恰好用一次.在满足这些线段将圆分成最少部分的前提下,请计算有多少种连线的方法 输入描述 ...
- SQL 查询45题
表格代码 create table student ( sno ) primary key, sname ) not null, ssex ) not null, sbirthday datetime ...
- Java Hour3
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为2 Hour,请各位不吝赐教. Hour3 包和i ...
- html5 (个人笔记)
妙味 html5 1.0 <!DOCTYPE html> <html> <head lang="en"> <meta charset=& ...
- jquery 展开折叠菜单
jquery 展开折叠菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <ht ...
- 从C# 到 OC
字符串 声明: C#: string name = “lwme.cnblogs.com”; Objective-C: NSString *name = @”lwme.cnblogs.com”; 字符串 ...
- OD hit跟踪 run跟踪使用问题
刚学习OD不久,现在使用HIT跟踪 run跟踪功能,在我的程序里碰到点问题,还请赐教 选了一部分代码添加到HIT跟踪,在选的代码处设置断点,程序运行到断点,按单步跟踪,当执行到第二个PUSH时,程序就 ...
- MATLAB信号与系统分析(四)——离散信号与系统的复频域分析及MATLAB实现
一.系统的z变换和反变换 1.利用部分分式展开求解逆Z变换: 2.例子 3.Z变换的MATLAB函数 clear all f=sym('cos(a*k)'); F=ztrans(f) F=sym('z ...
- 一条语句简单解决“每个Y的最新X”的SQL经典问题
"每个Y的最新X"是一个经典的SQL问题,工作中经常碰到.当然不是"按Y分组求最新的X值"那么简单,要求最新X的那条记录或主键ID.用一条SQL语句可以简单的解 ...
- 使用jQuery实现类似开关按钮的效果
转自:http://www.cnblogs.com/linjiqin/p/3148228.html 本案例实现类似开关按钮效果. 页面有下拉列表.文本框.按钮等表单元素,大致实现如下效果:1.页面一加 ...