7.4-文档型数据库-2_第1页
7.4-文档型数据库-2_第2页
7.4-文档型数据库-2_第3页
7.4-文档型数据库-2_第4页
7.4-文档型数据库-2_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7.4文档型数据库MongoDB数据库的组成MongoDB的集群架构【本节学习目标】一、文档数据库的组成面向集合且模式自由的文档型数据库。面向集合--数据被分组为集合(文档);数据模式自由;存储的数据是键值对的集合,键是字符串,值是任意类型,包括数组和文档。文档是MongoDB中数据的基本单元,集合可以被看作没有模式的表,MongoDB每个实例都可容纳多个独立数据库,每个数据库都有自己的集合和权限(数据库)。文档(Document)---文档组集合:Collection--多个集合:数据库(database)。一个实例支持多个数据库(database)1数据库对应的文件信息默认数据目录是/daba/db,存储所有的数据文件,每个数据库都包含一个.ns文件和一些数据文件,例如test数据库,数据库的文件就会由test.ns、test.0、test.1、test.2等组成。预分配空间的机制,用0进行填充。每新分配一次,它的大小都会是上一个数据文件大小的2倍,每个数据文件最大2G。数据库的每张表都对应一个命名空间,每个索引也有对应的命名空间,这些命名空间的元数据集中在*.ns文件中。例子–数据库的相关文件test数据库包含3个文件用于存储表和索引数据,test.2预分配的空文件,test.0和test.1分到相应的盘区对应不同的名字空间。每个命名空间可以包含多个不同的盘区,不是连续的,命名空间对应的盘区随着分配的次数不断增长的。不用释放回收空闲的磁盘空间。

mongodb的数据将会保存在底层文件系统中,dbpath设定为“/data/db”目录,创建一个database为“test”,collection为“sample”,然后在此collection中插入数条documents。我们查看dbpath下生成的文件列表:例子–数据库的相关文件test已经有6个数据文件(datafiles),每个文件以“database”的名字+序列数字组成,序列号从0开始,逐个递增,数据文件从16M开始,每次扩张一倍(16M、32M、64M、128M...)>ls-lh-rw-------1mongomongo16M11617:24test.0-rw-------1mongomongo32M11617:24test.1-rw-------1mongomongo64M11617:24test.2-rw-------1mongomongo128M11617:24test.3-rw-------1mongomongo256M11617:24test.4-rw-------1mongomongo512M11617:24test.5-rw-------1mongomongo512M11617:24test.6-rw-------1mongomongo16M11617:24test.ns数据库存储--collection数据库中所有的collections以及索引信息分散存储在多个数据文件中,数据分块的单位为extent(范围,区域),即一个datafile中有多个extents组成,extent中可以保存collection数据或者indexes数据,一个extent只能保存同一个collection数据,不同的collections数据分布在不同的extents中,indexes数据也保存在各自的extents中;在每个database的namespace文件中,每个collection只保存了第一个extent的位置信息,每个extent都维护者一个链表关系。2Namespace文件对于namespace文件,比如“test.ns”文件,默认大小为16M,此文件中主要用于保存“collection”、index的命名信息,可保存collection的“属性”信息、每个索引的属性类型等通过配置文件“nsSize”选项来指定存储大量的collection(比如每一小时生成一个collection,在数据分析应用中)。

3Journal文件journal日志为mongodb提供了数据保障能力,用于当mongodb异常crash后,重启时进行数据恢复;mongodb的数据持久写入磁盘是滞后的。默认情况下,“journal”特性是开启的,一个mongodb实例中所有的databases共享journal文件。二、mongoDB的体系结构–集群分布式集群:数据备份--安全性,高读写服务的能力和数据存储能力。通过副本集(replica)对数据进行备份,通过分片(sharding)对大的数据进行分割,分布式存储在不同节点上。mongodb目前为止支持三种集群模式:主从集群,副本集集群,分片集群。1.集群架构单机实例(mongodinstance):只有一个单机实例,客户端与其直接连接使用。副本集(Replicasets):副本集通常由至少3个节点组成。一个主节点,处理客户端请求,其余是从节点,复制主节点上的数据。mongodb各个节点常见的搭配方式为:一主多从(正常情况下至少3个节点组成副本集)主节点记录在其上的所有操作,从节点定期轮询主节点获取这些操作,数据与一致。选举机制:当一个节点挂掉之后需要满足“大多数”成员投票2.副本集图示副本集(Replicasets)3.分片Sharing分片(Sharding):分片是将一个集合的数据分别存储在不同的shard节点上减轻单机压力。根据ShardKeys来划分数据,数据库提供了两种方法:垂直扩展和分片。垂直扩展:增加CPU、RAM,存储资源等。分片(水平扩展):划分数据集,数据分布到多台服务器中,每个碎片(chard)是独立的数据库分片集群有三个组件:Shards碎片,存储数据,每个碎片都是一个复制集。queryrouters:查询路由或mongos实例。configservers:配置服务器,存储集群中的元数据。3.分片Sharing图示:分片集群有三个组件:Shards碎片,存储数据,每个碎片都是一个复制集。queryrouters:查询路由或mongos实例。configservers:配置服务器,存储集群中的元数据。

4.集群中的服务器路由服务器(mongos):路由服务器负责把对应的数据请求请求转发到对应的shard服务器上mongos,数据库集群请求的入口。配置服务器(mongos):存储所有数据库元信息(路由、分片)的配置。mongos本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储这些数据。配置服务器相当与集群大脑,存储所有数据库元信息(路由、分片)的配置。5.集群说明集群的组成:单机mongod组成副本集->分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论