代码之家  ›  专栏  ›  技术社区  ›  gruszczy

PostgreSQL数据库在Linux上的默认位置

  •  97
  • gruszczy  · 技术社区  · 14 年前

    PostgreSQL在Linux上保留所有数据库的默认目录是什么?

    6 回复  |  直到 6 年前
        1
  •  116
  •   the Tin Man    8 年前

    PostgreSQL保存所有数据库的目录 (和配置)被称为“数据目录”,对应于PostgreSQL所调用的(有点混乱)a database cluster “,这与分布式计算无关,它只是一组由PostgreSQL服务器管理的数据库和相关对象。

    数据目录的位置取决于分布。如果从源安装,则默认值为 /usr/local/pgsql/data :

    在文件系统术语中,数据库 群集将是单个目录 所有数据将存储在其中。 我们称之为数据目录或 数据区域。完全由你决定 选择存储数据的位置。 虽然没有违约 位置,如 /usr/local/pgsql/data或 /var/lib/pgsql/data很流行。 ( ref )

    此外,正在运行的PostgreSQL服务器的一个实例与一个集群相关联;其数据目录的位置可以传递给服务器守护进程(“ postmaster “或” postgres “在” -D 命令行选项,或 PGDATA 环境变量(通常在正在运行的用户的范围内,通常 postgres )您通常可以看到运行中的服务器具有如下功能:

    [root@server1 ~]# ps auxw |  grep postgres | grep -- -D
    postgres  1535  0.0  0.1  39768  1584 ?        S    May17   0:23 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    

    请注意,虽然不是很频繁,但可以运行为不同“集群”(数据目录)提供服务的同一PostgreSQL服务器的两个实例(相同的二进制文件,不同的进程)。当然,每个实例都会监听自己的TCP/IP端口。

        2
  •  52
  •   Abdul silent    10 年前
    /var/lib/postgresql/[version]/data/
    

    至少在Gentoo Linux和Ubuntu 14.04中是默认的。

    你可以找到 postgresql.conf 看看参数 data_directory . 如果它被注释,那么数据库目录与这个配置文件目录相同。

        3
  •  15
  •   Léo Léopold Hertz 준영    9 年前

    使用包管理器安装后,Debian 8.1和PostgreSQL 9.4中的默认值 易得

    ps auxw |  grep postgres | grep -- -D
    postgres 17340  0.0  0.5 226700 21756 ?        S    09:50   0:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
    

    如此明显 /var/lib/postgresql/9.4/main .

        4
  •  13
  •   Michel Milezzi    6 年前
        5
  •  9
  •   the Tin Man    8 年前

    在CentOS 6.5/PostgreSQL 9.3上:

    更改的值 "PGDATA=/var/lib/pgsql/data" 到初始脚本文件中所需的任何位置 /etc/init.d/postgresql .

    记住 chmod 700 chown postgres:postgres 到了新的地方,你就是老板。

        6
  •  0
  •   void    6 年前

    我认为最好的方法是查询 pg_setting 观点:

     select s.name, s.setting, s.short_desc from pg_settings s where s.name='data_directory';
    

    输出:

          name      |        setting         |            short_desc
    ----------------+------------------------+-----------------------------------
     data_directory | /var/lib/pgsql/10/data | Sets the server's data directory.
    (1 row)