Postgresql共享库预加载(Shared Library Preloading)

Postgresql共享库预加载(Shared Library Preloading)

PostgreSQL支持通过动态库的方式扩展PG的功能,pg在使用这些功能时需要预加载相关的共享库。
有几种设置可用于将共享库预加载到服务器中,如下

  • local_preload_libraries (string)
  • session_preload_libraries (string)
  • shared_preload_libraries (string)

1、local_preload_libraries (string)

  • 用户建立连接时加载,通常使用客户端上的 PGOPOPS 环境变量或使用 ALTER 角色 SET 设置此参数。
  • 任何用户都可以设置此选项,因此限定只能加载$libdir/plugins下面的so文件。可以显示的指定目录,如$libdir/plugins/passwordcheck;或者只指定库的名字,如passwordcheck。其会自动到$libdir/plugins/中搜索
postgres=> alter role test set local_preload_libraries=passwordcheck;
ALTER ROLE
postgres=> alter role test set local_preload_libraries='$libdir/plugins/passwordcheck';
ALTER ROLE

2、session_preload_libraries (string)

  • 用户建立连接时加载这个参数只允许超级用户修改
  • 能动态加载所有目录下面的so文件,如果未指定相对目录,自动到dynamic_library_path指定的目录中搜索so。

3、shared_preload_libraries (string)

  • 数据库启动时加载,配置shared_preload_libraries参数,必须重启数据库。
postgres=# alter system set shared_preload_libraries=pg_pathman, pg_stat_statements, passwordcheck;
ALTER SYSTEM

注意:

  • 在连接开始时加载一个或多个共享库,用逗号分隔列表。条目之间的空白会被忽略,如果要在名称中包含空格或逗号,库名需要加双引号。此参数只在服务器启动时生效。如果找不到指定的库,服务器无法启动。
  • 多个参数不要放在单引号中,如
alter system set shared_preload_libraries='pg_pathman,pg_stat_statements';
  • $libdir路径通过以下命令查看
[pg@pg ~]$ pg_config |grep LIBDIR
LIBDIR = /opt/postgres/lib
PKGLIBDIR = /opt/postgres/lib
[pg@pg ~]$
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值