Как найти базу данных postgresql

Where are the files for a PostgreSQL database stored?

Asclepius's user avatar

Asclepius

56.4k17 gold badges164 silver badges142 bronze badges

asked Jul 16, 2009 at 11:55

Teifion's user avatar

3

To see where the data directory is, use this query.

show data_directory;

To see all the run-time parameters, use

show all;

You can create tablespaces to store database objects in other parts of the filesystem. To see tablespaces, which might not be in that data directory, use this query.

SELECT *, pg_tablespace_location(oid) FROM pg_tablespace;

SukiCZ's user avatar

SukiCZ

3015 silver badges10 bronze badges

answered Nov 23, 2011 at 4:53

Mike Sherrill 'Cat Recall''s user avatar

6

On Windows7 all the databases are referred by a number in the file named pg_database under C:Program Files (x86)PostgreSQL8.2dataglobal. Then you should search for the folder name by that number under C:Program Files (x86)PostgreSQL8.2database. That is the content of the database.

the Tin Man's user avatar

the Tin Man

158k42 gold badges214 silver badges303 bronze badges

answered Mar 9, 2012 at 7:02

senthilkumari's user avatar

1

Open pgAdmin and go to Properties for specific database. Find OID and then open directory

<POSTGRESQL_DIRECTORY>/data/base/<OID>

There should be your DB files.

answered Oct 27, 2012 at 12:22

Almir Sarajčić's user avatar

Almir SarajčićAlmir Sarajčić

1,5202 gold badges16 silver badges19 bronze badges

1

Under my Linux installation, it’s here: /var/lib/postgresql/8.x/

You can change it with initdb -D "c:/mydb/"

trinth's user avatar

trinth

5,8879 gold badges38 silver badges45 bronze badges

answered Jul 16, 2009 at 11:59

Sadegh's user avatar

SadeghSadegh

6,5844 gold badges34 silver badges44 bronze badges

2

Everyone already answered but just for the latest updates. If you want to know where all the configuration files reside then run this command in the shell

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

answered Dec 8, 2017 at 3:25

Saad Saadi's user avatar

Saad SaadiSaad Saadi

1,03110 silver badges26 bronze badges

1

I’d bet you’re asking this question because you’ve tried pg_ctl start and received the following error:

pg_ctl: no database directory specified and environment variable PGDATA unset

In other words, you’re looking for the directory to put after -D in your pg_ctl start command.

In this case, the directory you’re looking for contains these files.

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

You can locate it by locating any of the files and directories above using the search provided with your OS.

For example in my case (a HomeBrew install on Mac OS X), these files are located in /usr/local/var/postgres. To start the server I type:

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

… and it works.

answered Aug 17, 2015 at 16:33

xagg's user avatar

xaggxagg

5085 silver badges11 bronze badges

3

Postgres stores data in files in its data directory. Follow the steps below to go to a database and its files:

The database corresponding to a postgresql table file is a directory. The location of the entire data directory can be obtained by running SHOW data_directory.
in a UNIX like OS (eg: Mac) /Library/PostgreSQL/9.4/data
Go inside the base folder in the data directory which has all the database folders: /Library/PostgreSQL/9.4/data/base

Find the database folder name by running (Gives an integer. This is the database folder name):

SELECT oid from pg_database WHERE datname = <database_name>;

Find the table file name by running (Gives an integer. This is the file name):

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

This is a binary file. File details such as size and creation date time can be obtained as usual. For more info read this SO thread

Community's user avatar

answered Jun 10, 2015 at 16:04

picmate 涅's user avatar

picmate 涅picmate 涅

3,9015 gold badges43 silver badges52 bronze badges

The location of specific tables/indexes can be adjusted by TABLESPACEs:

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

the Tin Man's user avatar

the Tin Man

158k42 gold badges214 silver badges303 bronze badges

answered Jul 16, 2009 at 12:14

ymv's user avatar

ymvymv

2,12313 silver badges20 bronze badges

On Mac: /Library/PostgreSQL/9.0/data/base

The directory can’t be entered, but you can look at the content via: sudo du -hc data

answered Mar 1, 2011 at 3:33

evgeni's user avatar

evgenievgeni

1,6453 gold badges22 silver badges29 bronze badges

6

picmate’s answer is right. on windows the main DB folder location is (at least on my installation)

C:PostgreSQL9.2database

and not in program files.

his 2 scripts, will give you the exact directory/file(s) you need:

SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

