PostgreSQL数据库的文件存储在哪里?
当前回答
Postgres将数据存储在其数据目录中的文件中。按照以下步骤进入数据库及其文件:
postgresql表文件对应的数据库是目录。整个数据目录的位置可以通过执行SHOW data_directory命令获取。 在UNIX中,如OS(例如:Mac) /Library/PostgreSQL/9.4/data 进入data目录下的base文件夹,其中包含所有数据库文件夹:/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线程
其他回答
在Windows7上,所有数据库都由C:\Program Files (x86)\PostgreSQL\8.2\data\global.下名为pg_database的文件中的一个数字引用然后,您应该在C:\Program Files (x86)\PostgreSQL\8.2\data\base.下根据该数字搜索文件夹名称这就是数据库的内容。
打开pgAdmin,进入特定数据库的属性。找到OID,然后打开目录
<POSTGRESQL_DIRECTORY>/data/base/<OID>
这里应该有您的DB文件。
Postgres将数据存储在其数据目录中的文件中。按照以下步骤进入数据库及其文件:
postgresql表文件对应的数据库是目录。整个数据目录的位置可以通过执行SHOW data_directory命令获取。 在UNIX中,如OS(例如:Mac) /Library/PostgreSQL/9.4/data 进入data目录下的base文件夹,其中包含所有数据库文件夹:/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线程
在Windows上,PostgresSQL文档中描述的PGDATA目录在C:\Program Files\PostgreSQL\8.1\data.这样的地方特定数据库的数据位于(例如)C:\Program Files\PostgreSQL\8.1\data\base\ 100929下,我猜100929是数据库号。
在“PostgreSQL数据库在Linux上的默认位置”中建议,在Linux下你可以使用以下命令找到:
ps aux | grep postgres | grep -- -D
推荐文章
- PostgreSQL删除所有内容
- 为什么PostgreSQL要对索引列进行顺序扫描?
- PostgreSQL INSERT ON冲突更新(upsert)使用所有排除的值
- 如何检查一个表是否存在于给定的模式中
- 如何将整数转换为字符串作为PostgreSQL查询的一部分?
- Psycopg2:用一个查询插入多行
- PostgreSQL返回JSON数组的结果集?
- PostgreSQL通配符LIKE用于单词列表中的任何一个
- 检查Postgres JSON数组是否包含字符串
- psql: FATAL: Peer authentication failed for user "dev"
- 如何在Postgres/SQL中获得两个整数的最小/最大值?
- 如何在postgresql中显示函数,过程,触发器源代码?
- 如何用postgres将间隔转换为小时数?
- 在postgresql中将查询结果按月和年分组
- 如何改变一个列的数据类型在PostgreSQL表?