shared_preload_libraries
确定在 PostgreSQL 启动时要加载哪些库的服务器配置参数
shared_preload_libraries 是一个 服务器配置参数,用于确定在 PostgreSQL 启动时要加载哪些库。任何使用共享内存的库必须通过此参数加载。
shared_preload_libraries 于 PostgreSQL 7.4 中添加(当时名为 preload_libraries)。
默认值
shared_preload_libraries 的默认值是:'' (空字符串)。
用法
通常 shared_preload_libraries 只包含每个库的名称,在这种情况下,假定该库位于 LIBDIR/postgresql/(其中 LIBDIR 是 pg_config --libdir 命令报告的值),例如:
shared_preload_libraries = 'auto_explain,pg_stat_statements'
也可以将库文件指定为绝对文件路径,例如:
shared_preload_libraries = '/usr/pgsql-13/lib/pg_stat_statements/pg_stat_statements.so'
请注意,文件后缀(此处为“.so”)是可选的,通常会被省略。
按 PostgreSQL 版本详细信息
shared_preload_libraries (PostgreSQL 19)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 18)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 17)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 16)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 15)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 14)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 13)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 12)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 11)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 10)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 9.6)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 9.5)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 9.4)
| 设置 |
|
| 单位 |
|
| 类别 |
客户端连接默认值 / 共享库预加载 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 9.3)
| 设置 |
|
| 单位 |
|
| 类别 |
资源使用 / 内核资源 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 9.2)
| 设置 |
|
| 单位 |
|
| 类别 |
资源使用 / 内核资源 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 9.1)
| 设置 |
|
| 单位 |
|
| 类别 |
资源使用 / 内核资源 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 9.0)
| 设置 |
|
| 单位 |
|
| 类别 |
资源使用 / 内核资源 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 8.4)
| 设置 |
|
| 单位 |
|
| 类别 |
资源使用 / 内核资源 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
| 枚举值 |
|
| 启动值 |
|
| 重置值 |
|
| 源文件 |
|
| 源行 |
|
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 8.3)
| 设置 |
|
| 单位 |
|
| 类别 |
资源使用 / 内核资源 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
文档: shared_preload_libraries
shared_preload_libraries (PostgreSQL 8.2)
| 设置 |
|
| 单位 |
|
| 类别 |
资源使用 / 内核资源 |
| 简短描述 |
列出要预加载到服务器的共享库。 |
| 扩展描述 |
|
| 上下文 |
postmaster |
| 变量类型 |
string |
| 来源 |
默认 |
| 最小值 |
|
| 最大值 |
|
文档: shared_preload_libraries
变更历史
源代码
shared_preload_libraries 定义在 src/backend/utils/misc/guc.c
{
{"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
gettext_noop("Lists shared libraries to preload into server."),
NULL,
GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
},
&shared_preload_libraries_string,
"",
NULL, NULL, NULL
},
并通过 src/backend/utils/init/miscinit.c 中的 process_shared_preload_libraries() 进行处理
/*
* process any libraries that should be preloaded at postmaster start
*/
void
process_shared_preload_libraries(void)
{
process_shared_preload_libraries_in_progress = true;
load_libraries(shared_preload_libraries_string,
"shared_preload_libraries",
false);
process_shared_preload_libraries_in_progress = false;
}
请注意,对逗号分隔字符串的底层解析由 SplitDirectoriesString()(来自 src/backend/utils/adt/varlena.c)处理,这实际上意味着可以提供的值的最大长度是 MAXPGPATH - 1。