mine is in datname 16393 and relfilenode 41603

database files in postgresql

answered Mar 28, 2019 at 0:25

k3nn's user avatar

k3nnk3nn

1311 silver badge6 bronze badges

1

On Windows, the PGDATA directory that the PostgresSQL docs describe is at somewhere like C:Program FilesPostgreSQL8.1data. The data for a particular database is under (for example) C:Program FilesPostgreSQL8.1database100929, where I guess 100929 is the database number.

answered Sep 14, 2009 at 22:01

Ben Hoyt's user avatar

Ben HoytBen Hoyt

10.6k5 gold badges59 silver badges84 bronze badges

3

I’m running postgres (9.5) in a docker container (on CentOS, as it happens), and as Skippy le Grand Gourou mentions in a comment above, the files are located in /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

answered Nov 8, 2019 at 2:51

rotarydial's user avatar

rotarydialrotarydial

2,1412 gold badges21 silver badges26 bronze badges

A single Terminal command: pg_lsclusters, (using Ubuntu)

What you need is under Data directory:

Ver Cluster Port Status Owner    Data directory               Log file
10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
11  main    5433 online postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log

answered Aug 18, 2021 at 19:55

Roko's user avatar

RokoRoko

1,22311 silver badges21 bronze badges

Where are the files for a PostgreSQL database stored?

Asclepius's user avatar

Asclepius

56.4k17 gold badges164 silver badges142 bronze badges

asked Jul 16, 2009 at 11:55

Teifion's user avatar

3

To see where the data directory is, use this query.

show data_directory;

To see all the run-time parameters, use

show all;

You can create tablespaces to store database objects in other parts of the filesystem. To see tablespaces, which might not be in that data directory, use this query.

SELECT *, pg_tablespace_location(oid) FROM pg_tablespace;

SukiCZ's user avatar

SukiCZ

3015 silver badges10 bronze badges

answered Nov 23, 2011 at 4:53

Mike Sherrill 'Cat Recall''s user avatar

6

On Windows7 all the databases are referred by a number in the file named pg_database under C:Program Files (x86)PostgreSQL8.2dataglobal. Then you should search for the folder name by that number under C:Program Files (x86)PostgreSQL8.2database. That is the content of the database.

the Tin Man's user avatar

the Tin Man

158k42 gold badges214 silver badges303 bronze badges

answered Mar 9, 2012 at 7:02

senthilkumari's user avatar

1

Open pgAdmin and go to Properties for specific database. Find OID and then open directory

<POSTGRESQL_DIRECTORY>/data/base/<OID>

There should be your DB files.

answered Oct 27, 2012 at 12:22

Almir Sarajčić's user avatar

Almir SarajčićAlmir Sarajčić

1,5202 gold badges16 silver badges19 bronze badges

1

Under my Linux installation, it’s here: /var/lib/postgresql/8.x/

You can change it with initdb -D "c:/mydb/"

trinth's user avatar

trinth

5,8879 gold badges38 silver badges45 bronze badges

answered Jul 16, 2009 at 11:59

Sadegh's user avatar

SadeghSadegh

6,5844 gold badges34 silver badges44 bronze badges

2

Everyone already answered but just for the latest updates. If you want to know where all the configuration files reside then run this command in the shell

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

answered Dec 8, 2017 at 3:25

Saad Saadi's user avatar

Saad SaadiSaad Saadi

1,03110 silver badges26 bronze badges

1

I’d bet you’re asking this question because you’ve tried pg_ctl start and received the following error:

pg_ctl: no database directory specified and environment variable PGDATA unset

In other words, you’re looking for the directory to put after -D in your pg_ctl start command.

In this case, the directory you’re looking for contains these files.

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

You can locate it by locating any of the files and directories above using the search provided with your OS.

For example in my case (a HomeBrew install on Mac OS X), these files are located in /usr/local/var/postgres. To start the server I type:

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

… and it works.

answered Aug 17, 2015 at 16:33

xagg's user avatar

xaggxagg

5085 silver badges11 bronze badges

3

Postgres stores data in files in its data directory. Follow the steps below to go to a database and its files:

The database corresponding to a postgresql table file is a directory. The location of the entire data directory can be obtained by running SHOW data_directory.
in a UNIX like OS (eg: Mac) /Library/PostgreSQL/9.4/data
Go inside the base folder in the data directory which has all the database folders: /Library/PostgreSQL/9.4/data/base

