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 ...
随机推荐
- Hadoop学习:
文件名称 格式 描述 hadoop-env.sh BaSh 脚本 记 录 脚 本 要 用 的 环 境 变 , 以 运 行Hadoop core-site.xml HadooP配XML Hadoop C ...
- opencv学习笔记(五)镜像对称
opencv学习笔记(五)镜像对称 设图像的宽度为width,长度为height.(x,y)为变换后的坐标,(x0,y0)为原图像的坐标. 水平镜像变换: 代码实现: #include <ios ...
- .net学习笔记---HttpResponse类
HttpReponse是服务器接收到浏览器的请求后,处理返回结果常用的一个类. 一.属性 Buffer 获取或设置一个值,该值指示是否缓冲输出并在处理完整个响应之后发送它. BufferOutpu ...
- c# 作业2
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 复制表结构和数据SQL语句
select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名 以上两句都是将 源表 的数据插入到 目 ...
- 虚拟机下运行linux通过nat模式与主机通信、与外网连接
首先:打开虚拟机的编辑菜单下的虚拟网络编辑器,选中VMnet8 NAT模式.通过NAT设置获取网关IP,通过DHCP获取可配置的IP区间.同时,将虚拟机的虚拟机菜单的设置选项中的网络适配器改为NAT模 ...
- Servlet跳转方式
servlet之间的跳转,有两种方式: 1.redirect方式,是新的请求,数据不相同 2.forward方式是同一个请求,数据相同
- JAVA项目JDK版本修改
1.添加JDK window-----> preferences 2.设置默认JDK版本 3.在项目上右键------>Properties
- ember.js:使用笔记9 开始单元测试
单元测试被限定在一个范围内,并且不需要Ember应用运行. 使用前准备: 加入Ember-QUnit:获取一系列测试助手帮助单元测试:加入 mian.js; 加入根元素(与集成测试的时候一样):App ...
- List.Sort以及快速排序ZZ
经常看到有人因为使用.net中的集合类处理海量数据时性能不够理想,就武断的得出.net不行,c#也不行这样的结论.对于.net framework这样的类库来说,除了性能以外,通用性和安全性同样重要, ...