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 ...
随机推荐
- 【2016-07-11】Qt远程部署失败,提示"没有那个文件或目录"的解决方法
首先明确一下,这里的部署失败与网络连接.ssh/scp/sftp等无关. 一般出现在删除了远端上的可执行文件,而本地程序未做明显改动时远程部署执行的时候. Qt应用程序输出中的提示信息如下: 究其原因 ...
- tcp连接管理
[root@ok etc]# cat /proc/sys/net/core/netdev_max_backlog 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目 ...
- hdu 1286:找新朋友(数论,欧拉函数)
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- ytu 1937:查找最大元素(水题)
查找最大元素 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 51 Solved: 23[Submit][Status][Web Board] Descr ...
- hdu 1018:Big Number(水题)
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- Xamarin.Android开发实践(十八)
Xamarin.Android之SlidingMenu 一.前言 有位网友在评论中希望能够出个在Xamarin.Android下实现SlidingMenu效果的随笔,刚好昨天在观看官网示例项目的时候也 ...
- hdu 4289 最大流拆点
大致题意: 给出一个又n个点,m条边组成的无向图.给出两个点s,t.对于图中的每个点,去掉这个点都需要一定的花费.求至少多少花费才能使得s和t之间不连通. 大致思路: 最基础的拆点最大 ...
- Ninja - chromium核心构建工具
转自:http://guiquanz.me/2014/07/28/a_intro_to_Ninja/ Ninja - chromium核心构建工具Jul 28, 2014 [在线编辑] 缘由 经过上次 ...
- Ubuntu 登录命令和赋值命令
一. Ubuntu 设定root权限 进入 Terminal,输入命令su 如果没有给su赋root权限,则输入 sudo passwd root 赋值输入密码. 截图如下 二.以root身份进入l ...
- windows脚本定时执行
linux下可以直接用cron定时任务,window下可以使用schtasks 命令代替. 第一次在win7 cmd输入: schtasks 如果出现错误:“错误:无法加载列表资源” 的问题原因很简单 ...