Find the database folder name by running (Gives an integer. This is the database folder name):

SELECT oid from pg_database WHERE datname = <database_name>;

Find the table file name by running (Gives an integer. This is the file name):

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

This is a binary file. File details such as size and creation date time can be obtained as usual. For more info read this SO thread

Community's user avatar

answered Jun 10, 2015 at 16:04

picmate 涅's user avatar

picmate 涅picmate 涅

3,9015 gold badges43 silver badges52 bronze badges

The location of specific tables/indexes can be adjusted by TABLESPACEs:

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

the Tin Man's user avatar

the Tin Man

158k42 gold badges214 silver badges303 bronze badges

answered Jul 16, 2009 at 12:14

ymv's user avatar

ymvymv

2,12313 silver badges20 bronze badges

On Mac: /Library/PostgreSQL/9.0/data/base

The directory can’t be entered, but you can look at the content via: sudo du -hc data

answered Mar 1, 2011 at 3:33

evgeni's user avatar

evgenievgeni

1,6453 gold badges22 silver badges29 bronze badges

6

picmate’s answer is right. on windows the main DB folder location is (at least on my installation)

C:PostgreSQL9.2database

and not in program files.

his 2 scripts, will give you the exact directory/file(s) you need:

SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

mine is in datname 16393 and relfilenode 41603

database files in postgresql

answered Mar 28, 2019 at 0:25

k3nn's user avatar

k3nnk3nn

1311 silver badge6 bronze badges

1

On Windows, the PGDATA directory that the PostgresSQL docs describe is at somewhere like C:Program FilesPostgreSQL8.1data. The data for a particular database is under (for example) C:Program FilesPostgreSQL8.1database100929, where I guess 100929 is the database number.

answered Sep 14, 2009 at 22:01

Ben Hoyt's user avatar

Ben HoytBen Hoyt

10.6k5 gold badges59 silver badges84 bronze badges

3

I’m running postgres (9.5) in a docker container (on CentOS, as it happens), and as Skippy le Grand Gourou mentions in a comment above, the files are located in /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

answered Nov 8, 2019 at 2:51

rotarydial's user avatar

rotarydialrotarydial

2,1412 gold badges21 silver badges26 bronze badges

A single Terminal command: pg_lsclusters, (using Ubuntu)

What you need is under Data directory:

Ver Cluster Port Status Owner    Data directory               Log file
10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
11  main    5433 online postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log

answered Aug 18, 2021 at 19:55

Roko's user avatar

RokoRoko

1,22311 silver badges21 bronze badges

So this might be a stupid question, but I’m really new to this.
So I’m making a Postgres database on the postgres server, that I started up with this command:

sudo -u postgres psql

And then I did the command:

CREATE DATABASE database;

Which supposedly created the database.
But where is this database? Where can I find it on my computer?

asked Mar 15, 2013 at 1:04

3

Where exactly your data is stored depends on how you installed and configured PostgreSQL. Running the

show data_directory

command as the postgres user (from inside the psql tool or another client) will tell you where it is though. For example, if you installed it from the debian or ubuntu repositories you would probably find your data files are somewhere like /var/lib/postgresql/9.2/main.

There probably isn’t anything terribly interesting in there though. Sometimes there are a few configuration files like pg_hba.conf (the windows version puts them there at least) but if you’re on debian you’ll find those under /etc/postgresql/.

If you’re expecting your database to be a single file that you can move around between systems, etc, you’re probably better off using a simpler embedded database like sqlite.

answered Mar 15, 2013 at 10:32

davidg's user avatar

To see where the data directory is, use this query.

show data_directory;

To see all the run-time parameters, use

show all;

You can create tablespaces in other parts of the filesystem. To see the location of tablespaces, which might be somewhere in the filesystem besides the data directory, use this query.

SELECT * FROM pg_tablespace;

answered Mar 15, 2013 at 23:40

Mike Sherrill 'Cat Recall''s user avatar

1

when you execute the «CREATE DATABASE database» command, it uses the pg_default tablespace;

you can create your own tablespace first,such as

CREATE TABLESPACE tbs_01 [ OWNER user_name ] LOCATION 'directory';

and than create your database:

CREATE DATABASE datname
WITH  OWNER = user_name 
      TEMPLATE = template0 
      ENCODING = 'UTF8' 
      TABLESPACE = tbs_01;

answered Mar 15, 2013 at 9:28

francs's user avatar

francsfrancs

1,4071 gold badge15 silver badges24 bronze badges

