Recent Posts

PostgreSQL 9.5 new feature - width_bucket return the bucket number

1 minute read

背景 PostgreSQL 9.5 新增的一个函数width_bucket , 用来计算一个值在一个bucket范围内的位置信息,如果这个值超出了给定的范围,返回 0 或者 总buckets+1 。 bucket除了用数字来表示,还可以直接用数组来表示。 Function ...

PostgreSQL trigger/rule based replication configure, DISABLE/ENABLE [ REPLICA ALWAYS ] TRIGGER RULE

1 minute read

背景 当我们使用PostgreSQL做基于规则或触发器的逻辑复制时,如果是双向复制,那么在两个节点的表上都需要创建规则或者触发器,那么就需要注意死循环,例如一条记录在本地插入后,通过触发器发送到远端执行,在远端如果触发器又被触发,就会进入死循环。 例如我之前做的基于触发器和DBLINK的双向复制, http:...

PostgreSQL 数据库安全指南

3 minute read

背景 数据库在一个企业中通常都处于非常核心的位置,数据库安全是一个非常严肃的话题。 从机房、网络、服务器、数据交换设备、操作系统、应用程序、数据库本身,数据库所处的环境非常复杂,安全隐患也非常多。 所以本文将从各个层面帮助大家理解和避免一些常见的安全隐患问题。 本文是PostgreSQL使用安全指导性的文章...

use PostgreSQL async Notification as a chat group

9 minute read

背景 PostgreSQL 提供了一个很有意思的异步消息通信功能。 利用这个功能,可以实现很多有趣的想法,例如离线聊天组,数据逻辑复制,审计日志等。 notify就是往一个指定的通道发消息。 postgres=# \h notify Command: NOTIFY Description: ...

PostgreSQL 9.5 new feature - Writing A Custom Scan Provider

less than 1 minute read

背景 PostgreSQL 9.5 开放了自定义数据扫描的接口,允许用户自定义扫描方法。 PostgreSQL默认提供的扫描方法可以从参数配置中看出: #enable_bitmapscan = on #enable_hashagg = on #enable_hashjoin = on #enabl...

PostgreSQL 9.5 new feature - pg_receivexlog run as synchronous standby

1 minute read

背景 PostgreSQL 9.5 允许pg_receivexlog实时反馈wal的flush位置,并且可以将pg_receivexlog作为sync standby角色来使用。 这样的话,我们可以利用pg_receivexlog来担任sync standby的第三者角色,从而实现更轻量级的数据0丢失以及高可用...