mongodb切片配置方法

---------------------------------切片架构图-------------------------------------------------------------------------------
          切片1  切片2  切片3
     |          |           |
              ------------------
                         |
                         |                 | -----配置服务器(主)
用户---------->路由-----------|-----配置服务器(从1)
                                 |-----配置服务器(从2)

注:mongo 3.4版本以后配置服务器必须是复本集,因此看到有的教程配置服务器是一台时都是老版本了。
-----------------------------------------------------------------------------------------------------------------------------------

步骤:
1、先配置配置服务器的复本集
1)主 ./mongod --configsvr --dbpath /home/jack/mongoData01/data --logpath /home/jack/mongoData01/log/log --port 3000 --replSet myset 
2)从1 ./mongod --configsvr --dbpath /home/jack/mongoData02/data --logpath /home/jack/mongoData02/log/log --port 3100 --replSet myset 
3)从2 ./mongod --configsvr --dbpath /home/jack/mongoData03/data --logpath /home/jack/mongoData03/log/log --port 3300 --replSet myset 
**说明:--configsvr一定要加上,说明该服务器是配置服务器
4)主从全部起动,用shell登陆主,然后设置副本集
(1)、配置信息
rsconf={
   "_id" : "myset",
    "members" : [
      {
        "_id" : 0,
        "host" : "172.16.60.180:3000"
      }
    ]
  }
(2)、初始化
   rs.initiate(rsconf)
(3)、添加集群
   rs.add("172.16.60.180:3100")
   rs.add("172.16.60.180:3200")
2、配置路由服务器并启动
  ./mongos --configdb myset/172.16.60.180:3000,172.16.60.180:3100,172.16.60.180:3200 --logpath /home/jack/mongoData04/log/log --port 3300 
  说明:configdb后面的myset必须与配置服务器上的副本集名字一致。
3、配置切片服务器
1) cd /home/jack/mongodb-linux-x86_64-3.4.5/bin
  ./mongod --dbpath /home/jack/mongoData06/data --logpath /home/jack/mongoData01/log/log --port 3400 --shardsvr
2) cd /home/jack/mongodb-linux-x86_64-3.4.5/bin
  ./mongod --dbpath /home/jack/mongoData06/data --logpath /home/jack/mongoData01/log/log --port 3500 --shardsvr
  **说明:--shardsvr一定要加上,说明该服务器是切片服务器
3、连接路由并添加切片
1)sh.addShard(‘172.16.60.180:3400‘)
2)sh.addShard(‘172.16.60.180:3500‘)
3)sh.addShard(‘172.16.60.180:3600‘)
4、添加待分片的库
sh.enableSharding(databaseName)
5、添加待分片的表
sh.shardCollection(‘dbName.CollectionName‘,{field:1})
--------------------------------------------------------------------------------------------------------------
**说明:1)若需要分片时,数据已经存在,则需要对collection中的某一字段先创建索引
2)一旦分片键和分片值确定下来了就不可以改变。
其他命令:
1)查看其他集群状态信息
sh.status()
2)自定义分片(例子)
for(var i=0;i<40;i++){
sh.splitAt(‘dbName.CollectionName‘,{field:i*1000})
}
3)修改chunck大小(单位:M)
(1)、use config
(2)、db.settings.save({_id:"chuncksize",value:64})

----------------------------------------------------------------------------------------------------------------

时间: 2024-08-02 22:08:50

mongodb切片配置方法的相关文章

MongoDB安装配置

一.什么是MongoDB? MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统,属于NoSQL 在高负载的情况下,可以添加更多的节点,来保证服务器性能 MongoDB旨在为WEB应用提供可扩展的高性能数据 存储解决方案,不能完全取代MySQL. MongoDB将数据存储为一个文档,数据结构由键值(Key=>value)对组成.MongoDB文档类似于JSON对象.字段值可以包含其他文档,数组及文档数组. 二.和关系型数据库比较 SQL术语/概念 MongoDB术语/概念

MongoDB 主从配置 [二]

MongoDB 主从配置1.实验环境主:192.168.3.206从:192.168.3.2102.安装方法(分别在主.从执行下面命令) groupadd mongodb useradd mongodb -g mongodb cd /root/soft tar -zxvf mongodb-linux-x86_64-2.6.3.tgz mv mongodb-linux-x86_64-2.6.3 mongodb mv mongodb /usr/local/ cd /usr/local/ chown

mongodb主从配置及备份

本文将介绍下mongodb主从配置及备份 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 主从服务器的实现原理 首先,主节点会把本服务的与写有关的操作记录下来,读操来不记录,这些操作就记录在local数据库中的oplog.$admin这个集合中,这是一个固定集合,大小是可以配置的,主要是通过配置oplog

虚拟机上静态地址配置方法

虚拟机上静态地址配置方法 虚拟机要与其他东西进行连接时,由于IP地址总会变动,故设置为静态地址. 方法如下,留作备用. 1. 确保虚拟机网络连接方式是桥接模式 2.启动Ubuntu虚拟机,修改/etc/network/interfaces 网络接口文件,配置ip.掩码.网关等信息: 1 auto lo 2 iface lo inet loopback 3 4 auto eth4 5 iface eth4 inet static 6 address 192.168.1.233 7 netmask

Nginx自签ssl证书创建及配置方法

场景: Nginx使用自签ssl证书实现https连接. 方法: 第一步:使用OpenSSL创建证书 #建立服务器私钥(过程需要输入密码,请记住这个密码)生成RSA密钥 >openssl genrsa -des3 -out server.key 1024 #生成一个证书请求     >openssl req -new -key server.key -out server.csr #需要依次输入国家,地区,组织,email.最重要的是有一个common name,可以写你的名字或者域名.如果为

NHibernate各种数据库连接参数文件配置方法说明

//NHibernate各种数据库连接参数文件配置方法说明 //配置文件Config/Hibernate.cfg.xml内容如下所示:<?xml version="1.0" encoding="utf-8" ?><hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >  <session-factory name="CwfSer

UI第九讲.UITableView表视图创建,表视图的重用机制,表视图的相关配置方法

一.UITableView表视图创建 1>.基本属性: UITableView继承自UIScrollView,所以可以滚动          表视图的每一条数据都是显示在UITableViewCell对象中          表视图可以分区显示数据,每个分区称为一个section,每一行称为row,编号都是从0始 2>.重要用法: 最重要的是两个代理方法 <UITableViewDelegate,UITableViewDataSource>(其中必须实现的是 numberOfRow

NLB多播模式下跨路由访问的配置方法

前些时间因为需大量访问共享文件,为提高访问的并发速度,就配置了两台服务器,采用windows的NBL来配置,配置方法在网上很多,配置完后,采用多播在本地可以访问,但其它网段就无法访问:后来又在网上查资料,有些说最好采用单播模式,这样支持跨网段的访问,又将NBL的工作模式改成单播模式,但出现有些机子能访问,有些不能访问,依据单播的工作原理,得知会修改网卡的物理地址改成以02BF开头的mac地址,在三层交换机上查看mac地址转发表,发现02bf开头的地地址只出现在一个物理端口上,另一台计臬机的端口上

docker网络配置方法总结

docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥,它可以使容器和主机相互通信,容器与容器间通信.问题是,如何让位于不同主机上的docker容器可以通信.如何有效配置docker网络目前来说还是一个较复杂的工作,因而也涌现了很多的开源项目来解决这个问题,如flannel.Kubernetes.weave.