Задать вопрос

Как объединить коллекции(1Гб в день) с серверов сбора данных на главный сервер(бэкап)?

Слабые сервера VPS преобразуют собранные котировки, накапливая у себя до ~1Гб.
Как лучше переносить временную инфу на домашний диск, где размер жёсткого диска неограничен?
Дома комп не может работать круглосуточно.
Планировал поступить так:
VPS:
1) собирает котировки в монгоДБ
2) раз в день перекидывает на главный сервер
3) очищает(удаляет?) базу монгоДБ.
Домашний комп:
1) Принимает с 18ч до 24ч накопленное от VPS и объединяет в коллекцию. (Таким образом размер базы будет увеличиваться в среднем на 1Г в день.)
2) В дальнейшем база будет разделяться на шарды.
  • Вопрос задан
  • 2436 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 1
@lega
Перекачать данные можно через mongodump -> mongorestore, при этом на конечном сервере данные добавятся (при условии что не будет коллизий по _id). Так же можно попробовать команду db.copyDatabase.
Через ssh можно сделать тунель, и делать дамп сразу на локальную машину.

Хотя для автоматического сбора я бы сделал авторизацию по ключам и положил скрипт в cron, что-б он сам авторизовался и делал dump/restore. По пути можно сделать быстрое сжатие через gzip, что-б данные быстрее перекачались.

Например что-то типа этого, делает удаленно дамп, жмет, перекачивает на локальную машину, распаковывает и делает restore.
ssh -p 1022 server "cd /tmp/; rm -rf /tmp/dump.tbz2 /tmp/dump/; mongodump -d database; tar -cjf dump.tbz2 dump"
	rm -rf /tmp/dump/
	scp -P 1022 server:/tmp/dump.tbz2 /tmp/
	cd /tmp/; tar -xjf dump.tbz2; mongorestore

Само сжатие можно делать "на ходу" без создания файла.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zmeyjr
@zmeyjr
Дисклеймер в профиле.
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы