`

Mongodb学习笔记(三)

 
阅读更多

 

 sharding(分片功能)

    手动分片:所有数据库都支持,但是需要应用程序自行维护连接、存储和查询,难以维护和处理。
    自动分片:集群自动分切数据存储、查询,自行负载均衡,对所有应用都是透明。mongodb支持自动分片功能

    mongodb分片的基本思想是将集合切分成小块,这些块分散到若干片里面,每个片只负责总数据的一部分,但这些对应用程序是透明的,一切由mongodb来管理。


 
   
     一个分片集群构成
          多个数据库集群,多个路由服务器和多个配置服务器构成
     
        数据库复制集:每个分片的数据库复制集存储一部分数据
        配置服务器:存储分片数据库集群的元数据
        路由服务器:提供应用层进行读写,利用配置服务器的元数据进行读写数据定位和处理

        分片集群最核心的是分割和迁移,涉及到块,及多个数据库之类的负载

      学习知识最好的办法就是实际使用它并排除它的问题:
          


 
    以上是一个结构图,这个例子是有两个replica Sets组成shard,有三个config server,一个mongos路由
    建立shard A与B
           mkdir -p /data1/rs-a-1 /data1/rs-a-2 /data1/rs-a-3 /data1/rs-b-1 /data1/rs-b-2 /data1/rs-b-3
          ./mongod --shardsvr --replSet shard-a --dbpath /data1/rs-a-1 --port 30000 --logpath /data1/rs-a-1.log --fork --nojournal
./mongod --shardsvr --replSet shard-a --dbpath /data1/rs-a-2 --port 30001 --logpath /data1/rs-a-2.log --fork --nojournal
./mongod --shardsvr --replSet shard-a --dbpath /data1/rs-a-3 --port 30002 --logpath /data1/rs-a-3.log --fork --nojournal
./mongod --shardsvr --replSet shard-b --dbpath /data1/rs-b-1 --port 30100 --logpath /data1/rs-b-1.log --fork --nojournal
./mongod --shardsvr --replSet shard-b --dbpath /data1/rs-b-2 --port 30101 --logpath /data1/rs-b-2.log --fork --nojournal
./mongod --shardsvr --replSet shard-b --dbpath /data1/rs-b-3 --port 30102 --logpath /data1/rs-b-3.log --fork --nojournal

./mongo devdb:30000
rs.initiate()
rs.add("devdb:30001")
rs.add("devdb:30002",{arbiterOnly: true})
rs.status()

./mongo devdb:30100
rs.initiate()
rs.add("devdb:30101")
rs.add("devdb:30102",{arbiterOnly: true})
rs.status()

等待status()都正常后,shardA与B就配置完成

   建立Config服务器
          mkdir -p /data1/config-1 /data1/config-2 /data1/config-3
          ./mongod --configsvr --dbpath /data1/config-1 --port 27019 --logpath /data1/config-1.log --fork --nojournal
./mongod --configsvr --dbpath /data1/config-2 --port 27020 --logpath /data1/config-2.log --fork --nojournal
./mongod --configsvr --dbpath /data1/config-3 --port 27021 --logpath /data1/config-3.log --fork --nojournal

  建立路由服务器
          ./mongos --configdb devdb:27019,devdb:27020,devdb:27021 --logpath /data1/mongos.log --fork --port 40000

  配置集群
          sh.addShard("shard-a/devdb.zoneland.net:30000,devdb:30001")
          sh.addShard("shard-b/devdb.zoneland.net:30100,devdb:30101")
          注:加入到集群的是shard的两个非表决节点
          db.getSiblingDB("config").shards.find() 查看config是否正常
           更简单的方法
          > use admin
          > db.runCommand({listshards: 1})
         至此,集群初始环境配置完成

  设置分片的数据库
         sh.enableSharding("cloud-docs")
   设置分片集合
         sh.shardCollection("cloud-docs.spreadsheets", {username: 1, _id: 1})
        这里的共享键是username和_id
   
    
         
          
          
     
     

  • 大小: 92.7 KB
  • 大小: 119 KB
分享到:
评论

相关推荐

    mongodb学习笔记资料

    mongodb学习笔记资料,从安装到操作库collection 对document的crud 索引 replicaSet sharding 备份与恢复

    MongoDB学习笔记

    自己在学习MongoDB的一些笔记,里面有各个查询选择器的使用截图,还有一些索引的介绍。

    Mongodb学习笔记.docx

    MongoDB 学习笔记 本文档是 MongoDB 学习笔记,涵盖了 NoSQL、Cache、运行平台等多个方面的知识点。 一、NoSQL 数据库 MongoDB MongoDB 是一个强大、灵活、可扩展性好的文档数据存储器,可以完成大部分关系数据库...

    MongoDB学习笔记思维导图.pdf

    本篇学习笔记将从基础操作到高级功能,详细阐述MongoDB的关键知识点。 首先,MongoDB的基本单元是集合(collection),类似于关系型数据库中的表,而集合中的元素称为文档(document),文档是键值对的集合,类似于...

    mongodb学习笔记

    mongodb学习笔记 MongoDB 是一个基于分布式文件存储的开源数据库系统,主要用于处理大量数据的存储和查询。以下是 MongoDB 的一些基本操作和技巧: 插入文档 MongoDB 中可以使用 `insert` 方法来插入文档,例如 ...

    mongodb学习笔记和mongodb权威指南

    首先,`mongodb_and_python`学习笔记可能涵盖了如何使用Python编程语言与MongoDB进行交互。Python是常见的MongoDB驱动程序之一,通过PyMongo库,开发者可以方便地执行CRUD(创建、读取、更新、删除)操作,构建复杂...

    MongoDB学习笔记思维导图

    总结的MongoDB的学习笔记,基本上包括了MongoDB的方方面面,每个知识点,都有示例代码,有需要的朋友,可以下载下来进一步补充完善。

    MongoDB学习笔记1

    MongoDB 是一种流行的开源、非关系型数据库系统,以其灵活性、高性能和易用性而备受开发者青睐。在本文中,我们将深入探讨 ...在实际项目中,学习和掌握 MongoDB 及其驱动程序能够帮助你更好地应对现代数据存储需求。

    mongoDB学习笔记及工具.zip

    本压缩包“mongoDB学习笔记及工具.zip”包含了一些资源,帮助你深入理解和掌握MongoDB的相关知识。 1. **笔记(note.txt)**: 这个文件可能是对MongoDB的基础概念、安装过程、基本操作和进阶特性的详细记录。笔记...

    MongoDB学习笔记(六) MongoDB索引用法和效率分析

    MongoDB是一种流行的NoSQL数据库,它的索引机制与传统的关系型数据库类似,旨在提升查询和排序的速度。在MongoDB中,索引对于优化查询性能至关重要,尤其在处理大量数据时。下面将详细介绍MongoDB中不同类型的索引...

    MongoDB_学习笔记

    ### MongoDB 学习笔记知识点详解 #### 一、MongoDB 命令行基础操作 **1.1 帮助命令** - **help**:显示 MongoDB shell 的基本帮助信息。 - **db.help()**:提供当前数据库的帮助信息。 - **db.mycoll.help()**:...

    MongoDB学习笔记之GridFS使用介绍

    MongoDB的GridFS是一个强大的文件存储系统,专为在数据库中存储和检索大量小文件而设计。GridFS将文件拆分为多个数据块(chunk),每个块都有自己的文档存储在`fs.chunks`集合中,而文件元信息则保存在`fs.files`集合...

    MongoDB学习总结笔记

    以下是对MongoDB学习的一些关键知识点的详细解释: 1. **MongoDB的基本概念**:MongoDB以集合(Collections)的形式存储数据,集合相当于关系型数据库中的表。集合内包含文档(Documents),文档是JSON格式的数据...

    MongoDB最详细学习笔记.txt

    MongoDB最详细学习笔记

Global site tag (gtag.js) - Google Analytics