2010-06-09 7 views

Antwort

98

Die „Verzeichnis, in dem postgresql alle Datenbanken halten“ (und Konfiguration) wird als „Datenverzeichnis“ genannt und entspricht dem, was PostgreSQL nennt (ein wenig verwirrender) eine „database cluster“, die auf verteilten Rechner nicht verwandt ist, es bedeutet nur eine Gruppe von Datenbanken und verwandten Objekten, die von einem PostgreSQL-Server verwaltet werden.

Der Speicherort des Datenverzeichnisses hängt von der Verteilung ab. Wenn Sie von der Quelle zu installieren, ist der Standard /usr/local/pgsql/data:

In Dateisystem Bedingungen werden eine Datenbank Cluster ein einziges Verzeichnis , unter dem alle Daten gespeichert werden. Wir nennen dies das Datenverzeichnis oder Datenbereich. Es liegt ganz bei Ihnen , wo Sie Ihre Daten speichern möchten. Es gibt keine Standardeinstellung, obwohl Orte wie /usr/local/pgsql/data oder /var/lib/pgsql/data populär sind. (ref)

Außerdem eine Instanz eines laufenden PostgreSQL-Server ist mit einem Cluster zugeordnet sind; Der Speicherort seines Datenverzeichnisses kann an den Serverdämon ("postmaster" oder "postgres") in der Befehlszeilenoption -D oder an die Umgebungsvariable PGDATA (normalerweise im Bereich des aktiven Benutzers, normalerweise postgres) übergeben werden. Sie können in der Regel die laufenden Server mit so etwas wie dies sehen:

[[email protected] ~]# ps auxw | grep postgres | grep -- -D 
postgres 1535 0.0 0.1 39768 1584 ?  S May17 0:23 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data 

Beachten Sie, dass es möglich ist, wenn auch nicht sehr häufig, zwei Instanzen des gleichen PostgreSQL-Server ausgeführt werden (gleiche Binärdateien, verschiedene Prozesse), die unterschiedliche dienen " Cluster "(Datenverzeichnisse). Natürlich würde jede Instanz ihren eigenen TCP/IP-Port abhören.

42
/var/lib/postgresql/[version]/data/ 

Zumindest in Gentoo Linux und Ubuntu 14.04 standardmäßig.

Sie können postgresql.conf finden und betrachten param data_directory. Wenn es kommentiert ist, ist das Datenbankverzeichnis dasselbe wie dieses Konfigurationsdateiverzeichnis.

+14

Es wird abhängig von der Verteilung sein, sie alle tun es etwas anders. Wenn Sie eine Verbindung zum System herstellen können, ist die Verwendung von "SHOW data_directory" wahrscheinlich der einfachste Weg. –

+0

@MagnusHagander es ist eine Antwort, y machen Sie diesen Kommentar keine Antwort. Es hat gut für mich funktioniert. – Vishal

+0

in Gnome Ich sehe das gleiche hier '/ var/lib/8.1/postgresql' –

8

auf CentOS 6.5/PostgreSQL 9.3:

Ändern Sie den Wert von "PGDATA=/var/lib/pgsql/data", was auch immer Position, die Sie /etc/init.d/postgresql in der Anfangsskriptdatei möchten.

Denken Sie an chmod 700 und chown postgres:postgres an den neuen Standort, und Sie sind der Chef.

12

Standard in Debian 8.1 und PostgreSQL 9.4 nach der Installation mit dem Paketmanager

ps auxw | grep postgres | grep -- -D 
postgres 17340 0.0 0.5 226700 21756 ?  S 09:50 0:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf 

so scheinbar /var/lib/postgresql/9.4/main apt-get.