Peatükk 8 · 8.2
Andmebaaside ja Dockeri köidete õige varundamine
Töötav andmebaas kirjutab pidevalt oma failidesse. Kui kopeerid neid faile poole töö pealt, võib varukoopia olla katki. Seepärast tee kõigepealt dump: andmebaasi korralik koopia ühes failis.
Kus su andmed asuvad?
| Mis | Kus |
|---|---|
Sinu compose-failid, Caddyfile, .env ja kaustad nagu vw-data | /srv/diensten |
Dockeri köited, nagu uptime-kuma ja n8n-data | /var/lib/docker/volumes/diensten_<naam>/_data |
| Andmebaaside dumpid | /var/backups/db |
| Serveri seaded | /etc |
Docker lisab köite nime ette sinu kausta nime: kaustas /srv/diensten saab uptime-kuma nimeks seega diensten_uptime-kuma. Tegelikud nimed näed käsuga sudo docker volume ls.
Ettevalmistusskript
Pane see faili /usr/local/sbin/voor-backup.sh (chmod 700). Selle käivitab varundusskript artiklist Varukoopiad restic abil teise asukohta.
#!/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
Kui sa WordPressi ei kasuta, jäta see osa välja. Kui sul on andmebaas väljaspool Dockerit, käib see samamoodi käsuga mariadb-dump --single-transaction või pg_dump.
SQLite-andmebaasiga rakendused
Vaultwarden, Uptime Kuma ja n8n hoiavad oma andmeid vaikimisi SQLite-failis oma köites või kaustas. Kõige lihtsam ja turvalisem on peatada need varundamise ajaks. Seda teeb varundusskript artiklist Varukoopiad restic abil teise asukohta käsuga docker compose stop ja seejärel docker compose start. Tavaliselt võtab see vaid hetke; öösel ei märka seda keegi. Kui katkestust ei soovi, järgi rakenduse enda varundusjuhiseid, näiteks Vaultwardeni wikis olevaid.
Andmebaasi enda kausta (siin diensten_wp-db) jäta vahele: selle jaoks on sul dump.
Rakenduse taastamine
- Peata rakendus:
sudo docker compose stop vaultwarden. - Too kaust tagasi:
sudo restic restore latest --target /tmp/terug --include /srv/diensten/vw-data(muutujatega artiklist Varukoopiad restic abil teise asukohta). - Asenda kaust taastatud versiooniga ja käivita rakendus uuesti.
- Andmebaasi taastamiseks loe dump sisse, näiteks
docker compose exec -T wp-db sh -c 'mariadb -u"$MARIADB_USER" -p"$MARIADB_PASSWORD" "$MARIADB_DATABASE"' < wordpress.sql.
