• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

MongoDB分片集群的元信息(六)

MongoDB 彭东稳 9年前 (2016-03-30) 29324次浏览 已收录 0个评论

集群元信息

配置服务器存储了集群的元信息。元信息保存了集群的状态和组织结构,元信息包含每个分片保存的数据块信息以及每个数据块的范围,mongos会缓存这些信息用来做读写的路由分发。

配置服务器在 Config Database 中保存元信息。在对配置服务器进行维护之前一定要备份 config数据库。通过在 mongo 终端中使用如下命令访问 config 数据库。

一般情况下,不应该手动编辑 config 数据库的内容, config数据库包含以下集合。

此集合存储为每一个有更改的分片集合存储元数据信息,集合样例如下:

_id

时间的名称,值为主机名+时间戳+自动增长值。

Server

服务器的主机名。

clientAddr

持有客户端的地址,由mongos实例初始化这个更换。

Time

使用一个ISODate时间戳反映这一变化。

What

表达类型的变化记录,可能的值是:dropCollectiondropCollection.startdropDatabasedropDatabase.startmoveChunk.startmoveChunk.commitsplitmulti-split

Ns

变化发生的名称空间。

details

一个包含有关更改的附加细节的文档,但详细文档的结构取决于更改的类型。

 

config.chunks

此集合存储集群中的每一个Chunk信息,大致有ChunkID、名称空间、存储的数据是从哪里开始到哪里结束(这个跟片键有关)以及存储到那个shard上面。集合样例如下:

config.collections

此集合存储集群中的每一个分片集合,包括已经删除的集合,其中有数据库名字以及集合的名字。且当dropped的值为false时表示此集合没有被删除,为true时表示此集合被删除。另外还有次集合使用的片键是什么?集合的样例如下:

config.databases

此集合存储集群中的每一个数据库,并追踪数据库分片是否已经启用,当一个数据库分片启用后partitionedtrueprimary字段会持有一个主分片的名字。集合样例如下:

config.lockpings

此集合存储集群中保持活动组件的信息,下面给出一个样例:

config.locks

此集合存储集群中分布式锁,这确保了每一次只有一个mongos实例可以执行管理任务在集群中。作为平衡器以锁插入一个类似以下的锁收集文件的人。

If a mongos holds the balancer lock, the state field has a value of 2, which means that balancer is active. The when field indicates when the balancer began the current operation.

config.mongos

此集合存储一个文档,mongos实例每30秒发送ping信息至集群中的所有成员使之能够确认mongos实例是活动的。而文档中显示的是最后一次ping的时间,该群集维护这个集合是用于报告用途。集合样例如下:

config.settings

此集合中保存的是chunk的默认大小(64MB),以及均衡器是否开启,当stoppedfalse时表示均衡器为开启状态。集合样例如下:

config.shards

此集合存储集群中shard的节点信息,有shard的唯一ID以及主机名。集合样例如下:

config.tags

此收集保存每个标签关键文件在集群范围内的分片,集合中的文档类似如下:

config.version

此集合中保存了当前元数据的版本号,插入此集合方法如下:


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (1)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!