2013-05-07 1 views
2

Есть 6 каталогов, каждый из которых содержит около 1 ТБ данных, все они теперь принадлежат к базе данных «test» , и я хочу группировать их в кластере. Я построил Shardserver и Configserver, но столкнулся с проблемой при добавлении 2-ой осколка к кластеру:MongoDB addshard: не удалось добавить второй осколок

db.runCommand({addshard:localhost:27017}); 
db.runCommand({addshard:localhost:27027}); 

«ERRMSG»: «не могу добавить осколка Localhost: 27027, так как локальная база данных«тест 'существует в другой shard0000: локальный хосте: 27017"

капает „тестовую базу данных“ может решить эту проблему, но это не то, что я хочу.

Как объединить 6 осколков (все они имеют базу данных «test», принадлежащую одной логической базе данных) вместе?

+0

вы не можете сделать это, добавив существующие «части» БД. Лучшее, что вы можете сделать, это mongodump-содержимое ваших 2-го и 3-го DB-серверов и mongorestore их в вашу закрытую DB через mongos. –

+0

, так как имеется около 6 ТБ данных, этот метод может быть слишком медленным. есть ли другие решения? На самом деле все, что я хочу, это поиск всего БД в одном запросе предложения. thx – marblu

+0

нет другого способа - в основном у вас есть отдельные базы данных прямо сейчас - нет возможности объединить их, кроме ... слияния их с помощью копии данных. –

ответ

0

Использовать mongodump данные на втором осколке, затем отбросить эту базу данных и добавитьShard. После этого вы можете импортировать данные сброса с помощью mongorestore