Тема: Node.JS + MongoDB
Показать сообщение отдельно
Старый 03.10.2013, 18:41   #35
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Node.JS + MongoDB

Backup?

Есть трои принятых способа бэкапить бд, первый будет используя mongoexport/mongoimport второй mongodump/mongorestore, и снапшот системы (это для облаков).

mongoexport/mongoimport
Оперирует JSON данными, и предусмотрен к бэкапу только данных и не содержит никаких мета данных. Также т.к. данные в JSON формате, а он ненмого будет побольше чем BSON, нужно больше места для его хранения.
Плюс при импорте, подразумевается что у тебя уже есть сама база данных с коллекциями и всеми индексами.
Думаю это удобно для быстрого копирования блока данных между базами, но не совсем для бэкапов.

mongodump/mongorestore
Этот способ реально хорошо справляется с бэкапами, делает полную копию данных самих коллекций и всей базы (если на всю делаешь), хранит данные в BSON (что оптимальнее), а также хранит мета данные о коллекциях, индексах и других плюшках для полной копии восстановления.

Snapshot of System
Этот подход используется в облаках, когда ты можешь создать полную копию текущей системы. Такие снапшоты обычно весьма весомы, т.к. бэкапят всё что есть на системе а не только бд. Если у тебя большая бд и много ресурсов на системе - тебе такой вариант не подойдёт.


Я использую mongodump/mongorestore, с ним можно дампить как всю бд, так и отдельные базы данных, так и более детально - отдельные коллекции.
Учти что при mongorestore, если есть уже бд и коллекция - то данные добавяться паралельно к прошлым, так что если ресторишь, то удаляй коллекцию или всю бд (если всю бд ресторишь).

Я написал скрипт который запускается каждый день в 3 ночи, используя node.js, он используя child_process вызывает command line для mongodump, который в свою очередь создаёт папку. Далее я это дело tar'ю, и заливаю там же скриптом на S3 Bucket, где стоит правило - автономно удалять файлы старее 1го месяца.

Всё автономно, и никакой парки, плюс бэкапяться у меня две базы данных за один подход как два разные tar'а.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (03.10.2013)