Quantcast
Channel: ULC – Seite 22 – mynethome.de
Viewing all articles
Browse latest Browse all 66

PostgreSQL Backup und Dokumentation

$
0
0

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_darf

echo “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 >$DBASELIST

for 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.


Viewing all articles
Browse latest Browse all 66