Простой бекап монги

40 views
Skip to first unread message

plat...@gmail.com

unread,
Sep 17, 2015, 10:25:06 AM9/17/15
to MongoDB по-русски
Доброго времени суток!

Только начал изучать монгу, столкнулся со следующей ситуацией:
Есть сервер с монго 3.0.6, база base1, размером 0.469GB
Сделал бекап базы командой
nice -n 18 mongodump --db base1 -o /mnt/synology/base1
Он успешно получился, размер калога с дампом 1,5G. 
В тестовых целях скопировал его на другой сервер, где установлена монго той же версии.
Разворачивал так:
mongorestore --db base1 /tmp/base1/base1
Рестор выполнился, содержимое базы совпадает с основной на момент дампа, но после рестора получаю размер базы 3.952GB на новом сервере.
Больше в 8 раз! Почему? Как получить на целевом сервере тот же размер?
Предполагается что останавливать базу главном сервере на время бекапа нельзя.

Dmitry Chusovitin

unread,
Sep 18, 2015, 8:41:31 AM9/18/15
to MongoDB по-русски
А каким способом определялся размер базы? Мне кажется считали размер директории с данными монги (/var/lib/mongo). В ней хранится еще журнал транзакций, который как раз и будет большим, после импорта из бекапа.


Выполнить команду на обоих серверах и сравнить значения. (*Size поля).

use base1
db
.stats(1024 * 1024) // размер в мегабайтах


Если базу нельзя останавливать и хочется соблюсти целостность данных, то можно перенести данные, создав replica set из старого и нового сервера, а старый потом выключить.


Вот так примерно изменяется размер /var/lib/mongo (синяя линия). Журнал, экстенты и т.п. Хотя в основном записи только добавляются, т.е. увеличивается кол-во объектов.




четверг, 17 сентября 2015 г., 17:25:06 UTC+3 пользователь plat...@gmail.com написал:

plat...@gmail.com

unread,
Sep 18, 2015, 10:45:02 AM9/18/15
to MongoDB по-русски
Нет, я смотрел вывод команды show dbs, а не размер директории

На боевом сервере:
"dataSize" : 1436.4095811843872,
"storageSize" : 442.88671875,
На втором, где разворачивался бекап:
"dataSize" : 2091.3521728515625,
"storageSize" : 2475.71875,
Это из-за журнала транзакций?


пятница, 18 сентября 2015 г., 15:41:31 UTC+3 пользователь Dmitry Chusovitin написал:

Dmitry Chusovitin

unread,
Sep 18, 2015, 12:34:42 PM9/18/15
to mongodb-us...@googlegroups.com
Тогда вероятнее размер на новом сервере различается из-за "Power of 2 Sized Allocations", "padding factor". Монга, чтобы избежать перемещение записи резервирует дополнительное место на диске во избежание перемещения записи на диске при апдейте. На Вашем боевом, изначально скорее стояла более старая версия (< 3.0.6, модет 2.x). Эти параметры подвергались изменению.

Еще в stats, срани numExtents, fileSize, nsSizeMb и dataFileVersion (из-за версии хранилища как раз размер занимаемого места может различаться).
В добавок проверить настройки smallfiles, noprealloc (в конфигурационном файле, если есть), они могут сильно влиять на размер.

Так же можно запустить комманду compact, которая дефрагментирует хранище (http://docs.mongodb.org/master/reference/command/compact/). И сравнить сколько будет после.
И статья, которая более-менее описывает особенности файлового хранилища (http://docs.mongodb.org/manual/core/storage/).




18 сентября 2015 г., 17:45 пользователь <plat...@gmail.com> написал:

--
You received this message because you are subscribed to a topic in the Google Groups "MongoDB по-русски" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mongodb-user-russian/35RCUNzf_oE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mongodb-user-rus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Kind regards,
Dmitry Chusovitin

skype dchusovitin | phone +7 968 871 07 42

plat...@gmail.com

unread,
Sep 22, 2015, 10:35:43 AM9/22/15
to MongoDB по-русски
Большое спасибо.

пятница, 18 сентября 2015 г., 19:34:42 UTC+3 пользователь Dmitry Chusovitin написал:
To unsubscribe from this group and all its topics, send an email to mongodb-user-russian+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages