概述
集群相关配置命令都是在Mongos服务上执行的。
每个命令通常有runCommand(需要切换到admin数据库),adminCommand(无需切换到admin数据库),sh(需要切换到admin数据库)三个版本。
集群配置
# 初始副本集配置(加载rsconf配置)
rs.initiate({
_id:'yidian_repl', // 这里的_id要与配置文件中指定的服务所属的复制集相同
members:
[
{
_id:1, // 成员的id
host:'192.168.230.128:27017' // 成员所属节点的ip以及该成员服务启动时所占的端口
},
{
_id:2,
host:'192.168.230.129:27017'
},
{
_id:3,
host:'192.168.230.130:27017'
},
]
});
查看集群(分片)状态
# 查看副本集状态
rs.status();
分片操作
db.runCommand({addshard:
"yidian_repl/192.168.230.128:27017,192.168.230.129:27017,192.168.230.130:27017",name:"shard1"}); // 需要切换的admin数据库
或者
db.adminCommand({addshard:
"yidian_repl/192.168.230.128:27017,192.168.230.129:27017,192.168.230.130:27017",name:"shard1"}); // 无需切换到admin数据库
db.runCommand({removeShard:"shard2"});
查询分片列表
db.runCommand({listshards:1});
开启数据库分片功能
db.runCommand({enablesharding:"testdb"});
或者
sh.enableSharding("<database>")
说明 :数据库名。
示例:sh.enableSharding(“mongodbtest”)
说明:您可以通过sh.status()查看分片状态。
对片键字段建立索引
db.<collection>.createIndex(<keyPatterns>,<options>)
说明
集合名。
包含用于建立索引的字段和索引类型。
常见的索引类型如下:
1:创建升序索引
-1:创建降序索引
“hashed”:创建哈希索引
表示接收可选参数,本操作示例中暂未使用到该字段。
创建升序索引示例:
db.customer.createIndex({name:1})
对集合设置数据分片
db.runCommand({shardcollection:"db.collection",key:{field1:1}}); // 需要切换到admin库,再执行相关命令
或者
db.adminCommand({shardcollection:"db.collection",key:{field1:1}}) // 无需切换到admin库,直接执行admin库中的命令
或者
sh.shardCollection("<database>.<collection>",{ "<key>":<value> } ) // 需要切换到admin库,再执行相关命令
说明
db:数据库名。
collection:集合名。
key:分片的键,MongoDB将根据片键的值进行数据分片。
field1:集合的字段
1:表示基于范围分片,通常能很好地支持基于片键的范围查询。
“hashed”:表示基于哈希分片,通常能将写入均衡分布到各Shard节点中。
示例:
基于范围分片的配置示例:
sh.shardCollection(“mongodbtest.customer”,{“field1”:1})
基于哈希分片的配置示例:
sh.shardCollection(“mongodbtest.customer”,{“field1”:“hashed”})
查询集合分片统计
db.collectionName.stats();
查看分片数据分布
use dbname
db.colletionName.getShardDistribution() #可以查看数据分布
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100063.html