Recent Posts

PostgreSQL Notify/Listen Like ESB

1 minute read

背景 ESB : 基于消息的调用企业服务的通信模块. 上个礼拜和一位老朋友吃饭,聊到他现在在做的一个产品。才初略的对ESB有点了解。 发现PostgreSQL独有的Notify和Listen与总线实现的东西类似。一般用于监测表的改变,配合触发器使用,通知接收方表的数据有改变,接收方及时采取刷新动作。 下面来...

PostgreSQL BEGIN attention. serializable case

1 minute read

背景 PostgreSQL BEGIN事务的时候,干了些啥? 来看看下面的例子可能会有启发: 场景,实现ORACLE的Serializable隔离级别。 描述 : ORACLE : The SERIALIZABLE setting specifies serializable transaction i...

A Smart PostgreSQL extension plproxy 2.2 practices

7 minute read

背景 PostgreSQL分布式设计 三层结构 : 1. 路由层(几乎无限扩展) 主角: plproxy,postgresql 2. 连接池层(几乎无限扩展) 主角: pgbouncer 3. 数据层(几乎无限扩展) 主角: postgresql 扩展方式: 1. 路由层扩展: 路由层包含了...

Use pg_resetxlog simulate tuple disappear within PostgreSQL

3 minute read

背景 刚才francs问我由于PostgreSQL的MVCC机制,是不是数据库维护会导致数据库的记录消失。 当然不会。 PostgreSQL是有保护机制的,有兴趣的朋友可以参考数据库的maintenance章节和相关的freeze参数。 不过有一种情况,可以模拟记录”消失”的情况,那就是使用pg_reset...

Get txid from pg_controldata’s output

2 minute read

背景 前面一篇BLOG介绍了txid和xid的区别,地址是 PostgreSQL xid(int4) to txid(int8) 不过还漏了一点东西,txid是怎么计算的。 注意xid最大是2^32次方。但是它实际上是会随时rotate的,即是一个起点(最老的没有被冻结的XID)不固定的圆圈(某些值被赋予特...

PostgreSQL xid(int4) to txid(int8)

6 minute read

背景 这篇BLOG的起源还是MVCC,PostgreSQL很多东西都是围绕 MVCC展开的。所以建议可以阅读一下手册的相关部分,另外我之前也写过几篇和MVCC相关的BLOG,有兴趣的朋友可以浏览一下。 今天我的同事francs发现我们昨天出现BUG的那个数据库的事务ID到100多亿了,正常情况下应该是在2^32...

Use nagios monitor PostgreSQL archive status

1 minute read

背景 之前写过一篇BLOG: PostgreSQL Archived in the Cloud http://blog.163.com/digoal@126/blog/static/163877040201152321027994/ 关于归档状态的监控采用nagios来搞定,如下是一个archive_comm...

ssh隧道加密压缩方法 - a simple wan speed method

less than 1 minute read

背景 前几天写过一篇用SSH TUNNEL加速PostgreSQL数据传输的BLOG http://blog.163.com/digoal@126/blog/static/163877040201152753352356/ 今天再把这个方法略微通俗化一下 参考 man ssh ma...