# Backup i restore bazy danych - mongodump + mongorestore

<p class="callout warning">**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.</p>

<p class="callout info">Nazwa kontenera może być także ID kontenera</p>

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

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2026-06/scaled-1680-/sDXimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2026-06/sDXimage.png)**Baremetal** — narzędzia zainstalowane na hoście:

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

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

```bash
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`):

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

<p class="callout info">**Screen:** log z udanego `mongodump`.</p>