Odpowiedzi:
Aby zobaczyć, gdzie znajduje się katalog danych, użyj tego zapytania.
show data_directory;
Aby wyświetlić wszystkie parametry czasu wykonywania, użyj
show all;
Możesz utworzyć obszary tabel do przechowywania obiektów bazy danych w innych częściach systemu plików. Aby zobaczyć obszary tabel, które mogą nie znajdować się w tym katalogu danych, użyj tego zapytania.
SELECT * FROM pg_tablespace;
W Windows7 wszystkie bazy danych są oznaczone numerami w pliku o nazwie pg_database
under C:\Program Files (x86)\PostgreSQL\8.2\data\global
. Następnie wyszukaj nazwę folderu według tego numeru pod C:\Program Files (x86)\PostgreSQL\8.2\data\base
. To jest zawartość bazy danych.
Otwórz pgAdmin i przejdź do Właściwości dla określonej bazy danych. Znajdź OID, a następnie otwórz katalog
<POSTGRESQL_DIRECTORY>/data/base/<OID>
Powinny być twoje pliki DB.
SELECT oid from pg_database where datname = '<dbname>'
Zgodnie z sugestią zawartą w „ Domyślnej lokalizacji bazy danych PostgreSQL w systemie Linux ” w systemie Linux można to sprawdzić za pomocą następującego polecenia:
ps aux | grep postgres | grep -- -D
W mojej instalacji Linuksa jest tutaj: /var/lib/postgresql/8.x/
Możesz to zmienić za pomocą initdb -D "c:/mydb/"
/var/lib/pgsql/data
. Lepiej dowiedzieć się, używając ps auxw|grep postgres|grep -- -D
.
Wszyscy już odpowiedzieli, ale tylko na najnowsze aktualizacje. Jeśli chcesz wiedzieć, gdzie znajdują się wszystkie pliki konfiguracyjne, uruchom to polecenie w powłoce
SELECT name, setting FROM pg_settings WHERE category = 'File Locations';
Założę się, że zadajesz to pytanie, ponieważ próbujesz uzyskać pg_ctl start
następujący błąd:
pg_ctl: nie określono katalogu bazy danych i nie ustawiono zmiennej środowiskowej PGDATA
Innymi słowy, szukasz katalogu umieścić po -D
w pg_ctl start
poleceniu.
W takim przypadku katalog, którego szukasz, zawiera te pliki.
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
Możesz go zlokalizować, lokalizując dowolny z powyższych plików i katalogów, korzystając z wyszukiwania dostarczonego z systemem operacyjnym.
Na przykład w moim przypadku ( instalacja HomeBrew na Mac OS X ) pliki te znajdują się w /usr/local/var/postgres
. Aby uruchomić serwer, piszę:
pg_ctl -D /usr/local/var/postgres -w start
... i działa.
brew info postgres
locate <filename>
sudo locate <filename>
Postgres przechowuje dane w plikach w swoim katalogu danych. Wykonaj poniższe kroki, aby przejść do bazy danych i jej plików:
Baza danych odpowiadająca plikowi tabeli postgresql jest katalogiem. Lokalizację całego katalogu danych można uzyskać, uruchamiając SHOW data_directory
. w systemie operacyjnym UNIX (np .: Mac) /Library/PostgreSQL/9.4/data
Wejdź do folderu podstawowego w katalogu danych, który zawiera wszystkie foldery bazy danych:/Library/PostgreSQL/9.4/data/base
Znajdź nazwę folderu bazy danych, uruchamiając (podaje liczbę całkowitą. To jest nazwa folderu bazy danych):
SELECT oid from pg_database WHERE datname = <database_name>;
Znajdź nazwę pliku tabeli, uruchamiając (podaje liczbę całkowitą. To jest nazwa pliku):
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
To jest plik binarny. Szczegóły pliku, takie jak rozmiar i data utworzenia, można uzyskać jak zwykle. Aby uzyskać więcej informacji, przeczytaj ten wątek SO
Na komputerze Mac: /Library/PostgreSQL/9.0/data/base
Nie można wprowadzić katalogu, ale możesz obejrzeć zawartość poprzez: sudo du -hc data
/usr/local/var/postgres
którym można dowiedzieć się używając @ MikeSherrill w show data_directory;
końcówce
/Library/PostgreSQL/9.0/data/base
wydaje się być lokalizacją bardziej podobną do komputera Mac niż /usr/local/var/postgres
. Nie możesz przeglądać tych ostatnich w Finderze bez włączenia ukrytych funkcji Findera.
W systemie Windows katalog PGDATA, który opisują dokumenty PostgresSQL, jest gdzieś podobny C:\Program Files\PostgreSQL\8.1\data
. Dane dla konkretnej bazy danych znajdują się pod (na przykład) C:\Program Files\PostgreSQL\8.1\data\base\100929
, gdzie chyba 100929 jest numerem bazy danych.
odpowiedź picmate jest prawidłowa. w Windowsie główna lokalizacja folderu DB to (przynajmniej w mojej instalacji)
C:\PostgreSQL\9.2\data\base\
i nie w plikach programu.
jego 2 skrypty podadzą Ci dokładnie katalog / pliki, których potrzebujesz:
SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
moja jest w nazwie 16393 i relfilenode 41603
Używam postgres (9.5) w kontenerze dokera (jak to się dzieje w CentOS), a jak wspomina Skippy le Grand Gourou w powyższym komentarzu, pliki znajdują się w /var/lib/postgresql/data/
.
$ docker exec -it my-postgres-db-container bash
root@c7d61efe2a5d:/# cd /var/lib/postgresql/data/
root@c7d61efe2a5d:/var/lib/postgresql/data# ls -lh
total 56K
drwx------. 7 postgres postgres 71 Apr 5 2018 base
drwx------. 2 postgres postgres 4.0K Nov 2 02:42 global
drwx------. 2 postgres postgres 18 Dec 27 2017 pg_clog
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_commit_ts
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_dynshmem
-rw-------. 1 postgres postgres 4.4K Dec 27 2017 pg_hba.conf
-rw-------. 1 postgres postgres 1.6K Dec 27 2017 pg_ident.conf
drwx------. 4 postgres postgres 39 Dec 27 2017 pg_logical
drwx------. 4 postgres postgres 36 Dec 27 2017 pg_multixact
drwx------. 2 postgres postgres 18 Nov 2 02:42 pg_notify
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_replslot
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_serial
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_snapshots
drwx------. 2 postgres postgres 6 Sep 16 21:15 pg_stat
drwx------. 2 postgres postgres 63 Nov 8 02:41 pg_stat_tmp
drwx------. 2 postgres postgres 18 Oct 24 2018 pg_subtrans
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_tblspc
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_twophase
-rw-------. 1 postgres postgres 4 Dec 27 2017 PG_VERSION
drwx------. 3 postgres postgres 92 Dec 20 2018 pg_xlog
-rw-------. 1 postgres postgres 88 Dec 27 2017 postgresql.auto.conf
-rw-------. 1 postgres postgres 21K Dec 27 2017 postgresql.conf
-rw-------. 1 postgres postgres 37 Nov 2 02:42 postmaster.opts
-rw-------. 1 postgres postgres 85 Nov 2 02:42 postmaster.pid