当前位置: 首页 > news >正文

go 修改postgresql的配置参数

postgresql.conf与postgresql.auto.conf的区别

  • postgresql.auto.conf的优先级高于postgresql.conf,如果一个参数同时存在postgresql.auto.conf和postgresql.conf里面,系统会先读postgresql.auto.conf的参数配置。

  • 使用alter system set修改的是postgresql.auto.conf文件的内容,postgresql.conf则是通过文本编辑方式修改。比如执行alter system set max_wal_size=default将参数设回 default 时,postgresql.auto.conf文件里的max_wal_size这项配置会被删除,重新用回postgresql.conf文件的设置。

  • postgresql.conf文件的参数后面有# (change requires restart),表示必须重启才能生效,使用select pg_reload_conf()或pg_ctl reload不行。

执行alter system set max_wal_size=2500;
发现修改的是postgresql.auto.conf文件
执行select pg_reload_conf();同样的参数,优先加载的是postgresql.auto.conf文件里面的参数配置
重启postgresql后,同样的参数,优先使用的postgresql.auto.conf文件里面的参数配置
手工修改postgresql.auto.conf文件,执行select pg_reload_conf()会加载postgresql.auto.conf文件
手工修改postgresql.auto.conf文件,重启postgresql会加载postgresql.auto.conf文件

go的代码样例

func main() {// 连接到 PostgreSQL 数据库dsn := "host=localhost user=user password=password  dbname=postgres port=5432 sslmode=disable TimeZone=Asia/Shanghai"db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})if err != nil {log.Fatal(err)}defer func() {sqlDB, err := db.DB()if err != nil {log.Fatal(err)}sqlDB.Close()}()cmd := "ALTER SYSTEM SET array_nulls= 'off' "_, err = db.Raw(cmd).Rows()if err != nil {return}cmdReload := "SELECT pg_reload_conf()"_, err = db.Raw(cmdReload).Rows()if err != nil {fmt.Printf("执行sql[%s]失败:%v", cmdReload, err)return}cfg, err := ini.LoadSources(ini.LoadOptions{AllowShadows: true}, "/var/lib/pgsql/12/data/postgresql.auto.conf")// 获取指定的 Sectionsection, err := cfg.GetSection("DEFAULT")if err != nil {log.Fatal(err)}keyToCheck := "array_nulls"// 检查 key 是否存在if section.HasKey(keyToCheck) {fmt.Printf("Key '%s' exists in the section.\n", keyToCheck)} else {fmt.Printf("Key '%s' does not exist in the section.\n", keyToCheck)}
}
http://www.lryc.cn/news/276874.html

相关文章:

  • 解决word图片格式错乱、回车图片不跟着换行的问题
  • 密码学(二)
  • mysql进阶-视图
  • 力扣-34. 在排序数组中查找元素的第一个和最后一个位置
  • Cesium笔记 初始化 使用Vue-Cesium 组件
  • QTday2作业
  • scVI与MultiVI
  • java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计
  • 2、UML类图
  • 2023 年度合辑 | 出海大年的全球化产品洞察和服务动向
  • python 基础笔记
  • [原创][R语言]股票分析实战[8]:因子与subset的关系
  • uniapp使用tcp和udp的区别和例子
  • 静态网页设计——个人图书馆(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)
  • APP出海需知——Admob广告变现竞价策略
  • 微服务实战系列之API加密
  • android apk文件的签名问题
  • ATTCK视角下的信息收集:主机发现
  • Redis 主从、哨兵和分片集群简单介绍
  • 群晖NAS+DMS7.0以上版本+无docker机型安装zerotier
  • Pinia持久化存储插件 pinia-plugin-persist
  • 链家JAVA笔试题
  • 当试图回复传入消息时,消息应用程序会闪烁
  • Hubery-个人项目经历记录
  • Ubuntu18.04 安装 qt 5.15.2
  • 【Linux Shell】6. echo 命令
  • Dell 机架式服务器 - 高级定制服务
  • C++ 中关键字 Static
  • 系统学习Python——警告信息的控制模块warnings:警告过滤器-[重写默认的过滤器]
  • C++力扣题目-- 二叉树层序遍历