Eigen database back-up
Je kunt zelf eventueel een back-up maken naar je eigen server. Hieronder een script ter inspiratie van een andere klant.
Credentials aanvragen
Wil je hier gebruik van maken, neem dan even contact op met support via support@inserve.nl.
Op een server waarop zowel mariadb-dump (onderdeel van mariadb-client) als pigz (de multithreaded variant van gzip) zijn geïnstalleerd, draait een eenvoudig script voor het maken van dagelijkse database dumps.
Script:
make-dump.sh
#!/bin/sh
set -ex
export $(xargs < ./.env)
DATE=$(date --iso-8601)
DESTINATION=$DB_DUMP_FOLDER/$DATE-$DB_NAME.gz
/usr/bin/mariadb-dump --single-transaction -h"$DB_HOST" "$DB_NAME" | pigz > $DESTINATION
# Verwijder backups ouder dan 5 dagen
find $DB_DUMP_FOLDER/ -maxdepth 1 -type f -mtime +5 -exec rm -f {} \;
# Update symlink naar meest recente dump
cd $DB_DUMP_FOLDER
rm -f latest.tar.gz
ln -s $DATE-$DB_NAME.gz latest.tar.gzConfiguratiebestand
.env
In dezelfde directory als het script staat een .env bestand met de volgende inhoud:
DB_DUMP_FOLDER=./dumps
DB_HOST=bi.inserve.nl
DB_NAME=<inserve_databasenaam>Database credentials
In de home-directory van de gebruiker waaronder het script draait, staat een bestand genaamd .my.cnf:
user=<database_gebruikersnaam>
password=<database_wachtwoord>Bijvoorbeeld:
/home/<gebruiker>/.my.cnfHierdoor kunnen database credentials veilig worden gebruikt zonder ze direct in het script op te nemen.
Cronjob
Het script wordt dagelijks uitgevoerd via cron:
43 1 * * * /home/<gebruiker>/make-dump.shDit voorbeeld start de backup iedere nacht om 01:43.
Backups opnemen in bestaand backupschema
De map:
/home/<gebruiker>/dumpswordt vervolgens meegenomen in het reguliere backupschema. Hierdoor worden zowel de dagelijkse dumps als de latest.tar.gz symlink automatisch extern gebackupt.