首页 文章

PostgreSQL在哪里存储数据库?

提问于
浏览 269
279

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

11 回答

  • 298

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

    无法输入目录,但您可以通过以下方式查看内容: sudo du -hc data

  • 54

    正如“PostgreSQL database default location on Linux”中所述,在Linux下,您可以使用以下命令找到:

    ps aux | grep postgres | grep -- -D
    
  • 27

    每个人都已经回答,但只是为了最新的更新 . 如果您想知道所有配置文件所在的位置,请在shell中运行此命令

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

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

    您可以使用 initdb -D "c:/mydb/" 进行更改

  • 21

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

    show data_directory;
    

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

    show all;
    

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

    SELECT * FROM pg_tablespace;
    
  • 13

    TABLESPACEs可以调整特定表/索引的位置:

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

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

  • 10

    我'd bet you'问这个问题是因为你试过 pg_ctl start 并收到以下错误:

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

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

    您可以使用操作系统提供的搜索找到上面的任何文件和目录,从而找到它 .

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

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

    ......它有效 .

  • 6

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

    对应于postgresql表文件的数据库是目录 . 可以通过运行 SHOW data_directory 获取整个数据目录的位置 . 在像OS这样的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>;
    

    这是一个二进制文件 . 可以像往常一样获取文件详细信息,例如大小和创建日期时间 . 欲了解更多信息read this SO thread

  • 5

    在Windows上,PostgresSQL docs describe所在的PGDATA目录位于 C:\Program Files\PostgreSQL\8.1\data 之类的某个位置 . 特定数据库的数据在(例如) C:\Program Files\PostgreSQL\8.1\data\base\100929 下,其中我猜100929是数据库编号 .

  • 4

    打开pgAdmin并转到特定数据库的Properties . 找到OID然后打开目录

    <POSTGRESQL_DIRECTORY>/data/base/<OID>
    

    应该有你的DB文件 .

相关问题