标签

PostgreSQL

用 CloudNativePG 声明式管理 PostgreSQL 配置:从 postgresql.conf 到 pg_hba.conf

来源: postgr.es 48
对于习惯 SSH 登录虚拟机、编辑 和 的 DBA 来说,迁移到 Kubernetes 后,最明显的变化不是 SQL,而是配置方式变了:Pod 可能随时重建,容器内手工修改的文件也不会成为可靠的事实来源。 CloudNativePG(CNPG)把 PostgreSQL 集群配置放进 Kubernetes 自定义资源(CRD)中。DBA 只需要声明目标状...

PostgreSQL 18 为废弃复制槽加上超时机制

来源: postgr.es 43
复制槽能够阻止 PostgreSQL 回收消费者尚未确认的 WAL。这是流复制和逻辑复制可靠性的基础,也是一项容易拖垮磁盘的承诺:只要复制槽还存在,即使消费者早已下线,服务端仍可能继续保留 WAL。PostgreSQL 18 新增 ,让管理员可以为长期闲置的复制槽设置失效期限。 物理复制槽通常服务于备用节点,逻辑复制槽则可能连接订阅端、CDC 平台或自...

PostgreSQL 真死锁还是连接池失活?五分钟完成故障定性

来源: postgr.es 53
凌晨告警里,“应用连不上数据库”通常会被直接翻译成“PostgreSQL 挂了”。但这个现象至少对应两类完全不同的故障:数据库主机真的无法响应,或者应用连接池里保存了一条早已失效的 TCP 连接。两者需要不同的处理方式,混淆它们,很容易浪费事故发生后的关键十分钟。 真正的 PostgreSQL 卡死发生在服务端或更底层。此时无论从哪个应用、连接池或网络...

用 idle_in_transaction_session_timeout 阻断 PostgreSQL 空闲事务事故链

来源: postgr.es 48
一个连接执行了 ,修改或读取了一些数据,然后因为应用异常、人工操作中断或连接管理疏漏,再也没有提交。它看起来只是“挂着”,实际上可能持续持有锁、阻碍清理旧版本,最终让一次普通的连接遗忘演变成锁等待、表膨胀和请求堆积。 PostgreSQL 的 正是用来限制这类会话:当会话已经进入事务、但在指定时间内没有继续执行语句时,服务器会终止该连接。 Postgr...

PostgreSQL 的 ident_file 配错后为何仍能启动,以及如何让故障暴露出来

来源: postgr.es 54
指定 PostgreSQL 到哪里读取 。这个参数最容易误导人的地方,不是配置语法,而是失败方式:路径写错或文件无法读取时,服务器可能只留下一条不显眼的日志,然后继续运行。数据库看起来是健康的,依赖用户映射的认证却可能已经失效。 决定客户端采用哪种认证方法; 则在需要用户映射时,把外部身份映射为 PostgreSQL 角色。常见场景是 或 认证规则通过...

hot_standby_feedback:用主库膨胀换取备库查询稳定性

来源: postgr.es 42
在 PostgreSQL 的热备环境里,备库上的长查询可能因为主库清理旧版本行而被取消。 提供了一种直接的取舍:让备库向主库反馈自己的事务快照,主库因此延后部分清理操作,减少备库上的查询取消;代价是主库可能积累更多死元组,表和索引膨胀也可能更严重。 这个参数容易被理解成“开启后备库查询就不会被打断”。实际边界更窄:它主要避免由 清理旧行版本引起的 cl...

PostgreSQL Performance Farm 重启:在 EC2 上搭建大规模 OLTP 性能试验场

来源: postgr.es 58
PostgreSQL Performance Farm 还没有真正落地,但项目已经出现了更具体的推进路径:借助 AWS 开源项目额度,在 EC2 上重新开展大规模 OLTP 测试,并更新 OSDL 时期留下的测试工具,尤其是 DBT-5。当前设想是从 实例和多块 EBS 卷入手,评估一种类似 TPC-E、I/O 与计算压力相对均衡的负载。 这件事的价值...

PostgreSQL 19 引入 SQL/PGQ:用标准 SQL 查询属性图

来源: postgr.es 46
PostgreSQL 19 的开发版本加入了 SQL 属性图查询能力,实施依据是 SQL/PGQ 标准 ISO/IEC 9075-16:2023。此次提交不只是增加一个查询函数,还覆盖属性图的创建、修改和删除命令,并引入对应的系统目录与 information schema 视图。这意味着开发者有机会继续使用 PostgreSQL 的表、事务和 SQL...

PostgreSQL 18 扩展容器化:文件解耦了,运行时依赖未必

来源: postgr.es 48
PostgreSQL 18 新增 ,补上了扩展外置的最后一块拼图:控制文件和 SQL 脚本不再必须安装到服务器自身的 。配合已有的 ,以及 Kubernetes ImageVolume 或 Docker 的镜像挂载能力,扩展可以被打包成独立 OCI 镜像,在运行时挂进 PostgreSQL 容器。 这让“一个精简 PostgreSQL 基础镜像,加若干...