сбой при восстановлении дампа с помощью mongodb

#mongodb

#mongodb

Вопрос:

Я сбросил базу данных mongodb с помощью следующей командной строки mongodump

 mongodump -h www.myhost.com -u myusername -p mypassword -d mydb > dump.bson
 

И я пытаюсь восстановить дамп на своем локальном сервере:

 mongorestore -h localhost -d mydb dump.bson  
 

К сожалению, он завершается ошибкой со следующей ошибкой:

 assertion: 10264 invalid object size: 1096040772 
 

Кто-нибудь знает, что может вызвать эту ошибку?
На обоих серверах версия mongo 1.8.3

Спасибо

Комментарии:

1. Являются ли обе 32/64-разрядные системы? Также может помочь сначала восстановить исходную базу данных перед сбросом.

2. локальный сервер имеет 64 бита, но удаленный, я пока не знаю. В противном случае я пробовал repairDatabase(), но ошибка та же…

3. Если это одни и те же биты, то, вероятно, лучше спросить в списке рассылки mongodb. Однажды у меня была эта ошибка в небольшой коллекции, и исправление сделало свое дело.

Ответ №1:

Поскольку первая строка, выводимая из mongodump «включена блокировка уровня БД: 0»

Вам нужно сделать это

хвост -n   2 dump.bson > dump_fix.bson
mongorestore -h localhost -d mydb dump_fix.bson

Комментарии:

1. интересно! Я попробую, спасибо за совет

2. В новой версии mongo (2.1 stable) это должно быть исправлено. См. github.com/mongodb/mongo/pull/204

Ответ №2:

извините за мой английский: P это случилось со мной, когда я экспортировал с помощью mongoexport и попытался импортировать с помощью mongorestore: D моя ошибка! мне пришлось использовать mongoimport. Помните: mongoexport / mongoimport и mongodump / mongorestore

я надеюсь, что это кому-то пригодится: P

Комментарии:

1. Это тоже было моей ошибкой сегодня вечером!

Ответ №3:

Я также столкнулся с этой проблемой. И, наконец, я обнаружил, что эта проблема была вызвана неправильным использованием команды mongodump.

Комментарии:

1. Привет @zwalker. Вероятно, было бы неплохо сообщить нам, какая команда и что вы сделали, чтобы ее исправить 🙂

2. Я бы согласился с @TarynEast.

Ответ №4:

мы используем mongo restore вместо mongodump

Ответ №5:

Это не очень хорошо объясняется нигде, что я нашел, но я нашел решение, которое сработало.

Я загрузил файл .tgz из mongolab, в котором содержались файлы .bson и .json. Я создал папку ~/dump на своем mac. Я скопировал все эти файлы .bson и .json в папку ~/dump, поэтому, например, у меня был ~/dump/users.bson .

Я выполнил эту команду в терминале:

 mongorestore -h 127.0.0.1 -db <the_db_name_on_server_this_backup_is_from>
 

Он импортируется за считанные секунды. Я уверен, что есть другие способы / варианты, но это то, что сработало для меня.