PostgreSQL 目录结构

通过环境变量获取主要的目录路径

1
2
3
4
[postgres@361way ~]$ env |grep -i pgsql
PWD=/var/lib/pgsql
HOME=/var/lib/pgsql
PGDATA=/var/lib/pgsql/data

通过包查询指令可以获取主要指令存在的路径:

  1. Red Hat Enterprise Linux、Rocky Linux、AlmaLinux、Fedora、Oracle Linux系统可以使用 rpm 命令查询;
  2. Ubuntu、Debian 系统可以使用 dpkg 命令查看
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[postgres@361way ~]$ rpm -ql postgresql-server |grep -i bin
/usr/bin/initdb
/usr/bin/pg_basebackup
/usr/bin/pg_checksums
/usr/bin/pg_controldata
/usr/bin/pg_ctl
/usr/bin/pg_receivewal
/usr/bin/pg_recvlogical
/usr/bin/pg_resetwal
/usr/bin/pg_rewind
/usr/bin/pg_verifybackup
/usr/bin/postgres
/usr/bin/postgresql-setup
/usr/bin/postgresql-upgrade
/usr/bin/postmaster
/usr/sbin/postgresql-new-systemd-unit
[postgres@361way ~]$ rpm -ql postgresql |grep -i bin
/usr/bin/clusterdb
/usr/bin/createdb
/usr/bin/createuser
/usr/bin/dropdb
/usr/bin/dropuser
/usr/bin/pg_dump
/usr/bin/pg_dumpall
/usr/bin/pg_isready
/usr/bin/pg_restore
/usr/bin/pg_upgrade
/usr/bin/psql
/usr/bin/reindexdb
/usr/bin/vacuumdb

数据目录内文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[postgres@361way ~]$ ll /var/lib/pgsql/
total 8
drwx------  2 postgres postgres    6 Aug 29 23:32 backups
drwx------ 20 postgres postgres 4096 Oct 19 11:45 data
-rw-------  1 postgres postgres  905 Oct 13 09:59 initdb_postgresql.log
[postgres@361way ~]$ ll /var/lib/pgsql/data
total 64
drwx------ 5 postgres postgres    41 Oct 19 17:41 base
-rw------- 1 postgres postgres    30 Oct 19 11:45 current_logfiles
drwx------ 2 postgres postgres  4096 Oct 19 17:16 global
drwx------ 2 postgres postgres    58 Oct 19 11:45 log
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_commit_ts
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_dynshmem
-rw------- 1 postgres postgres  4516 Oct 13 09:59 pg_hba.conf
-rw------- 1 postgres postgres  1636 Oct 13 09:59 pg_ident.conf
drwx------ 4 postgres postgres    68 Oct 19 17:46 pg_logical
drwx------ 4 postgres postgres    36 Oct 13 09:59 pg_multixact
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_notify
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_replslot
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_serial
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_snapshots
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_stat
drwx------ 2 postgres postgres    63 Oct 19 18:28 pg_stat_tmp
drwx------ 2 postgres postgres    18 Oct 13 09:59 pg_subtrans
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_tblspc
drwx------ 2 postgres postgres     6 Oct 13 09:59 pg_twophase
-rw------- 1 postgres postgres     3 Oct 13 09:59 PG_VERSION
drwx------ 3 postgres postgres    60 Oct 13 09:59 pg_wal
drwx------ 2 postgres postgres    18 Oct 13 09:59 pg_xact
-rw------- 1 postgres postgres    88 Oct 13 09:59 postgresql.auto.conf
-rw------- 1 postgres postgres 28086 Oct 13 09:59 postgresql.conf
-rw------- 1 postgres postgres    45 Oct 19 11:45 postmaster.opts
-rw------- 1 postgres postgres    99 Oct 19 11:45 postmaster.pid

主要文件和目录说明:

  • pg_hba.conf: 认证配置文件,配置了允许哪些IP访问数据库,及认证方式等信息。
  • pg_ident.conf: "ident"认证方式的用户映射文件。
  • PG_VERSION: 记录了数据库版本号信息。
  • postgresql.auto.conf: 作用同 postgresql.conf ,优先级高于 postgresql.conf,在数据库中通过alter命令更改的参数记录在此文件中。
  • postgresql.conf: 数据库实例主配置文件,基本上所有的数据库参数配置都在此文件中。
  • postmaster.opts: 记录数据库启动命令。
  • postmaster.pid: 数据库进程文件,数据库启动时被创建,关闭时消失。
  • base: 该目录包含数据库用户所创建的各个数据库,同时也包括postgres、template0和template1的pg_defaulttablespace。
  • global: 该目录包含集群范围的各个表和相关视图。(pg_database、pg_tablespace)
  • pg_dynshmem: 该目录包含动态共享内存子系统使用的文件。
  • pg_commit_ts: 该目录包含已提交事务的时间。
  • pg_logical: 该目录包含逻辑解码的状态数据。
  • pg_multixact: 该目录包含多事务状态数据。(等待锁定的并发事务)
  • pg_notify: 该目录包含LISTEN/NOTIFY状态数据。
  • pg_replslot: 该目录包含复制槽数据。
  • pg_snapshots: 该目录包含导出的快照。
  • pg_stat: 该目录包含统计子系统的永久文件。
  • pg_stat_tmp: 该目录包含统计子系统的临时文件。
  • pg_subtrans: 该目录包含子事务状态数据。
  • pg_tblspc: 该目录包含表空间的符号链接。
  • pg_twophase: 该目录包含预备事务的状态文件。
  • pg_wal: 该目录包含wal日志。
  • pg_xact: 该目录包含事务提交状态数据。

捐赠本站(Donate)

weixin_pay
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))