482 Stimmen

Wo speichert PostgreSQL die Datenbank?

Wo werden die Dateien für eine PostgreSQL-Datenbank gespeichert?

4 Stimmen

48 Stimmen

sudo -u postgres psql -c "show data_directory;" zeigt die aktuellen Speicherorte auf einer Standard-PostgreSQL-Installation an.

24voto

Saad Saadi Punkte 991

Alle haben schon geantwortet, aber nur für die letzten Updates. Wenn Sie wissen wollen, wo sich alle Konfigurationsdateien befinden, führen Sie diesen Befehl in der Shell aus

SELECT name, setting FROM pg_settings WHERE category = 'File Locations';

20voto

picmate 涅 Punkte 3563

Postgres speichert Daten in Dateien in seinem Datenverzeichnis. Führen Sie die folgenden Schritte aus, um zu einer Datenbank und ihren Dateien zu gelangen:

Die Datenbank, die einer Postgresql-Tabellendatei entspricht, ist ein Verzeichnis. Der Ort des gesamten Datenverzeichnisses kann durch Ausführen von SHOW data_directory . in einem UNIX-ähnlichen Betriebssystem (z.B.: Mac) /Library/PostgreSQL/9.4/data Gehen Sie in den Basisordner im Datenverzeichnis, der alle Datenbankordner enthält: /Library/PostgreSQL/9.4/data/base

Ermitteln Sie den Namen des Datenbankordners durch Ausführen von (Gibt eine ganze Zahl an. Dies ist der Name des Datenbankordners):

SELECT oid from pg_database WHERE datname = <database_name>;

Ermitteln Sie den Tabellendateinamen durch Ausführen von (Gibt eine ganze Zahl zurück, die den Dateinamen darstellt):

SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

Dies ist eine Binärdatei. Dateidetails wie Größe und Erstellungsdatum können wie üblich abgerufen werden. Für mehr Informationen diesen SO-Thread lesen

20voto

xagg Punkte 510

Ich wette, dass Sie diese Frage stellen, weil Sie versucht haben pg_ctl start und erhielt den folgenden Fehler:

pg_ctl: kein Datenbankverzeichnis angegeben und Umgebungsvariable PGDATA nicht gesetzt

Mit anderen Worten, Sie suchen nach dem Verzeichnis, das nach -D in Ihrem pg_ctl start Befehl.

In diesem Fall enthält das Verzeichnis, das Sie suchen, diese Dateien.

PG_VERSION      pg_dynshmem     pg_multixact
pg_snapshots    pg_tblspc       postgresql.conf
base            pg_hba.conf     pg_notify   
pg_stat         pg_twophase     postmaster.opts
global          pg_ident.conf   pg_replslot
pg_stat_tmp     pg_xlog         postmaster.pid
pg_clog         pg_logical      pg_serial
pg_subtrans     postgresql.auto.conf    server.log

Sie können es finden, indem Sie eine der oben genannten Dateien und Verzeichnisse mit der Suchfunktion Ihres Betriebssystems suchen.

Zum Beispiel in meinem Fall (ein HomeBrew anbringen Mac OS X ), befinden sich diese Dateien in /usr/local/var/postgres . Um den Server zu starten, gebe ich ein:

pg_ctl -D /usr/local/var/postgres -w start

... und es funktioniert.

18voto

ymv Punkte 2067

Der Standort bestimmter Tabellen/Indizes kann durch TABLESPACEs angepasst werden:

CREATE TABLESPACE dbspace LOCATION '/data/dbs';
CREATE TABLE something (......) TABLESPACE dbspace;
CREATE TABLE otherthing (......) TABLESPACE dbspace;

12voto

evgeni Punkte 1525

Auf dem Mac: /Library/PostgreSQL/9.0/data/base

Das Verzeichnis kann nicht betreten werden, aber Sie können sich den Inhalt über ansehen: sudo du -hc data

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X