Everyone already answered but just for the latest updates. If you want to know where all the configuration files reside then run this command in the shell

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

answered Dec 8, 2017 at 3:26

Saad Saadi's user avatar

Saad SaadiSaad Saadi

1,3912 gold badges9 silver badges7 bronze badges

Debian / Ubuntu

Ubuntu and Debian displays all of this with pg_lsclusters — one of the many administrators utilities they add. The output looks something like this

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log

If you just want the Data directory, then | cut -d " " -f 6

pg_lsclusters -h | cut -d " " -f 6
/var/lib/postgresql/9.5/main

answered Dec 8, 2017 at 3:39

Evan Carroll's user avatar

Evan CarrollEvan Carroll

60.4k44 gold badges224 silver badges454 bronze badges

12 ответов

Чтобы узнать, где находится каталог данных, используйте этот запрос.

show data_directory;

Чтобы просмотреть все параметры времени выполнения, используйте

show all;

Вы можете создавать табличные пространства для хранения объектов базы данных в других частях файловой системы. Чтобы просмотреть табличные пространства, которые могут отсутствовать в этом каталоге данных, используйте этот запрос.

SELECT * FROM pg_tablespace;

Mike Sherrill ‘Cat Recall’
23 нояб. 2011, в 06:46

Поделиться

В Windows7 все базы данных относятся к числу в файле с именем pg_database под C:Program Files (x86)PostgreSQL8.2dataglobal. Затем вы должны искать имя папки по этому номеру в C:Program Files (x86)PostgreSQL8.2database. Это содержимое базы данных.

senthilkumari
09 март 2012, в 07:26

Поделиться

Откройте pgAdmin и перейдите в «Свойства» для конкретной базы данных. Найдите OID, а затем откройте каталог

<POSTGRESQL_DIRECTORY>/data/base/<OID>

Должны быть ваши файлы DB.

Almir Sarajčić
27 окт. 2012, в 12:51

Поделиться

Под моей установкой Linux он находится здесь: /var/lib/postgresql/8.x/

Вы можете изменить его с помощью initdb -D "c:/mydb/"

Sadegh
16 июль 2009, в 12:10

Поделиться

Расположение определенных таблиц/индексов можно настроить с помощью TABLESPACE:

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

ymv
16 июль 2009, в 13:26

Поделиться

Postgres хранит данные в файлах в своем каталоге данных. Выполните следующие шаги, чтобы перейти к базе данных и ее файлам:

База данных, соответствующая файлу таблицы postgresql, является каталогом. Местоположение всего каталога данных можно получить, запустив SHOW data_directory.
в операционной системе UNIX (например: Mac) /Library/PostgreSQL/9.4/data
Перейдите в базовую папку в каталоге данных, где есть все папки базы данных: /Library/PostgreSQL/9.4/data/base

Найдите имя папки базы данных, запустив (дает целое число. Это имя папки базы данных):

SELECT oid from pg_database WHERE datname = <database_name>;

Найдите имя файла таблицы, запустив (дает целое число. Это имя файла):

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

Это двоичный файл. Данные файла, такие как размер и время создания, могут быть получены как обычно. Для получения дополнительной информации прочитайте этот поток SO

picmate 涅
10 июнь 2015, в 17:33

Поделиться

В Mac: /Library/PostgreSQL/9.0/data/base

Невозможно ввести каталог, но вы можете посмотреть содержимое через: sudo du -hc data

evgeni
01 март 2011, в 04:26

Поделиться

Все уже ответили, но только для последних обновлений. Если вы хотите знать, где находятся все файлы конфигурации, запустите эту команду в оболочке

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

Saad Saadi
08 дек. 2017, в 03:37

Поделиться

Держу пари, что вы задаете этот вопрос, потому что вы пробовали pg_ctl start и получили следующую ошибку:

pg_ctl: не указан каталог базы данных и переменная среды PGDATA unset

Другими словами, вы ищете каталог, который будет помещен после -D в команду pg_ctl start.

В этом случае каталог, который вы ищете, содержит эти файлы.

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

Вы можете найти его, указав любой из файлов и каталогов выше, используя поиск, предоставляемый вашей ОС.

Например, в моем случае (HomeBrew установить на Mac OS X) эти файлы находятся в /usr/local/var/postgres. Для запуска сервера я печатаю:

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

… и он работает.

xagg
17 авг. 2015, в 18:22

Поделиться

