Da ich ja eigentlich fürs Studium arbeiten müsste, finden sich natürlich zur Gedankenzerstreuung immer wieder Dinge, die man mal eben nebenbei erledigen kann. So kam mir meine PostgreSQL Datenbank zwischen die Finger, die bis jetzt ohne Backup lief. Das ist natürlich kein Zustand, gerade da ich so im Frühjahr bei einem Festplattencrash fast die darin enthaltenen Daten verloren hätte. Es musste dringend gehandelt werden. Also habe ich mal kurz ein Backupskript für PostgreSQL geschrieben:
#!/bin/sh
export PGPASSWORD=geheim
export PGUSER=benutzer_der_alles_darfecho “Backup Postgres-Databases:”
echo ” removing old postgres backups”
rm -rf /var/backup.d/pgsql
echo ” re-creating postgresql backup dir”
mkdir -p /var/backup.d/pgsql# Wohin sollen die ganzen Backups geschrieben werden?
cd /var/backup.d/pgsql# Bereinigte Liste der Datenbanken erzeugen
DBASELIST=`mktemp`
psql -t -h localhost -l | awk ‘{print $1}’ | sort >$DBASELISTfor db in `cat $DBASELIST`; do
echo “Database: $db save”;
pg_dump -D -h localhost $db | gzip > $db.sql.gz
done;
Vielleicht kann es jemand gebrauchen
Daneben bin ich auch auf ein Tool gestoßen, mit dem man sich aus vorhandenen Datenbanken Dokumentation in Form von Diagrammen, Beschreibene HTML-Dateien, etc erstellenlassen kann: PostgreSQL Autodoc.
Auf den Befehl
postgresql_autodoc -d “DBName” -u markus –password
folgt die Ausgabe
Producing DBName.dia from /usr/share/postgresql-autodoc/postgresql_autodoc/dia.tmpl
Producing DBName.dot from /usr/share/postgresql-autodoc/postgresql_autodoc/dot.tmpl
Producing DBName.html from /usr/share/postgresql-autodoc/postgresql_autodoc/html.tmpl
Producing DBName.neato from /usr/share/postgresql-autodoc/postgresql_autodoc/neato.tmpl
Producing DBName.xml from /usr/share/postgresql-autodoc/postgresql_autodoc/xml.tmpl
Producing DBName.zigzag.dia from /usr/share/postgresql-autodoc/postgresql_autodoc/zigzag.dia.tmpl
und die jeweiligen Dateien sind enthalten. Dabei kann man durch Templates auch den Export in ein beliebiges anderes Format automatisieren.
Aus der .dot Datei kann man mit GraphViz und dem Befehl
dot -Tpng -o DBDiagram.png DBName.dot
Auch die angesprochenen übersichtlichen Diagramme erstellen.
Sehr praktisch, gerade bei Projekten die man schon eine Weile von-Zeit-zu-Zeit mal weiterentwickelt oder falls man sich zu einer Fremdanwendung mal die Datenbank veranschaulichen möchte.