Recent Posts

PostgreSQL 开启“审计日志、时间记录”带来的性能影响有多少?

13 minute read

背景 开启审计日志,或者开启数据库的SQL耗时记录,会给数据库带来多大的性能开销? 1、审计日志通过log_statement设置,可以设置为all, ddl, mod, none,分别表示审计所有SQL,DDL SQL,DML SQL,不审计。 开启审计时,在执行SQL的时候(提交SQL请求时),数据库日志...

PostgreSQL 流复制协议交互式调试 - replication=true

2 minute read

背景 当客户端连接到PG服务端时,startup包里面可以带入一些信息。 src/interfaces/libpq/fe-connect.c 当postmaster解析startup包时,如果解析到replication的参数信息,则会启动wal sender进程与客户端交互,交互采用stream repli...

PostgreSQL libpq multi-host 配置与简单HA实现

1 minute read

背景 PostgreSQL libpq 是数据库的一个连接驱动,支持多主机配置,同时支持target_session_attrs 主机角色判断配置。 当配置了多个主机时,会按顺序尝试连接,之道获取到成功的连接为止。 什么是成功的连接,满足以下两点: 1、能与之成功建立连接。 2、如果target_sess...

[未完待续] PostgreSQL 一键诊断项 - 珍藏级

11 minute read

背景 一、诊断项类目 - 规格、配置 一 规格 1 数据库实例规格 检测方法 规格配置是否与实际配置相符 cpu mem iops network bandwidth disk size 告警规则 处理方法 背景知识 二 配置 1 ROLE,DB级定制配置 检测方法 select * from p...

PostgreSQL 实时健康监控 大屏 - 低频指标 - 珍藏级

7 minute read

背景 最关键的一些数据库健康指标,趋势监测。 1 数据年龄 年龄不能超过20亿(大概值),建议当达到15亿时,应尽快安排freeze。 postgres=# select datname,age(datfrozenxid) from pg_database order by 2 desc; datn...

PostgreSQL 实时健康监控 大屏 - 高频指标 - 珍藏级

6 minute read

背景 最关键的一些数据库健康指标,趋势监测。 1 总连接数 主要看趋势,直接与业务量挂钩 如果连接数接近max_connection水位,需要注意。 同时连接数应与数据库主机可用内存挂钩,每个连接保守估计10MB内存开销(这里还未计算SYSCACHE,RELCACHE)。 select count(*) ...

PostgreSQL , Oracle command reference 语法手册解读

less than 1 minute read

背景 我们在查语法手册是,比如Oracle, PostgreSQL 语法手册,经常看到里面很多这样的东西, postgres=# \h insert Command: INSERT Description: create new rows in a table Syntax: [ WIT...

PostgreSQL 登陆登出(login logout)事件触发方法

less than 1 minute read

背景 PostgreSQL 支持event trigger,但是event局限于DDL。当发生DDL时,可以触发一些动作调用用户自定义的event trigger函数,函数内容随意,比如审计,比如DDL逻辑复制,比如权限控制等。 对事件触发器感兴趣可以见我的GITHUB。 《PostgreSQL 登陆登出(l...