Projekt mysqlbackup und mysqlrestore

Aus ITA-Wiki
Version vom 24. Oktober 2020, 12:56 Uhr von Administrator (Diskussion | Beiträge) (8 Versionen importiert: Import)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ein Projekt für den Projekttag.

Projektinformationen
Aufwand (Ph) 8
Teamgröße 1
Schwierigkeitsgrad einfach
Ansprechpartner Herr Adams
Projekttag


Kurzbeschreibung

Mit Hilfe zweier Skripte sollen Datenbankinhalte gesichert und wieder hergestellt werden können. Das Sicherungsskript soll zeitgesteuert automatisch eine nächtliche Sicherung durchführen.

Aufgabenbeschreibung

Erstellen Sie zwei Skripte: mysqlbackup.sh und mysqlrestore.sh und binden Sie mysqlbackup.sh in einen CRON-Job ein.

mysqlbackup.sh

  • Aufrufparameter: -u<username> -p<password> -h<hostip> <datenbankname>
  • Rückgabe: Tabelleninhalte in Form von SQL-INSERT und BLOB als hex-Daten an den Standardoutput
  • Funktion: Mit Hilfe der Übergabeparameter wird eine Verbindung zum MySQL-Server aufgebaut und die Tabelleninhalte ausgelesen. Es werden keine DROP- oder CREATE-Statements generiert. Die Daten werden an die Standardausgabe weitergeleitet, wo man sie beispielsweise durch Umleitung in eine Datei speichern kann. Im Falle eines Fehlers soll eine sprechende Fehlerausgabe in englisch erfolgen.

mysqlrestore.sh

  • Aufrufparameter: -u<username> -p<password> -h<hostip> -f<dateiname> <datenbankname>
  • Rückgabe: Statistik über die importierten Daten
  • Funktion: Vor der der eigentlichen Verarbeitung soll ein Hinweis erfolgen, dass alle vorhandenen Tabelleninhalte gelöscht werden, bevor die Wiederherstellung erfolgt. Das Skript soll nur Fortfahren, wenn der Anwender dies mit „j“ oder „J“ akzeptiert. Mit Hilfe der Übergabeparameter wird eine Verbindung zum MySQL-Server aufgebaut und die Tabelleninhalte aus der Datei ausgelesen. Sie werden nach einem TRUNCATE in die Tabellen eingefügt. Im Falle eines Fehlers soll eine sprechende Fehlerausgabe in englisch erfolgen.

CRON-Job

Das Skript mysqlbackup.sh soll in einem CRON-Job verwendet werden. Jede Nacht um 0:05 Uhr wird der Inhalt der Datenbank wurst in die Datei

wurst_<datum><uhrzeit>.sql

gesichert. Datum und Uhrzeit sind im Format „YYYYMMDDhhmmss“ zu verwenden.

Test

  • Reaktion bei falschen Parameterangaben
  • Alle Tabellen werden gesichert
  • Von jeder Tabelle wird der gesamte Inhalt gesichert
  • Beim Wiederherstellen wird von Anwender die Weiterverarbeitung abgelehnt
  • Beim Wiederherstellen wird von Anwender die Weiterverarbeitung befürwortet
  • Alle vorhanden Tabelleninhalte werden gelöscht
  • Alle Tabelleninhalte werden wieder hergestellt

Eigenschaften

mysqlbackup.sh

Eigenschaft Priorität
Verbindungsaufbau zum Server zwingend
Ausgabe der Tabelleninhalte zwingend
BLOB-Daten im hex-Format optional
Sprechende Fehlermeldungen optional
Test zwingend

mysqlrestore.sh

Eigenschaft Priorität
Verbindungsaufbau zum Server zwingend
Test, ob Datei vorhanden zwingend
Rückfrage optional
Löschen der Altdaten zwingend
Wiederherstellen der Daten zwingend
Statistik optional
Test zwingend

CRON-Job

Eigenschaft Priorität
Korrekter Aufruf optional
Korrekter Dateiname optional
Test optional


Dateien/Links