PostgreSQL
pgadmin3
Zur Administration von PostgreSQL bietet sich GUI Tool pgadmin3 an. Zur Zeit verwende ich auf Ubuntu oneric bereits die precise Version, da erst diese PostgreSQL 9.1 offiziell unterstützt.
Dump und Restore
Eine Hürde bei PostgreSQL ist, dass es für einen DB Dump 3 verschiedene Formate gibt:
- custom
- tar
- plain
Nur die ersten beiden lassen sich mit pg_restore auch wieder in die PostgreSQL Installation einlesen!
Restore plain dump
Der Trick ist in diesem Fall nicht pg_restore (oder das Wiederherstellen aus pgadmin) zu verwenden, da dies nur 'custom' und 'tar' DB Dumps unterstützt. Vielmehr führt die Verwendung von psql zum Ziel:
psql --host localhost --port 5432 --username "nuclos" --dbname "nuclosdb" </home/tpasch/dump/nuclosdb-330-20120103.backup
Wenn man nicht sicher ist, ob sich um einen DB Dump im 'plain' Format handel, kann man versuchen, ihn mit less anzuzeigen. Ein solcher Dump ist nämlich einfach eine Textdatei mit den (postgresql-spezifischen) SQL Befehlen...
Upgrade (z.B. 9.1 -> 9.2)
Für Ubuntu gibt es hier ein PPA mit Postgres 9.2 (Details unter Ubuntu). Der Trick ist, zunächst Postgres 9.2 zu installieren, aber Postgres 9.1 nicht zu deinstallieren. Der Upgrade erfolgt dann wie hierbeschrieben:
su postgres pg_dropcluster --stop 9.2 main pg_upgradecluster 9.1 main
Ist man an Postgres 9.1 nicht mehr interessiert, kann man das entsprechende DEB Packet nun deinstallieren und die alte (gerade migrierte) Datenbank mittels:
pg_dropcluster 9.1 main
löschen.
Um unter Postgres 9.2 jetzt über das Netzwerk Zugriff auf die Datenbank zu erhalten (das ist für Java/JDBC stets notwendig), habe ich die Datei '/etc/postgresql/9.2/main/pg_hba.conf' wie folgt angepasst:
local all postgres ident host all postgres 127.0.0.1 255.255.255.255 md5 host all nuclos 127.0.0.1 255.255.255.255 md5
Das Format von pg_hba.conf wird hier erklärt.
Weitere Tipps zur Einrichtung von Postgres unter Linux finden sich hier.
Scripts zur Automatisierung
Scriptbeispiele, um das Sichern, Löschen, Initialisieren und Wiederherstellen von Postgresdatenbanken zu automatisieren finden sich hier.
Performance
- Linux Kernel Optimierung für PostgreSQL (noch mehr Details)
Oracle DB
Constraints
Weitere Infomationen zu einem Constraint
Hat man den Namen eines Constraint, so erhält man tiefergehende Informationen mittels der folgenden SQL Abfrage:
select * from user_constraints where constraint_name = 'XR_T_EO_DATENPAKETTYP___5CCMVM';
Performance
Performance Tuning
Siehe auch: NUCLOS-2924 Oracle Performance
DB Locks
- Oracle Locking Survival Guide
- Script für einen Baum des lock wait-for graphs
- Wann einsteht bei einem DML Statement ein Lock? (Oracle Dokumentation)
- Oracle TX row lock contention (mit Analyse SQL)
- Deadlocks (I)
- Deadlocks (II)
- Grundlagen Konsistenz (Oracle Dokumentation)
Nuclos
Alle Passwörter zurücksetzen
update <schema>.t_md_user set strpassword = null
Nuclos User anlegen (falls User Tabelle komplett leer)
insert into <schema>.t_md_user (struser, struid, intversion, blnsuperuser, strfirstname, strlastname, datcreated, strcreated, datchanged, strchanged) values ('nuclos', 'kskjsiunzaoahng', 1, true, 'the', 'master', '2014-06-01', 'nuclos', '2014-06-01', 'nuclos')