file_copy_method
是一个 系统参数,用于指定执行 CREATE DATABASE
或 ALTER DATABASE ... SET TABLESPACE ...
时使用的文件复制方法。
file_copy_method
于 PostgreSQL 18 中添加。
按 PostgreSQL 版本详细信息
file_copy_method (PostgreSQL 19)
设置 | copy |
单位 | |
类别 | 资源使用 / 磁盘 |
简短描述 | 选择文件复制方法。 |
扩展描述 | |
上下文 | user |
变量类型 | enum |
来源 | 默认 |
最小值 | |
最大值 | |
枚举值 | copy, clone |
启动值 | copy |
重置值 | copy |
源文件 | |
源行 | |
需要重启 | false |
文档: file_copy_method
file_copy_method (PostgreSQL 18)
设置 | copy |
单位 | |
类别 | 资源使用 / 磁盘 |
简短描述 | 选择文件复制方法。 |
扩展描述 | |
上下文 | user |
变量类型 | enum |
来源 | 默认 |
最小值 | |
最大值 | |
枚举值 | copy, clone |
启动值 | copy |
重置值 | copy |
源文件 | |
源行 | |
需要重启 | false |
文档: file_copy_method
默认值
file_copy_method
的默认值为:copy
。
用法
file_copy_method
可取以下值之一:
copy
clone
如果选择了 clone
并且操作系统支持克隆操作,那么在执行以下命令进行文件操作时,将使用 copy_file_range()
(Linux, FreeBSD) 或 copyfile
(macOS) 系统调用:
CREATE DATABASE
(使用STRATEGY=FILE_COPY
时)ALTER DATABASE
(执行SET TABLESPACE
时)
变更历史
- PostgreSQL 18
- 添加于 (提交 f78ca6f3)
示例
file_copy_method
的基本用法示例
postgres=# SET file_copy_method TO 'clone'; SET postgres=# CREATE DATABASE foo STRATEGY=FILE_COPY; CREATE DATABASE
尝试设置无效值
postgres=# SET file_copy_method TO 'rsync'; ERROR: invalid value for parameter "file_copy_method": "rsync" HINT: Available values: copy, clone.
参考资料
- PostgreSQL 文档: file_copy_method