Die Nummern beziehen sich auf die oid des jeweiligen Objekts in dem Systemkatalog.
Die Verzeichnisnamen entsprechen Datenbanken, genauer dem Wert der oid-Spalte in der Tabelle pg_database. Diese Abfrage:
SELECT oid, datname
FROM pg_database
ORDER BY oid
gibt eine komplette Liste zurück.
Innerhalb jedes Verzeichnisses entsprechen Dateinamen der Spalte relfilenode in der Tabelle pg_class:
SELECT relfilenode, oid, relname
FROM pg_class
ORDER BY oid
Die Werte der Spalten relfilenode und oid sind normalerweise identisch. Einige internen Operationen (z.B. REINDEX and CLUSTER) haben Änderung des Dateinamens eines Objekts zur Folge; der geänderte Dateiname wird in relfilenode festgehalten, um den Bezug zwischen Datei und oid wiederherstellen zu können.
Trigger:
Mit psql, wenn Sie wissen, für welche Tabelle der Trigger gilt:
\dt (Name der Tabelle)
Eine einfache SQL-Abfrage wäre:
SELECT pg_catalog.pg_get_triggerdef(t.oid) FROM pg_catalog.pg_trigger t WHERE t.tgname = 'name_des_triggers'
View:
In psql:
\d name_of_view
Mit einer SQL-Abfrage gibt es eine nützliche Sicht im Systemkatalog pg_catalog.pg_view, z.B.:
SELECT definition FROM pg_catalog.pg_views WHERE viewname = 'name_der_sicht'
(Diese Abfrage berücksichtigt den Schemanamen der Funktion nicht).
Funktion:
In psql:
\df+ name_der_funktion
Mit einer SQL-Abfrage
SELECT prosrc FROM pg_catalog.pg_proc WHERE proname = 'name_der_funktion'
(Diese Abfrage berücksichtigt den Schemanamen der Sicht nicht).
Die obigen Abfragen funktionieren in PostgreSQL ab Version 7.3. Sie sollten auch in früheren Versionen funktionieren, die keine Schemata kennen, wenn man den Schemanamen pg_catalog. weglässt.
Dies hängt von Ihrem System und der Installationsweise von PostgreSQL ab. Bei vorkompilierten ("binary") Installationen (.rpm, .deb., FreeBSD ports usw.) wird normalerweise ein Start- / Stopp-Skript automatisch eingefügt. Bei manuellen Installation - etwa durch Kompilieren der Quellen - müssen Sie selber dafür sorgen.
Skripte für manche Systeme befinden sich im Quellverzeichnis contrib/start-scripts.
Ab PostgreSQL 8.0 gibt es den Befehl ALTER DATABASE name OWNER TO new_owner.
Bis einschließlich 7.4 müssen die Systemtabellen direkt bearbeitet werden, z.B.:
UPDATE pg_catalog.pg_database
SET datdba=(SELECT usesysid
FROM pg_shadow
WHERE usename='user_name')
WHERE datname='db_name'
(Bei PostgreSQL-Versionen vor 7.3 lassen Sie pg_catalog. weg).
Eine direkte Bearbeitung der Systemtabellen ist mit Sorgfalt durchzuführen!
Die Sicht (VIEW) des Systemkatalogs pg_catalog.pg_stat_activity enthält Information über alle aktuellen Konnektionen.
In manchen Installationen ist die statistische Auswertung aus Performanzgründen nicht eingeschaltet, wodurch pg_catalog.pg_stat_activity nicht zur Verfügung steht.
Die Dokumentation: http://www.postgresql.org/docs/current/static/monitoring-stats.html (engl.) enthält weitere Information.
PostgreSQL läuft als unpriviligierte Anwendung. Es kann und wird nicht unter dem Nutzer root laufen und kann einen Systemabsturz nicht direkt verursachen.
PostgreSQL - wie jede anspruchsvolle Anwendung - kann intensive Platten- und Netzwerkzuggriffe auslösen, die bei fehlerhafter Hardware zu Systemabstürzen führen könnten.
Falls Sie Abstürze während des Betriebs von PostgreSQL erleben, versuchen Sie, diese auf einem anderen System zu reproduzieren, um die genaue Fehlerursache näher zu lokalisieren.