@pcdesign

Можно ли бекапить mongodb сразу на удаленный хост?

Например, если в mysql надо забекапить базу и закинуть на удаленный хост будет такая команда

mysqldump <DATABASE_NAME> | gzip -c | ssh user@remotehost "cat > /path/to/some-file.sql.gz"


При этом на локальной машине никаких файлов не создается.
Но с mongodump такой номер не проходит.
Есть ли какие-нибудь варианты?
  • Вопрос задан
  • 249 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
вместо --out укажите --archive, тогда все коллекци в один файл будет складываться.
Если не указать имя архива, будет как раз идти в stdout, где вы его ловите через | ssh

mongodump --archive | gzip -c | ssh user@remotehost "cat > /path/to/dump.gz"

p.s. А еще можно просто подключить удаленный комп через nfs или sshfs
Ответ написан
dyuriev
@dyuriev
A posteriori
Если переписать ваш пример, то вот так (рекомендую gzip на pigz заменить)
mongodump <ANY PARAMS> --out - | gzip -c | ssh user@remotehost "cat > /path/to/dump.gz"

пруф
To send the database dump to standard output, specify "-" instead of a path. Write to standard output if you want process the output before saving it, such as to use gzip to compress the dump. When writing standard output, mongodump does not write the metadata that writes in a .metadata.json file when writing to files directly.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы