Я создал осколок с двумя наборами реплик. Каждый набор реплик имеет 3 mongod
сервер, и они работают нормально. Кроме того, сервер mongos
работает. Вот это состояние:Не удается запросить коллекцию осколков
mongos> sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"version" : 3,
"minCompatibleVersion" : 3,
"currentVersion" : 4,
"clusterId" : ObjectId("51c5be46dda9b0a5cd83ad64")
}
shards:
{ "_id" : "s1", "host" : "s1/RemotePC_1:27017,RemotePC_1:27018,RemotePC_1:27019" }
{ "_id" : "s2", "host" : "s2/RemotePC_2:27017,RemotePC_2:27018,RemotePC_2:27019" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "student", "partitioned" : true, "primary" : "s1" }
student.grades
shard key: { "_id" : 1 }
chunks:
s1 1
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : s1 { "t" : 1, "i" : 0 }
Но, когда я выполнить любую команду (вставить, найти, граф, mongoimport) на student.grades
коллекции я получаю назад эта ошибка:
mongos> db.grades.count()
Sat Jun 22 20:07:00.968 JavaScript execution failed: count failed: {
"code" : 10429,
"ok" : 0,
"errmsg" : "exception: setShardVersion failed host: RemotePC_2:27017 { oldVersion: Timestamp 0|0, oldVersionEpoch: ObjectId
('000000000000000000000000'), errmsg: \"exception: all servers down/unreachable when querying: My-PC:57017,My-PC:57018,My-PC:57019\", code: 8002, ok: 0.0 }"
} at src/mongo/shell/query.js:L180
Почему? Я что-то упускаю?
Что такое «Мой компьютер: 57017, Мой компьютер: 57018, Мой компьютер: 57019» - это случайные ваши серверы конфигурации и возможно ли они недоступны? –
Да, это сервер конфигурации, а 'My-PC' - имя компьютера моего компьютера. Они не недостижимы. Я могу подключиться к ним с помощью «mongo» и в наборах реплик (RemotePC_2: 27017 ...). – Schaliasos
Ах, но вы локальны для «My-PC» - процессы mongod НЕ - поэтому это означает, что вы не можете связаться с «My-PC» с «RemotePC» - по крайней мере, не по имени, которое вы ему дали. –