Shard Server 1:27017 Shard Server 2:27018 Config Server :27027 Route Process:40000
mkdir -p ./data/shard/s0 ./data/shard/s1 #创建数据目录 mkdir -p ./data/shard/log # 创建日志目录 ./bin/mongod --port 27017 --dbpath /usr/local/mongodb/data/shard/s0 --fork --logpath /usr/local/mongodb/data/shard/log/s0.log # 启动Shard Server实例1 ./bin/mongod --port 27018 --dbpath /usr/local/mongodb/data/shard/s1 --fork --logpath /usr/local/mongodb/data/shard/log/s1.log # 启动Shard Server实例2
mkdir -p ./data/shard/config #创建数据目录 ./bin/mongod --port 27027 --dbpath /usr/local/mongodb/data/shard/config --fork --logpath /usr/local/mongodb/data/shard/log/config.log #启动Config Server实例
# 我们使用MongoDB Shell登录到mongos,添加Shard节点
./bin/mongo admin --port 40000 #此操作需要连接admin库
> db.runCommand({ addshard:"localhost:27017" }) #添加 Shard Server 或者用 sh.addshard()命令来添加,下同;
{ "shardAdded" : "shard0000", "ok" : 1 }
> db.runCommand({ addshard:"localhost:27018" })
{ "shardAdded" : "shard0001", "ok" : 1 }
> db.runCommand({ enablesharding:"test" }) #设置分片存储的数据库
{ "ok" : 1 }
> db.runCommand({ shardcollection: "test.users", key: { id:1 }}) # 设置分片的集合名称。且必须指定Shard Key,系统会自动创建索引,然后根据这个shard Key来计算
{ "collectionsharded" : "test.users", "ok" : 1 }
> sh.status(); #查看片的状态
> printShardingStatus(db.getSisterDB("config"),1); # 查看片状态(完整版);
> db.stats(); # 查看所有的分片服务器状态
sh.shardCollection(‘shop.user',{userid:1}); # user表用userid做shard key
for(var i=1;i<=40;i++) { sh.splitAt('shop.user',{userid:i*1000}) } # 预先在1K 2K...40K这样的界限切好chunk(虽然chunk是空的), 这些chunk将会均匀移动到各片上.
use config
db.databases.find( { "partitioned" : true} )
use config db.databases.find()
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "mydb", "partitioned" : true, "primary" : "firstset" }
{ "_id" : "test", "partitioned" : false, "primary" : "secondset" }
use admin
db.runCommand( { listShards : 1 })
{
"shards" : [
{
"_id" : "firstset",
"host" : "firstset/mongo01:10001,mongo01:10002,mongo01:10003"
},
{
"_id" : "secondset",
"host" : "secondset/mongo01:30001,mongo01:30002,mongo01:30003"
}
],
"ok" : 1
}
sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"version" : 4,
"minCompatibleVersion" : 4,
"currentVersion" : 5,
"clusterId" : ObjectId("535a2dab0063b308757e1b70")
}
shards:
{ "_id" : "firstset", "host" : "firstset/mongo01:10001,mongo01:10002,mongo01:10003" }
{ "_id" : "secondset", "host" : "secondset/mongo01:30001,mongo01:30002,mongo01:30003" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "mydb", "partitioned" : true, "primary" : "firstset" }
mydb.test_collection
shard key: { "name" : 1 }
chunks:
secondset 6
firstset 6
{ "name" : { "$minKey" : 1 } } -->> { "name" : "cat" } on : secondset Timestamp(2, 0)
{ "name" : "cat" } -->> { "name" : "cow" } on : secondset Timestamp(3, 0)
{ "name" : "cow" } -->> { "name" : "dog" } on : secondset Timestamp(4, 0)
{ "name" : "dog" } -->> { "name" : "dragon" } on : secondset Timestamp(5, 0)
{ "name" : "dragon" } -->> { "name" : "elephant" } on : secondset Timestamp(6, 0)
{ "name" : "elephant" } -->> { "name" : "horse" } on : secondset Timestamp(7, 0)
{ "name" : "horse" } -->> { "name" : "lion" } on : firstset Timestamp(7, 1)
{ "name" : "lion" } -->> { "name" : "pig" } on : firstset Timestamp(1, 7)
{ "name" : "pig" } -->> { "name" : "rabbit" } on : firstset Timestamp(1, 8)
{ "name" : "rabbit" } -->> { "name" : "snake" } on : firstset Timestamp(1, 9)
{ "name" : "snake" } -->> { "name" : "tiger" } on : firstset Timestamp(1, 10)
{ "name" : "tiger" } -->> { "name" : { "$maxKey" : 1 } } on : firstset Timestamp(1, 11)
{ "_id" : "test", "partitioned" : false, "primary" : "secondset" }
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有