Skip to main content

Backup i restore bazy danych - mongodump + mongorestore

Uwaga: to narzędzia wiersza poleceń hosta, nie komendy wykonywane w powłoce mongosh. Przy strumieniowaniu binarnego archiwum przez stdout nie należy dodawać -t do docker exec — alokacja TTY uszkadza strumień gzip.

Nazwa kontenera może być także ID kontenera

db=NAZWABAZY; sudo docker exec NAZWAKONTENERA sh -c "exec mongodump --db $db --gzip --archive" > "backup_${db}_$(date +%Y-%m-%d).gz"

image.pngBaremetal — narzędzia zainstalowane na hoście:

db=NazwaBazy; mongodump --db "$db" --gzip --archive > "backup_${db}_$(date +%Y-%m-%d).gz"

Docker — narzędzia w kontenerze, redirect po stronie hosta:

db=NAZWABAZY; docker exec NAZWAKONTENERA sh -c "exec mongodump --db $db --gzip --archive" > "backup_${db}_$(date +%Y-%m-%d).gz"

Odtworzenie danych z takiego archiwum (wariant dockerowy; baremetal analogicznie bez docker exec):

docker exec -i NAZWAKONTENERA sh -c "exec mongorestore --gzip --archive" < "NazwaBackupu.gz"

Screen: log z udanego mongodump.