Wo sind die Dateien für eine PostgreSQL-Datenbank gespeichert?
postgresql
Teifion
quelle
quelle
sudo -u postgres psql -c "show data_directory;"
zeigt die aktuellen Speicherorte in einer Standard-PostgreSQL-Installation an.Antworten:
Verwenden Sie diese Abfrage, um festzustellen, wo sich das Datenverzeichnis befindet.
Verwenden Sie, um alle Laufzeitparameter anzuzeigen
Sie können Tabellenbereiche erstellen, um Datenbankobjekte in anderen Teilen des Dateisystems zu speichern. Verwenden Sie diese Abfrage, um Tabellenbereiche anzuzeigen, die sich möglicherweise nicht in diesem Datenverzeichnis befinden.
quelle
Auf Windows7 alle Datenbanken werden durch eine Zahl in der Datei mit dem Namen bezeichnet
pg_database
unterC:\Program Files (x86)\PostgreSQL\8.2\data\global
. Dann sollten Sie unter dieser Nummer unter nach dem Ordnernamen suchenC:\Program Files (x86)\PostgreSQL\8.2\data\base
. Das ist der Inhalt der Datenbank.quelle
Öffnen Sie pgAdmin und gehen Sie zu Eigenschaften für eine bestimmte Datenbank. Suchen Sie die OID und öffnen Sie das Verzeichnis
Es sollten Ihre DB-Dateien sein.
quelle
SELECT oid from pg_database where datname = '<dbname>'
Wie unter " Standardspeicherort der PostgreSQL-Datenbank unter Linux " vorgeschlagen, können Sie dies unter Linux mit dem folgenden Befehl herausfinden:
quelle
Unter meiner Linux-Installation ist es hier:
/var/lib/postgresql/8.x/
Sie können es mit ändern
initdb -D "c:/mydb/"
quelle
/var/lib/pgsql/data
. Besser herausfinden mitps auxw|grep postgres|grep -- -D
.Die Position bestimmter Tabellen / Indizes kann durch TABLESPACEs angepasst werden:
quelle
Alle haben bereits geantwortet, aber nur für die neuesten Updates. Wenn Sie wissen möchten, wo sich alle Konfigurationsdateien befinden, führen Sie diesen Befehl in der Shell aus
quelle
Ich wette, Sie stellen diese Frage, weil Sie versucht haben,
pg_ctl start
den folgenden Fehler zu erhalten:Mit anderen Worten, Sie suchen nach dem Verzeichnis, nach dem Sie
-D
in Ihrempg_ctl start
Befehl suchen möchten.In diesem Fall enthält das gesuchte Verzeichnis diese Dateien.
Sie können es finden, indem Sie eine der oben genannten Dateien und Verzeichnisse mithilfe der mit Ihrem Betriebssystem bereitgestellten Suche suchen.
In meinem Fall (eine HomeBrew- Installation unter Mac OS X ) befinden sich diese Dateien beispielsweise in
/usr/local/var/postgres
. Um den Server zu starten, tippe ich:... und es funktioniert.
quelle
brew info postgres
locate <filename>
sudo locate <filename>
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 Speicherort des gesamten Datenverzeichnisses kann durch Ausführen abgerufen werden
SHOW data_directory
. In einem UNIX-ähnlichen Betriebssystem (z. B. Mac)/Library/PostgreSQL/9.4/data
Gehen Sie in den Basisordner des Datenverzeichnisses, in dem sich alle Datenbankordner befinden:/Library/PostgreSQL/9.4/data/base
Suchen Sie den Namen des Datenbankordners, indem Sie Folgendes ausführen (Gibt eine Ganzzahl an. Dies ist der Name des Datenbankordners):
Suchen Sie den Tabellendateinamen durch Ausführen (Gibt eine Ganzzahl an. Dies ist der Dateiname):
Dies ist eine Binärdatei. Dateidetails wie Größe und Erstellungsdatum können wie gewohnt abgerufen werden. Für weitere Informationen lesen Sie diesen SO-Thread
quelle
Auf dem Mac:
/Library/PostgreSQL/9.0/data/base
Das Verzeichnis kann nicht eingegeben werden, aber Sie können den Inhalt anzeigen über:
sudo du -hc data
quelle
/usr/local/var/postgres
Können Sie dies anhand desshow data_directory;
Tipps von @ MikeSherrill herausfinden/Library/PostgreSQL/9.0/data/base
scheint ein Mac-ähnlicher Ort zu sein als/usr/local/var/postgres
. Sie können im Finder nicht zu letzterem navigieren, ohne versteckte Finder-Funktionen zu aktivieren.Unter Windows befindet sich das PGDATA-Verzeichnis, das in den PostgresSQL-Dokumenten beschrieben wird , ungefähr so
C:\Program Files\PostgreSQL\8.1\data
. Die Daten für eine bestimmte Datenbank befinden sich unter (zum Beispiel)C:\Program Files\PostgreSQL\8.1\data\base\100929
, wobei 100929 die Datenbanknummer ist.quelle
Die Antwort von picmate ist richtig. Unter Windows ist der Hauptspeicherort des DB-Ordners (zumindest bei meiner Installation).
und nicht in Programmdateien.
Mit seinen 2 Skripten erhalten Sie genau das Verzeichnis / die Datei (en), die Sie benötigen:
meins ist in datname 16393 und relfilenode 41603
quelle
Ich führe Postgres (9.5) in einem Docker-Container aus (unter CentOS, wie es passiert), und wie Skippy le Grand Gourou in einem Kommentar oben erwähnt, befinden sich die Dateien in
/var/lib/postgresql/data/
.quelle