我在MONGOD中使用3个分片服务器(S1,S2,S3)创建了分片, 在S1,S2,S3中启用分片。
**mongos> sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,`enter code here`
"currentVersion" : 6,
"clusterId" : ObjectId("592a59b9057c510a56f528e3")
}
shards:
{ "_id" : "s1", "host" : "s1/localhost:37017,localhost:37018,localhost:37019" }
{ "_id" : "s2", "host" : "s2/localhost:47017,localhost:47018,localhost:47019" }
{ "_id" : "s3", "host" : "s3/localhost:57017,localhost:57018,localhost:57019" }
active mongoses:
"3.2.13" : 1
balancer:
Currently enabled: yes
Currently running: no
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
2 : Success
databases:
{ "_id" : "school", "primary" : "s1", "partitioned" : true }
school.students
shard key: { "student_id" : 1 }
unique: false
balancing: true
chunks:
s1 1
{ "student_id" : { "$minKey" : 1 } } -->> { "student_id" : { "$maxKey" : 1 } } on : s1 Timestamp(1, 0)**
上面的代码提到在MONGOS中创建的数据库(学校)是自动与S1共享的。
将数据库学校效果放在其他分片中(S2,S3)?
请帮我验证分片在S1,S2和S3与数据库SCH001之间是否完美运行。
在上面的例子中,如果一组崩溃的数据可用于所有其他集合中的唯一数据,那么重新启动集合将如何工作,具体行为将如何
答案 0 :(得分:0)
下面是数据库标记如何查找名为“ ShardTestDB.Test”的分片集合之一
databases:
{ "_id" : "ShardTestDB", "primary" : "shardrs1", "partitioned" : true }
ShardTestDB.Test
shard key: { "_id" : "hashed" }
unique: false
balancing: true
chunks:
shardrs1 2
shardrs2 2
shardrs3 2
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong("-6148914691236517204") } on : shardrs1 Timestamp(4, 1)
{ "_id" : NumberLong("-6148914691236517204") } -->> { "_id" : NumberLong("-3074457345618258602") } on : shardrs1 Timestamp(4, 2)
{ "_id" : NumberLong("-3074457345618258602") } -->> { "_id" : NumberLong(0) } on : shardrs2 Timestamp(4, 3)
{ "_id" : NumberLong(0) } -->> { "_id" : NumberLong("3074457345618258602") } on : shardrs2 Timestamp(4, 4)
{ "_id" : NumberLong("3074457345618258602") } -->> { "_id" : NumberLong("6148914691236517204") } on : shardrs3 Timestamp(4, 5)
{ "_id" : NumberLong("6148914691236517204") } -->> { "_id" : { "$maxKey" : 1 } } on : shardrs3 Timestamp(4, 6)
{ "_id" : "config", "primary" : "config", "partitioned" : true }
config.system.sessions
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
shardrs1 1
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shardrs1 Timestamp(1, 0)
通过比较两个输出,似乎“ school.students”集合仅存储在1个copysetSet中,该集合为s1(检查大块下)。因此,如果整个s1plicateSet崩溃,可能会丢失所有数据。但这不太可能。但是,如果copySet中只有1台计算机崩溃,则数据不会丢失,因为copySet中的其他计算机具有相同的数据(如果它们已正确同步)。