📜  MongoDB分片命令(1)

📅  最后修改于: 2023-12-03 15:03:02.163000             🧑  作者: Mango

MongoDB分片命令

简介

MongoDB分片是一种水平扩展的解决方案,允许我们将一个集合分成多个分片,每个分片存储部分数据。分片可以帮助我们应对数据量的快速增长,实现大规模数据存储和查询。

MongoDB的分片架构由以下几个重要组件构成:

  • Config Server:维护所有cluster metadata,包括分片的信息
  • Shard Server:存储被分片的数据
  • Mongos Router:接收客户端请求,并根据请求将数据路由至相应的shard server。

本文将介绍MongoDB的常用分片命令,帮助程序员快速上手MongoDB分片。

分片命令
1. 启用分片

1.1 开启mongod服务

在启用分片之前,需要先开启mongod服务。mongod是MongoDB的主进程,负责处理数据存储和查询。

mongod --shardsvr --port 27017 --dbpath \data\db\shard1

1.2 开启config server

必须同时开启三个config server,用于保存metadata信息。

mongod --configsvr --port 27017 --dbpath \data\db\config1
mongod --configsvr --port 27018 --dbpath \data\db\config2
mongod --configsvr --port 27019 --dbpath \data\db\config3

1.3 开启mongos路由器

mongos 负责将请求路由到合适的 shard,需要指定它连接的 config server 地址。

mongos --configdb configsvr1:27017,configsvr2:27018,configsvr3:27019
2. 添加分片

在开启mongod服务之后,需要将其添加到分片集合中。

sh.addShard("localhost:27017")
3. 开启集合分片

创建集合,并开启分片特性。

db.createCollection("orders")
sh.enableSharding("test")
sh.shardCollection("test.orders", {"name":1})
4. 查看集群信息

查看当前分片集群的状态

sh.status()
5. 分片数据

将数据加入到集合中,并观察数据是否已被分片存储。

db.orders.insert({"name":"order1","price":100})
db.orders.insert({"name":"order2","price":200})
db.orders.insert({"name":"order3","price":300})
db.orders.insert({"name":"order4","price":400})

db.orders.find().forEach(printjson)
总结

本文介绍了MongoDB的常用分片命令,包括启用分片、添加分片、开启集合分片、查看集群信息和分片数据。通过学习这些命令,可以快速上手MongoDB分片,应对大规模数据存储和查询的需求。