В Windows каталог PGDATA, который описывают документы PostgresSQL, находится где-то вроде C:Program FilesPostgreSQL8.1data. Данные для конкретной базы данных находятся (например) в C:Program FilesPostgreSQL8.1database100929, где, как мне кажется, 100929 — это номер базы данных.

Ben Hoyt
14 сен. 2009, в 22:12

Поделиться

Picmate ответ правильный. на windows расположение основной папки БД (по крайней мере на моей установке)

C:PostgreSQL9.2database

а не в программных файлах.

его 2 сценария, даст вам точный каталог/файл вам нужно:

SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

мой находится в datname 16393 и relfilenode 41603

Изображение 5096

k3nn
28 март 2019, в 00:40

Поделиться

Ещё вопросы

  • 0Раскрывающееся меню HTML удаляет пробелы между элементами LI
  • 0Попытка заставить curl работать в c ++ linux и GDB
  • 1Как я могу сохранить hourOfDay и минуты из timePickerDialog, чтобы сравнить его с какой-то другой переменной?
  • 0JQuery выберите раскрывающийся список выбранного значения
  • 0Не удается правильно загрузить растровое изображение из памяти
  • 0Как обновить страницу и добавить параметр URL?
  • 0Yii — Css — один активный эффект для нескольких ссылок
  • 0FullText InnoDB Поиск без ответа
  • 0m_hIcon = AfxGetApp () -> LoadIcon (IDR_MAINFRAME); Утверждение не выполнено: at afxwin1.inl
  • 1Идентификация таблицы в HTML
  • 1Вернуть значение ключа на максимальной глубине во вложенном словаре
  • 0Как мне преобразовать параметры выбора в список, но сохранить значения?
  • 0Как экспортировать DataTable в Excel с выбранным столбцом
  • 1Приложение закрывается после того, как намеренно не дал разрешение на местоположение
  • 0Альтернативные цвета для заголовков на основе селектора nth-child
  • 0Изменить .htaccess на работу? _Escaped_fragment_ = URL
  • 0преобразование из двоичной строки в int с использованием strtoll?
  • 1Colors.xml: содержимое не допускается в конце раздела
  • 1Проект EAR Maven — JAR не исключается?
  • 0TBB Linker error Как узнать, что я пропустил включение или код устарел?
  • 1Вывести toString () из отдельных классов
  • 0Шаблонная директива AngularJS с Java Play
  • 1Scipy.ode «Ошибка теста неоднократно»
  • 0Как работать со сторонними библиотеками при юнит-тестировании?
  • 0(PDO) Сбор конкретных данных из идентификатора
  • 0Разрешить теги php в htmlpurifier
  • 0Появляется ошибка при попытке отобразить данные таблицы MySQL в таблице HTML [дубликаты]
  • 1Почему элементы CSS и Bootstrap исчезают с сервера экспресс-узла?
  • 0Mysql, вставить в таблицу из каждой записи из другой таблицы
  • 0Код отслеживания не установлен (Google Analytics)
  • 0поиск элемента внутри другого элемента с использованием идентификатора
  • 0Ошибка SELECT после ошибки вставки повторяющегося ключа
  • 0Сортировка JSON данных на стороне клиента
  • 1Загрузка запрещена с помощью X-Frame-Options: websitename / Register не разрешает кадрирование между источниками в MVC5
  • 0Переменная переопределяется в цикле
  • 0Как преодолеть недостаток дружбы в C #?
  • 0Получение выбранного значения из выпадающего списка, помещенного в div
  • 0Как вызвать клик при наведении курсора на элемент на x секунд, используя JQuery?
  • 0Нам понадобится несколько советов: я хочу добавить и отобразить объекты в ArrayList с помощью jTable, а затем добавить эти записи в базу данных SQL
  • 1Как удалить дубликаты (различные значения) без первичного ключа
  • 1Удаление смежных дубликатов в ArrayList [Java]
  • 1Расширения Chrome-Extensions Jasmine, Chrome, onMessage не определены
  • 1Python конвертирование из c # Расчет CRC8 из кадра 4/5 байт
  • 1Элемент управления WinForms WebBrowser игнорирует реферер
  • 1как сделать так, чтобы форма отправлялась синхронно БЕЗ JQUERY
  • 0HTML5 и PHP: Воспроизведение видеофайла в формате base64
  • 0Вместо электронной почты идентификатор пользователя идет в базу данных
  • 1FindResource не работает в библиотеке пользовательских элементов управления
  • 0Mysql Ошибка подключения к базе данных
  • 1Веб-формы .NET обновляют контент на стороне сервера

