PostgreSQL数据库的文件存储在哪里?


当前回答

在我的Linux安装中,它在这里:/var/lib/postgresql/8.x/

你可以用initdb -D "c:/mydb/"

其他回答

一个终端命令:pg_lsclusters(使用Ubuntu)

你需要的是在数据目录下:

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

打开pgAdmin,进入特定数据库的属性。找到OID,然后打开目录

<POSTGRESQL_DIRECTORY>/data/base/<OID>

这里应该有您的DB文件。

在Windows7上,所有数据库都由C:\Program Files (x86)\PostgreSQL\8.2\data\global.下名为pg_database的文件中的一个数字引用然后,您应该在C:\Program Files (x86)\PostgreSQL\8.2\data\base.下根据该数字搜索文件夹名称这就是数据库的内容。

我敢打赌你会问这个问题,因为你已经尝试了pg_ctl start,并收到以下错误:

pg_ctl:未指定数据库目录,环境变量PGDATA未设置

换句话说,您要在pg_ctl start命令中寻找放在-D之后的目录。

在本例中,您要查找的目录包含这些文件。

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

您可以通过使用操作系统提供的搜索来定位上面的任何文件和目录来定位它。

例如,在我的例子中(在Mac OS X上安装HomeBrew),这些文件位于/usr/local/var/ postgress中。要启动服务器,我输入:

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

... 这很有效。

要查看数据目录的位置,请使用此查询。

show data_directory;

要查看所有运行时参数,请使用

show all;

您可以创建表空间来在文件系统的其他部分存储数据库对象。要查看可能不在该数据目录中的表空间,请使用此查询。

SELECT *, pg_tablespace_location(oid) FROM pg_tablespace;