开发者社区> yangyi_dba> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【Mongodb】Mongodb sharding 管理之一

简介: 前面介绍了sharding的基本搭建和大量插入数据测试,本文介绍一些sharding相关查询操作 1 判断是否是shard 集群 mongos> db.runCommand({ isdbgrid : 1}); { "isdbgrid" : 1, "hostname" : "rac4", "ok" : 1 } mongos> db.
+关注继续查看
前面介绍了sharding的基本搭建和大量插入数据测试,本文介绍一些sharding相关查询操作
1 判断是否是shard 集群
mongos> db.runCommand({ isdbgrid : 1});
{ "isdbgrid" : 1, "hostname" : "rac4", "ok" : 1 }
mongos> db.runCommand({ismaster:1});
{
        "ismaster" : true,
        "msg" : "isdbgrid",
        "maxBsonObjectSize" : 16777216,
        "ok" : 1
2 查看已经存在的shard集群:必须在admin数据库上
mongos> db.runCommand({ listShards : 1});
{ "ok" : 0, "errmsg" : "access denied - use admin db" }
mongos> use admin
switched to db admin
mongos> db.runCommand({ listShards : 1});
{
        "shards" : [
                {
                        "_id" : "shard0000",
                        "host" : "10.250.7.225:27018"
                },
                {
                        "_id" : "shard0001",
                        "host" : "10.250.7.249:27019"
                },
                {
                        "_id" : "shard0002",
                        "host" : "10.250.7.241:27020"
                }
        ],
        "ok" : 1
}
3 查看一个数据库是否进行了shard
mongos> config = db.getSisterDB("config")
config
mongos> config.system.namespaces.find()
{ "name" : "config.version" }
{ "name" : "config.system.indexes" }
{ "name" : "config.version.$_id_" }
{ "name" : "config.settings" }
{ "name" : "config.settings.$_id_" }
{ "name" : "config.chunks" }
{ "name" : "config.chunks.$_id_" }
{ "name" : "config.chunks.$ns_1_min_1" }
{ "name" : "config.chunks.$ns_1_shard_1_min_1" }
{ "name" : "config.chunks.$ns_1_lastmod_1" }
{ "name" : "config.shards" }
{ "name" : "config.shards.$_id_" }
{ "name" : "config.shards.$host_1" }
{ "name" : "config.mongos" }
{ "name" : "config.mongos.$_id_" }
{ "name" : "config.lockpings" }
{ "name" : "config.lockpings.$_id_" }
{ "name" : "config.locks" }
{ "name" : "config.locks.$_id_" }
{ "name" : "config.lockpings.$ping_1" }
has more
mongos> it
{ "name" : "config.databases" }
{ "name" : "config.databases.$_id_" }
{ "name" : "config.collections" }
{ "name" : "config.collections.$_id_" }
{ "name" : "config.changelog", "options" : { "create" : "changelog", "size" : NumberLong(10485760), "capped" : true } }
查看test数据库,进行了拆分
mongos> test = db.getSisterDB("test")
test
mongos> test.system.namespaces.find()
{ "name" : "test.system.indexes" }
{ "name" : "test.yql" }
{ "name" : "test.yql.$_id_" }
mongos数据库没有进行拆分
mongos> mongos = db.getSisterDB("mongos")
mongos
mongos> mongos.system.namespaces.find()

4 查看整个mongodb 数据库shard的详细信息 
db.printShardingStatus();
 这个命令已经不陌生了,对于此命令的输出:
mongos> printShardingStatus();
--- Sharding Status --- 
第一部分:
  sharding version: { "_id" : 1, "version" : 3 }
第二部分:
  shards:
        {  "_id" : "shard0000",  "host" : "10.250.7.225:27018" }
        {  "_id" : "shard0001",  "host" : "10.250.7.249:27019" }
        {  "_id" : "shard0002",  "host" : "10.250.7.241:27020" }
 介绍了整个sharding 集群的名称,和分布的服务器的ip和端口号。
第三部分:
所有在这个集群上的数据库。
_id 数据库的名字
partitioned 表示是否进行shard 值为true或false,数据库admin没有进行shard,在config服务器上
primary:表示基片,test库有三个shard:shard0000,shard0001,shard0002,其基片为shard0000 表示test数据库在shard000
test.yql chunks:表示collection的分片信息,分为几个区间,哪一个区间在哪一个shard上面。
  databases:
        {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
        {  "_id" : "mongos",  "partitioned" : false,  "primary" : "shard0000" }
        {  "_id" : "test",   "partitioned" : true,   "primary" : "shard0000" }
                test.yql chunks:
                                shard0000       2
                                shard0002       1
                                shard0001       1
                        { "_id" : { $minKey : 1 } } -->> { "_id" : ObjectId("4eb298b3adbd9673afee95e3") } on : shard0000 { "t" : 2000, "i" : 1 }
                        { "_id" : ObjectId("4eb298b3adbd9673afee95e3") } -->> { "_id" : ObjectId("4eb2a64640643e5bb60072f7") } on : shard0000 { "t" : 1000, "i" : 3 }
                        { "_id" : ObjectId("4eb2a64640643e5bb60072f7") } -->> { "_id" : ObjectId("4eb2a65340643e5bb600e084") } on : shard0002 { "t" : 3000, "i" : 1 }
                        { "_id" : ObjectId("4eb2a65340643e5bb600e084") } -->> { "_id" : { $maxKey : 1 } } on : shard0001 { "t" : 3000, "i" : 0 }
        

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
搭建 MongoDB分片(sharding) / 分区 / 集群环境
1. 安装 MongoDB 三台机器 关闭防火墙 systemctl stop firewalld.service 192.168.252.121 192.168.252.122 192.168.252.
2474 0
MongoDB · 特性分析· Sharding原理与应用
MongoDB Sharded Cluster 原理 如果你还不了解 MongoDB Sharded cluster,可以先看文档认识一下 中文简介:MongoDB Sharded cluster架构原理 英文汇总:https://docs.mongodb.com/manual/sharding/ 什么时候考虑用 Sharded cluster? 当你考虑使用 Sharded
1742 0
MongoDB sharding迁移那些事(三)
如果不了解 MongoDB Sharded Cluster 原理,请先阅读 MongoDB Sharded cluster架构原理 关于MongoDB Sharding,你应该知道的 关于 sharding 迁移,会分3个部分来介绍,本文为第三部分 负载均衡及迁移策略 chunk 迁移流程 Balancer 运维管理 在前面2个部分里,介绍了 MongoDB sharding 的迁移策略以及 chunk 迁移的步骤,本文将主要介绍如何管理 Balancer,以更好的为业务服务。
4526 0
MongoDB sharding迁移那些事(二)
如果不了解 MongoDB Sharded Cluster 原理,请先阅读 MongoDB Sharded cluster架构原理 关于MongoDB Sharding,你应该知道的 关于 sharding 迁移,会分3个部分来介绍,本文为第二部分 负载均衡及迁移策略 chunk 迁移
6323 0
+关注
yangyi_dba
数据库相关技术专家
972
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载