PostgreSQL数据库的文件存储在哪里?
当前回答
一个终端命令: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
其他回答
Picmate的答案是正确的。在windows上,主DB文件夹的位置是(至少在我的安装)
C:\PostgreSQL\9.2\data\base\
而且不是在程序文件中。
他的2个脚本,将给你确切的目录/文件(s)你需要:
SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
我的在datname 16393和relfilenode 41603中
特定表/索引的位置可以通过TABLESPACEs进行调整:
CREATE TABLESPACE dbspace LOCATION '/data/dbs';
CREATE TABLE something (......) TABLESPACE dbspace;
CREATE TABLE otherthing (......) TABLESPACE dbspace;
一个终端命令: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
我敢打赌你会问这个问题,因为你已经尝试了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
... 这很有效。
在“PostgreSQL数据库在Linux上的默认位置”中建议,在Linux下你可以使用以下命令找到:
ps aux | grep postgres | grep -- -D
推荐文章
- 如何在Postgres中获得两个字段的MIN() ?
- 截断Postgres数据库中的所有表
- 如何连接列在Postgres选择?
- 将varchar字段的类型更改为整数:"不能自动转换为整数类型"
- PostgreSQL可以索引数组列吗?
- PostgreSQL:角色不允许登录
- 如何查找Postgres / PostgreSQL表及其索引的磁盘大小
- 是使用各有一个模式的多个数据库更好,还是使用一个数据库有多个模式更好?
- 如果字符串包含
- 对于PostgreSQL表来说,多大才算太大?
- 将一列的多个结果行连接为一列,按另一列分组
- 使用pgadmin连接到heroku数据库
- 在PostgreSQL中快速发现表的行数
- 更改varchar列的大小为较低的长度
- 如何首次配置postgresql ?