Где хранятся файлы для базы данных PostgreSQL?

4b9b3361

Ответ 1

Чтобы узнать, где находится каталог данных, используйте этот запрос.

show data_directory;

Чтобы просмотреть все параметры времени выполнения, используйте

show all;

Вы можете создавать табличные пространства для хранения объектов базы данных в других частях файловой системы. Чтобы просмотреть табличные пространства, которые могут отсутствовать в этом каталоге данных, используйте этот запрос.

SELECT * FROM pg_tablespace;

Ответ 2

В Windows7 все базы данных относятся к числу в файле с именем pg_database под C:Program Files (x86)PostgreSQL8.2dataglobal. Затем вы должны искать имя папки по этому номеру в C:Program Files (x86)PostgreSQL8.2database. Это содержимое базы данных.

Ответ 3

Откройте pgAdmin и перейдите в «Свойства» для конкретной базы данных. Найдите OID, а затем откройте каталог

<POSTGRESQL_DIRECTORY>/data/base/<OID>

Должны быть ваши файлы DB.

Ответ 4

Под моей установкой Linux он находится здесь: /var/lib/postgresql/8.x/

Вы можете изменить его с помощью initdb -D "c:/mydb/"

Ответ 5

Как указано в «местоположении по умолчанию базы данных PostgreSQL в Linux, под Linux вы можете узнать, используя следующую команду:

ps aux | grep postgres | grep -- -D

Ответ 6

Расположение определенных таблиц/индексов можно настроить с помощью TABLESPACE:

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

Ответ 7

В Mac: /Library/PostgreSQL/9.0/data/base

Невозможно ввести каталог, но вы можете посмотреть содержимое через: sudo du -hc data

Ответ 8

Postgres хранит данные в файлах в своем каталоге данных. Выполните следующие шаги, чтобы перейти к базе данных и ее файлам:

База данных, соответствующая файлу таблицы postgresql, является каталогом. Местоположение всего каталога данных можно получить, запустив SHOW data_directory.
в операционной системе UNIX (например: Mac) /Library/PostgreSQL/9.4/data
Перейдите в базовую папку в каталоге данных, где есть все папки базы данных: /Library/PostgreSQL/9.4/data/base

Найдите имя папки базы данных, запустив (дает целое число. Это имя папки базы данных):

SELECT oid from pg_database WHERE datname = <database_name>;

Найдите имя файла таблицы, запустив (дает целое число. Это имя файла):

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

Это двоичный файл. Данные файла, такие как размер и время создания, могут быть получены как обычно. Для получения дополнительной информации прочитайте этот поток SO

Ответ 9

Все уже ответили, но только для последних обновлений. Если вы хотите знать, где находятся все файлы конфигурации, запустите эту команду в оболочке

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

Ответ 10

Держу пари, что вы задаете этот вопрос, потому что вы пробовали pg_ctl start и получили следующую ошибку:

pg_ctl: не указан каталог базы данных и переменная среды PGDATA unset

Другими словами, вы ищете каталог, который будет помещен после -D в команду pg_ctl start.

В этом случае каталог, который вы ищете, содержит эти файлы.

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

Вы можете найти его, указав любой из файлов и каталогов выше, используя поиск, предоставляемый вашей ОС.

Например, в моем случае (HomeBrew установить на Mac OS X) эти файлы находятся в /usr/local/var/postgres. Для запуска сервера я печатаю:

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

… и он работает.

Ответ 11

В Windows каталог PGDATA, который описывают документы PostgresSQL, находится где-то вроде C:Program FilesPostgreSQL8.1data. Данные для конкретной базы данных находятся (например) в C:Program FilesPostgreSQL8.1database100929, где, как мне кажется, 100929 — это номер базы данных.

Ответ 12

Picmate ответ правильный. на windows расположение основной папки БД (по крайней мере на моей установке)

C:PostgreSQL9.2database

а не в программных файлах.

его 2 сценария, даст вам точный каталог/файл вам нужно:

SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

мой находится в datname 16393 и relfilenode 41603

database files in postgresql

Понравилась статья? Поделить с друзьями:
  • Как составить бюджет командировки
  • Как найти номер своего диплома по фамилии
  • Стереометрия как найти угол между двумя прямыми
  • Как составить план действий сказки
  • Как найти процентную частоту варианты