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?
Automatisches Backup und Restore einer einzelnen Datenbank
Moderatoren: Raffenberg, A. Schüller, Pfotenhauer
-
T.Hoffmann
- Beiträge: 3
- Registriert: Montag 31. März 2025, 15:50
- Schulform: Förderschule
-
Hauke Hayen
- Fachberater*in
- Beiträge: 967
- Registriert: Montag 1. Oktober 2018, 17:16
- Schulform: Gymnasium
Re: Automatisches Backup und Restore einer einzelnen Datenbank
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?
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
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:
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.
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"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
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.
Mir läuft das Script im Rahmen eines Borg-Backups, daher ist der bzr-Teil auskommentiert.
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"
"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
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?
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
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 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