MongoDB集群相关操作命令

概述

集群相关配置命令都是在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();

分片操作

添加shard复制集

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数据库

删除shard复制集

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() #可以查看数据分布
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

融极

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值