M1 Mac手动编译PostgreSQL-13.11启动及存储路径疑问咨询
PostgreSQL 13.11 启动疑问解答
问题1:这是否意味着服务器仅能为单个数据库启动?
不是。-D指定的是PostgreSQL实例的数据目录(PGDATA),一个服务器实例可以管理多个数据库。你启动的是一个PostgreSQL服务实例,在这个实例下可以通过createdb等命令创建多个独立的数据库。如果需要运行多个独立的服务实例,只需指定不同的PGDATA目录(每个目录包含各自的配置、日志和数据),并配置不同的端口启动即可。
问题2:是否所有数据库都直接存储在该目录下?base directory具体位置在哪里?
- 所有数据库的数据都存储在
-D指定的PGDATA目录下,但并非直接放在根目录,而是有固定的子目录结构:- 数据库的实际数据文件存放在PGDATA下的
base子目录中,每个数据库对应base下一个以OID命名的子文件夹(可通过SELECT oid, datname FROM pg_database;查询数据库OID与名称的对应关系)。 - PGDATA目录还包含其他关键子目录和文件,比如
pg_log(日志目录)、pg_wal(预写日志目录)、postgresql.conf(核心配置文件)、pg_hba.conf(访问控制配置文件)等。
- 数据库的实际数据文件存放在PGDATA下的
- 你通过
-D指定的/path/to/databaseDir就是该实例的base directory(即PGDATA目录),整个实例的配置、数据、日志等所有相关文件都存储在此目录下。
内容的提问来源于stack exchange,提问作者YosefAhab
相关产品推荐
相关产品推荐

