0

Я использую mongodump и mongorestore в реплицированном кластере осколков в MongoDB 2.2. чтобы получить резервную копию и восстановить ее.MongoDB. Сохраняйте информацию о закрытых коллекциях при восстановлении

Во-первых, я использую mongodump для создания дампа всей системы, затем бросаю конкретную коллекцию и восстанавливаю ее с помощью mongorestore с выходом mongodump. После этого коллекция верна (данные, которые она содержит, являются правильными, а также индексы), но информация о том, если эта коллекция оштрафована, теряется. Перед тем как отбросить его, коллекция была отложена. Однако после восстановления коллекция больше не была отложена.

Мне было интересно, если существует способ хранения этой информации в резервных копиях. Я думал, что, возможно, информация о сборке хранится в базе данных администратора, но в дампе папка администратора пуста и использование коллекций show для этой базы данных я ничего не получаю. Затем я подумал, что это можно сохранить в метаданных, но это было бы странно, потому что я знаю, что в метаданных информация об индексах сохраняется и индексы правильно восстанавливаются.

Затем я хотел бы знать, можно ли использовать эту информацию вместо mongodump + mongorestore, моментальных снимков файловой системы; или, возможно, все еще использовать mongodump и mongorestore, но останавливая систему или записывая блокировку. Я не думаю, что этот последний вариант может быть причиной, потому что я не выполняю операции записи, а восстанавливаю даже не блокирую его, а просто чтобы дать идеи.

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

Любые идеи?

+1

Информация о sharding хранится в базе данных 'config' в конфигурационных серверах - три выделенных экземпляра' mongod'. – ghik

+0

Я искал коллекцию chunks в базе данных config, и я думаю, что это именно то, что я искал. Тем не менее, я попытался восстановить только эту коллекцию, и это не сработало. Должен ли я восстановить всю базу данных конфигурации для повторной отправки моей коллекции? –

+0

Непонятно, какой процесс вы бы хотели иметь. Вы пытаетесь воссоздать свой осколочный кластер в другом месте? –

ответ

1

Если вы используете mongodump для резервного копирования вашей собранной коллекции, вы уверены, что ее действительно нужно оштрафовать? Обычно закрытые коллекции очень большие, и mongodump занимает слишком много времени, чтобы поддержать его.

Что вы можете сделать резервную копию большого sharded коллекции описан here.

Ключа куска для резервного копирования сервера конфигурации, а также каждый осколок - и сделать это как можно ближе к «одновременно», как это возможно после того, как остановив балансировку. Конфигурация DB мала, поэтому вы должны, вероятно, поддерживать ее очень часто. Лучший способ создать резервную копию больших осколков - это моментальные снимки файлов.

+0

Mongodump не слишком долго для меня, и я не хочу использовать моментальные снимки, потому что им нужны инструменты файловой системы (LVM). Фактически использование базы данных config было полезным, я понял, что он хранит соответствующую информацию для меня в коллекции кусков. Будет ли восстановление базы данных config сделать мою коллекцию, которая была отложена, прежде чем отбросить ее, снова будет отложена? –

+1

нет, если вы не создадите резервную копию каждого осколка в отдельности. mongodump через mongos будет «унифицировать» осколки бит в единый свалку коллекции. Когда вы бросаете коллекцию из вашей ошпаренной БД, вы отбрасываете всю ее информацию, включая информацию о закрытии. –

Смежные вопросы