allow_in_place_tablespaces
一个开发服务器参数,允许在 pg_tblspc 中创建表空间目录
allow_in_place_tablespaces 是一个开发者 配置参数,它允许在 CREATE TABLESPACE 命令中使用空的 LOCATION 值,从而使 表空间被创建为 pg_tblspc 目录下的一个目录,而不是符号链接。
allow_in_place_tablespaces 旨在用于开发和测试目的,不建议在生产环境中使用。allow_in_place_tablespaces 在 PostgreSQL 15 中添加,并随后向后移植到 PostgreSQL 10 ~ PostgreSQL 14 (例如,参见提交 961cab0a)。
按 PostgreSQL 版本定义
allow_in_place_tablespaces (PostgreSQL 19)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 18)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 17)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 16)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 15)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 14)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 13)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 12)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 11)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_in_place_tablespaces (PostgreSQL 10)
| 设置 | off |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 允许表空间直接创建在 pg_tblspc 中,用于测试。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
- PostgreSQL 15
- 已添加 (提交 7170f215)
示例
postgres=# CREATE TABLESPACE foo LOCATION ''; ERROR: tablespace location must be an absolute path postgres=# ALTER SYSTEM SET allow_in_place_tablespaces TO true; ALTER SYSTEM postgres=# SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row) postgres=# CREATE TABLESPACE foo LOCATION ''; CREATE TABLESPACE
创建的表空间目录
$ ls -l /var/lib/pgsql/data/pg_tblspc/ total 4 drwx------ 3 postgres postgres 4096 Jan 15 09:47 16389
参考资料
- PostgreSQL 文档: allow_in_place_tablespaces
