PostgreSQL在哪里存储数据库?

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

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

show data_directory; 

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

 show all; 

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

 SELECT * FROM pg_tablespace; 

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

打开pgAdmin并转到特定数据库的属性。 findOID,然后打开目录

 <POSTGRESQL_DIRECTORY>/data/base/<OID> 

应该有你的数据库文件。

正如“ PostgreSQL数据库在Linux上的默认位置 ”中所build议的那样,在Linux下,您可以使用以下命令find:

 ps aux | grep postgres | grep -- -D 

在Linux下,它在这里: /var/lib/postgresql/8.x/

你可以用initdb -D "c:/mydb/"来改变它

特定表/索引的位置可以通过TABLESPACEs进行调整:

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

在Mac上: /Library/PostgreSQL/9.0/data/base

无法input目录,但可以通过sudo du -hc data查看内容

Postgres将数据存储在数据目录中的文件中。 按照以下步骤转到数据库及其文件:

与postgresql表文件对应的数据库是一个目录。 整个数据目录的位置可以通过运行SHOW data_directory来获得。 在类似操作系统的UNIX(例如:Mac) /Library/PostgreSQL/9.4/data进入包含所有数据库文件夹的数据目录中的基础文件夹: /Library/PostgreSQL/9.4/data/base

通过运行find数据库文件夹名称(给出一个整数,这是数据库文件夹名称):

 SELECT oid from pg_database WHERE datname = <database_name>; 

通过运行find表文件名(给出一个整数,这是文件名):

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

这是一个二进制文件。 文件详细信息,如大小和创builddate时间可以照常获得。 欲了解更多信息,请阅读此SO线程

在Windows上, PostgresSQL文档所描述的PGDATA目录就像C:\Program Files\PostgreSQL\8.1\data 。 特定数据库的数据是在(例如) C:\Program Files\PostgreSQL\8.1\data\base\100929 ,其中我猜100929是数据库编号。

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

pg_ctl:没有指定数据库目录,环境variablesPGDATA未设置

换句话说,你正在寻找放在你的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 

您可以通过使用随您的操作系统提供的searchfind上面的任何文件和目录来find它。

例如在我的情况下( Mac OS X上的HomeBrew安装),这些文件位于/usr/local/var/postgres 。 要启动服务器,我input:

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

它工作。