MongoDB分片

Wesley13
• 阅读 425

分片
mongos把分片的mongod管理起来
何时分片
单个节点磁盘不足
单个mongod不能满足写数据的性能要求
将大量数据放到内存中提高性能
什么是片键
选择递增(分布不均匀,查询比较好)还是随机片键
片键对操作和性能的影响
实施分片
启动配置服务器
启动mongos
添加mongod实例
对数据库启用分片
对集合进行分片
[root@localhost ~]# cd /var/lib/mongod
bash: cd: /var/lib/mongod: No such file or directory
[root@localhost ~]# cd /var/lib/mongo
[root@localhost mongo]# cd dbs
[root@localhost dbs]# mkdir config
[root@localhost dbs]# cd config
[root@localhost config]# pwd
/var/lib/mongo/dbs/config
[root@localhost config]# mongod --dbpath /var/lib/mongo/dbs/config --port 20000
mongos --port 30000 --configdb localhost:20000
[root@localhost ~]# ps -ef |grep mong
root      3350  3108  1 20:37 pts/3    00:00:04 mongod --dbpath /var/lib/mongo/dbs/config --port 20000
root      3399  3387  0 20:43 pts/1    00:00:00 mongos --port 30000 --configdb localhost:20000
[root@localhost ~]# cd /var/lib/mongo/dbs
[root@localhost dbs]# mkdir shard1
[root@localhost dbs]# ls
config  master  shard1  slave
[root@localhost dbs]# mongod --dbpath /var/lib/mongo/dbs/shard1 --port 10000 --nojournal
[root@localhost ~]# mongo localhost:30000/admin
MongoDB shell version: 2.6.11
connecting to: localhost:30000/admin
mongos>
db.runCommand({addshard:"localhost",allowLocal:true})

mongos> db.runCommand({addshard:"localhost",allowLocal:true})
{
    "ok" : 0,
    "errmsg" : "couldn't connect to new shard socket exception [CONNECT_ERROR] for localhost:27017"
}
mongos> db.runCommand({enablesharding:"foo"})数据库foo
db.runCommand({"sharecollection":"foo.bar","key":{"_id":1}})库foo下面的bar

查看所有的片
useconfig
db.shards.find();
db.databases.find();
chunks集合
db.chunks.find();
删除片
db.runCommand({"removeshard":"localhost:10000"});

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MongoDB DBA 实践8
在Linux系统中,主要是使用命令行进行mongodb的分片集群部署一、先决条件  mongodb安装成功,明确路径,MongoDB的几个路径:1./var/lib/mongodb2./var/log/mongodb3./etc/mongod.conf4.usr/bin/二、分片部署   
Wesley13 Wesley13
3年前
MongoDB 集群设置集合分片生效及查看集合分片情况
一、设计DB分片与Collection分片连接mongos/opt/mongodb/mongodblinuxx86_642.4.8/bin/mongo 127.0.0.1:27017使用admin数据库useadmin指定testdb分片生效db.runCommand({ena
Wesley13 Wesley13
3年前
MongoDB学习笔记10——分片
分片(Sharding)这种技术可以将数据分散到多台机器,但对于应用而言,仍然如同在使用单个数据库一样。在使用MongoDB时,水平分区是唯一可采用的方式。在MongoDB中由MongoS路径进程管理数据的分割,并将请求路由到必需的分片服务器。在进行分片的时候需要mongod配置服务器和mongos分片服务器。1)创建分片设置:打开新的终端窗
Wesley13 Wesley13
3年前
MongoDB 分片管理(一)检查集群状态
一、检查集群状态1.1使用sh.status()查看集群摘要信息1、使用sh.status()可以查看分片信息、数据库信息、集合信息sh.status()如果数据块较多时,使用sh.status(true)又是输出会很多,就不会截断,要使用如下查看2、tooman
Wesley13 Wesley13
3年前
MongoDB的分片集群的安装
简介所谓分片,指的就是把数据拆分,将其分散到不同机器上的过程。MongoDB支持自动分片,对应用而言,好像始终和一个单机的服务器交互一样。分片和复制复制是让多台服务器拥有相同的数据副本,而分片是每个分片都拥有整个数据集的一个子集,且相互是不同的数据,多个分片的数据合起来构成整个数据集。Mongos用来
Wesley13 Wesley13
3年前
MongoDB 查看集合是否分片
MongoDB会把分片过的集合保存在config.collection集合中,若需要查看分片键,则需要根据该集合进行查找。官方的其他很多分片快捷命令也都处于config库三种方式1、去config库中查询这种办法可以查看分片键信息db.collections.find({$and:\{'dropped':{$
Wesley13 Wesley13
3年前
MongoDB分片介绍
本文简单介绍MongoDB的分片功能,对分片进行了概述,具体的功能详解,后续文章会陆续推出分片是把数据分配到多个服务器上的一种方式,MongoDB使用分片实现大数据部署以及高吞吐操作。大数据以及高吞吐量的应用会对单个服务器的容量造成很大的挑战。比如,高频率的查询操作会消耗服务器的CPU,如果数据集大于系统的RAM容量,也会对硬盘的性能造成影响。应
Stella981 Stella981
3年前
Mongodb集群节点故障恢复场景分析(转)
一个适当配置的Mongodb分片集群是没有单点故障。本文描述了分片集群中存在的几种不同的潜在的节点故障场景,以及Mongodb对这些节点故障是怎么处理的。1、Mongos节点宕机一个Mongos进程应该运行在每一个应用程序服务器上,这个服务器应该独占这个Mongos进程,并且通过它与分片集群来通讯。Mongos进程不是持久化的,相反,
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这