Luku 8 · 8.2
Tietokantojen ja Docker-volyymien varmuuskopiointi oikein
Käynnissä oleva tietokanta kirjoittaa jatkuvasti tiedostoihinsa. Jos kopioit tiedostot kesken kirjoituksen, varmuuskopio voi olla rikki. Siksi teet ensin dumpin: siistin kopion tietokannasta yhteen tiedostoon.
Missä tietosi ovat?
| Mitä | Missä |
|---|---|
Compose-tiedostot, Caddyfile, .env ja kansiot, kuten vw-data | /srv/diensten |
Docker-volyymit, kuten uptime-kuma ja n8n-data | /var/lib/docker/volumes/diensten_<naam>/_data |
| Tietokantadumpit | /var/backups/db |
| Palvelimen asetukset | /etc |
Docker lisää kansiosi nimen volyymin nimen eteen: kansiossa /srv/diensten volyymista uptime-kuma tulee siis diensten_uptime-kuma. Näet todelliset nimet komennolla sudo docker volume ls.
Valmistelukomentosarja
Tallenna tämä tiedostoon /usr/local/sbin/voor-backup.sh (chmod 700). Sen käynnistää varmuuskopiointikomentosarja artikkelista Varmuuskopiot resticillä toiseen paikkaan.
#!/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
Jos et käytä WordPressiä, jätä se osa pois. Jos sinulla on tietokanta Dockerin ulkopuolella, toimi samalla tavalla komennolla mariadb-dump --single-transaction tai pg_dump.
Sovellukset, joissa on SQLite-tietokanta
Vaultwarden, Uptime Kuma ja n8n tallentavat tietonsa oletuksena SQLite-tiedostoon volyymissaan tai kansiossaan. Yksinkertaisinta ja turvallisinta on pysäyttää ne hetkeksi varmuuskopioinnin ajaksi. Artikkelin Varmuuskopiot resticillä toiseen paikkaan varmuuskopiointikomentosarja tekee sen komennolla docker compose stop ja sen jälkeen docker compose start. Se kestää yleensä vain hetken, eikä kukaan huomaa sitä yöllä. Jos et halua katkosta, noudata sovelluksen omia varmuuskopiointiohjeita, kuten Vaultwardenin wikin ohjeita.
Itse tietokannan kansio (tässä diensten_wp-db) ohitetaan, koska sitä varten sinulla on dump.
Sovelluksen palauttaminen
- Pysäytä sovellus:
sudo docker compose stop vaultwarden. - Palauta kansio:
sudo restic restore latest --target /tmp/terug --include /srv/diensten/vw-data(artikkelin Varmuuskopiot resticillä toiseen paikkaan muuttujilla). - Korvaa kansio palautetulla versiolla ja käynnistä sovellus uudelleen.
- Tietokanta palautetaan lukemalla dump sisään, esimerkiksi
docker compose exec -T wp-db sh -c 'mariadb -u"$MARIADB_USER" -p"$MARIADB_PASSWORD" "$MARIADB_DATABASE"' < wordpress.sql.
