Automatisches Backup und Restore einer einzelnen Datenbank

Diskussionen rund um allgemeine Themen die alle Schulformen betreffen.

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

Antworten
T.Hoffmann
Beiträge: 3
Registriert: Montag 31. März 2025, 15:50
Schulform: Förderschule

Automatisches Backup und Restore einer einzelnen Datenbank

Beitrag von T.Hoffmann »

Hallo zusammen,

gibt es jemand von Ihnen, der mehrere Schulen-Datenbanken auf Schild 3 hat und dafür ein automatisiertes Backup laufen hat und zwar in der Form, daß die Datenbank einer einzelnen Schule daraus wiederhergestellt werden kann?

Könnten Sie ein solches Skript (Backup und Restore) zur Verfügung stellen?
Hauke Hayen
Fachberater*in
Beiträge: 967
Registriert: Montag 1. Oktober 2018, 17:16
Schulform: Gymnasium

Re: Automatisches Backup und Restore einer einzelnen Datenbank

Beitrag von Hauke Hayen »

Das geht ziemlich einfach über Ansprechen der Api.
Für linux-Server kann ich Ihnen nachher ein einfaches Script mit einem curl-Befehl schicken.
Oder haben Sie einen Win-Server?
Viele Grüße, H. Hayen
m.hagemeier
Beiträge: 1
Registriert: Montag 2. Dezember 2024, 14:24
Wohnort: Essen
Schulform: Schul-IT
Motto: Dafür bin ich nicht zuständig, das macht der Kollege

Re: Automatisches Backup und Restore einer einzelnen Datenbank

Beitrag von m.hagemeier »

Hallo,
wir machen das auch mit Windows-Servern, jeweils mehrere Schulen auf einem SVWS Server. Ich lasse jeden Abend per Scheduler eine Batch laufen, die in etwa so aussieht:

Code: Alles auswählen

For /f "tokens=1-2 delims=/:" %%a in ("%TIME: =0%") do (set mytime=%%a%%b)

curl --user "root:PASSWORT" --insecure -X "GET" "https://SERVER:443/api/schema/export/DATENBANK/sqlite" -H "accept: application/vnd.sqlite3" --output c:\schild3-backup\DATENBANK.sqlite
"C:\Program Files\7-Zip\7z.exe" a -tzip C:\schild3-backup\DATENBANK.zip C:\schild3-backup\DATENBANK.sqlite
del "C:\schild3-backup\DATENBANK.sqlite"
move C:\schild3-backup\DATENBANK.zip C:\Schild3-Backup\SCHULE\DATENBANK_%date%_%mytime%.zip

forfiles /p "C:\Schild3-Backup\SCHULE" /s /m *.* /D -14 /C "cmd /c del @path"
Das Script holt sich eine Datenbank, komprimiert diese in eine ZIP-Datei und verschiebt diese Datei mit Zeitstempel in einen Schulordner. Nachteil ist natürlich, dass man jede Datenbank von Hand in das Skript eintragen muss.

Wir arbeiten gerade an einem Powershellscript, das alle Server in einem Array abfragt und die Datenbanken automatisch sichert und packt. Wenn das fertig und getestet ist stellen wir das gerne zur Verfügung.
kroerig
Beiträge: 404
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Automatisches Backup und Restore einer einzelnen Datenbank

Beitrag von kroerig »

Warum so kompliziert über die langsame API, wenn man Zugriff auf den MariaDB Server hat.

Ich sichere unter Linux mit einem kleinen Script alle Datenbanken auf einen Rutsch. Wenn man zusätzlich bzr installiert hat man eine depulizierte Versionierung.

Code: Alles auswählen

#!/bin/bash
# TARGET: Backup-Ziel
# IGNORE: Liste zu ignorierender Datenbanken (durch | getrennt)
# CONF: MySQL Config-Datei, welche die Zugangsdaten enthaelt
TARGET=/opt/mysql
IGNORE="information_schema|performance_schema"

CONF=/etc/mysql/debian.cnf
if [ ! -r $CONF ]; then /usr/bin/logger "$0 - auf $CONF konnte nicht zugegriffen werden"; exit 1; fi
if [ ! -d $TARGET ] || [ ! -w $TARGET ]; then /usr/bin/logger "$0 - Backup-Verzeichnis nicht beschreibbar"; exit 1; fi

DBS="$(/usr/bin/mysql --defaults-extra-file=$CONF -Bse 'show databases' | /bin/grep -Ev $IGNORE)"
NOW=$(date +"%Y-%m-%d")

for DB in $DBS; do
    /usr/bin/mysqldump --defaults-extra-file=$CONF --skip-extended-insert --skip-comments $DB > $TARGET/$DB.sql
done

#if [ -x /usr/bin/bzr ] && [ -d ${TARGET}/.bzr/branch ]; then
#  cd $TARGET
#  /usr/bin/bzr add .
#  /usr/bin/bzr commit -m "$NOW"
#else
#  /usr/bin/logger "$0 - bzr nicht verfuegbar oder Backup-Ziel nicht unter Versionskontrolle"
#fi

#/usr/bin/logger "$0 - Backup von $NOW erfolgreich durchgefuehrt"
Mir läuft das Script im Rahmen eines Borg-Backups, daher ist der bzr-Teil auskommentiert.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
T.Hoffmann
Beiträge: 3
Registriert: Montag 31. März 2025, 15:50
Schulform: Förderschule

Re: Automatisches Backup und Restore einer einzelnen Datenbank

Beitrag von T.Hoffmann »

Leider hat mich das Forum nicht über die Antworten informiert, obwohl es in meinen Benachrichtigungseinstellungen anders eingestellt ist.
Wir verwenden einen Windows-Server. Ich werde mir die Skripts anschauen. Wie geht dann die Rücksicherung einer einzelnen Schule?
kroerig
Beiträge: 404
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Automatisches Backup und Restore einer einzelnen Datenbank

Beitrag von kroerig »

Unter Windows nutzte ich hier dieses Script: https://github.com/michael-milette/batch/ mit ein paar kleinen Modifikationen, die der Umgebung geschuldet sind.

Der Restore erfolgt dann einfach durch ein "mysql < SQLDatei".
Das SQL Script löscht dann die Tabellen im vorhandenen Schema/ Datenbank und legt sie neu an.

Wenn man das Script mehrfach am Tag ausführt und die Dateien in einem dedupliziertem Verzeichnis ablegt, dann kann man platzsparend sehr viele Backups ablegen.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
Antworten

Zurück zu „Allgemeines“