Poglavje 8 · 8.2
Pravilno varnostno kopiranje podatkovnih zbirk in nosilcev Docker
Podatkovna zbirka, ki teče, nenehno piše v svoje datoteke. Če te datoteke kopirate med pisanjem, je lahko Vaša varnostna kopija poškodovana. Zato najprej naredite dump: urejeno kopijo podatkovne zbirke v eni datoteki.
Kje so Vaši podatki?
| Kaj | Kje |
|---|---|
Vaše datoteke compose, Caddyfile, .env in mape, kot je vw-data | /srv/diensten |
Nosilci Docker, kot sta uptime-kuma in n8n-data | /var/lib/docker/volumes/diensten_<naam>/_data |
| Dumpi podatkovnih zbirk | /var/backups/db |
| Nastavitve strežnika | /etc |
Docker pred ime nosilca postavi ime Vaše mape: v /srv/diensten tako uptime-kuma postane diensten_uptime-kuma. Prava imena si oglejte z sudo docker volume ls.
Pripravljalni skript
To shranite v /usr/local/sbin/voor-backup.sh (chmod 700). Zažene ga skript za varnostno kopiranje iz članka Varnostne kopije z restic na drugo lokacijo.
#!/bin/sh
set -e
mkdir -p /var/backups/db
chmod 700 /var/backups/db
cd /srv/diensten
# WordPress-database (MariaDB) als dump
docker compose exec -T wp-db sh -c \
'mariadb-dump --single-transaction -u"$MARIADB_USER" -p"$MARIADB_PASSWORD" "$MARIADB_DATABASE"' \
> /var/backups/db/wordpress.sql
Če ne uporabljate WordPressa, ta del izpustite. Če imate podatkovno zbirko zunaj Dockerja, postopek poteka enako z mariadb-dump --single-transaction ali pg_dump.
Aplikacije s podatkovno zbirko SQLite
Vaultwarden, Uptime Kuma in n8n svoje podatke privzeto hranijo v datoteki SQLite v svojem nosilcu ali mapi. Najpreprosteje in najvarneje je, da jih med varnostnim kopiranjem za kratek čas ustavite. To naredi skript za varnostno kopiranje iz članka Varnostne kopije z restic na drugo lokacijo z docker compose stop in nato docker compose start. To običajno traja le kratek čas; ponoči tega nihče ne opazi. Če ne želite prekinitve, upoštevajte navodila za varnostno kopiranje same aplikacije, na primer tista v wikiju Vaultwardna.
Mapo same podatkovne zbirke (tukaj diensten_wp-db) izpustite: zanjo imate dump.
Obnovitev aplikacije
- Ustavite aplikacijo:
sudo docker compose stop vaultwarden. - Obnovite mapo:
sudo restic restore latest --target /tmp/terug --include /srv/diensten/vw-data(s spremenljivkami iz članka Varnostne kopije z restic na drugo lokacijo). - Mapo zamenjajte z obnovljeno različico in aplikacijo znova zaženite.
- Podatkovno zbirko obnovite tako, da uvozite dump, na primer
docker compose exec -T wp-db sh -c 'mariadb -u"$MARIADB_USER" -p"$MARIADB_PASSWORD" "$MARIADB_DATABASE"' < wordpress.sql.
