Postgres-XC customized aggregate introduction
背景 postgres-xc是基于PostgreSQL的分布式数据库,分布式数据库的聚合与单节点数据库的聚合不一样,需要先在数据节点聚合,然后在COORDINATOR节点完成第二阶段的聚合。 目前还不支持多阶段聚合(类似mapreduce)。 本文将介绍一下postgres-xc的聚合函数的概念和开发。 正...
背景 postgres-xc是基于PostgreSQL的分布式数据库,分布式数据库的聚合与单节点数据库的聚合不一样,需要先在数据节点聚合,然后在COORDINATOR节点完成第二阶段的聚合。 目前还不支持多阶段聚合(类似mapreduce)。 本文将介绍一下postgres-xc的聚合函数的概念和开发。 正...
背景 pg_dump 备份为一致性备份. 如下 : src/bin/pg_dump/pg_dump.c /* * Start transaction-snapshot mode transaction to dump consistent data. ...
背景 PostgreSQL pg_dump并行备份的功能已经提交到最新的代码中, 9.3中应该会包含此功能. 导出速度提升非常明显. 前段时间写过一篇并行导出的BLOG, 与pg_dump的并行导出一样都用到了9.2开始引入的export snapshot功能. 感兴趣的朋友可以看如下文章 : http:/...
背景 本文基于PostgreSQL 9.2讲解. 审计的一个普遍用途就是记录用户在数据库中都干了些什么? 如果系统级的参数设置日志全记录下来当然也可以达到审计的目的, 但是这样做的话很多不需要的日志也会输出, 造成硬盘资源浪费甚至影响数据库性能. 所以精细化的审计非常有必要. 之前写过一篇关于Postgre...
背景 通过配置用户级或数据库级的参数可以实现用户以及数据库级别的审计, 但是这样的粒度可能还是太粗糙了. 如果需要更细致的审计, 例如针对某些表的操作审计, 某些用户对某些表的审计, 或者仅仅当某个列的值发生变化时才被审计(记录到LOG或表里面, 本文的例子是将审计信息输出到LOG, 使用raise). 这样...
背景 https://wiki.postgresql.org/wiki/Foreign_data_wrappers mongo_fdw是PostgreSQL众多FDW中的一个, 显而易见是连接mongoDB的. 最近在看CitusDB的时候, 文档中提到了mongo_fdw, 实际上在CitusDB中并没有发...
背景 群里一位兄弟问到的一个问题 : ” 我有一个postgresql,比较大,编码是sqlascii码,我想转换成有utf8 ,有方案可行吗? “ 如果使用场景中未用到non-ASCII编码的字符, 那很幸运, 导出导入就可以了. 但是如果场景中使用了non-ASCII编码的字符, 那就没那么幸运了, 因...
背景 PostgreSQL 9.3 将引入事件触发器, 与普通触发器不同的是, 事件触发器是数据库全局的触发器, 可以由DDL事件来触发. 例如可以用来实施DDL的操作审计,以及防止某些用户执行某些DDL,在某些表上面执行DDL等等。 Unlike regular triggers, which are at...
背景 本文在9.2下面测试, 较老版本可能系统表的字段名不一样, 需要修改触发器函数相关部分, 如pg_stat_activity的pid, 老版本是procpid. 数据同步是一个比较老的话题了, 在PostgreSQL中有比较多的同步手段, 例如流复制, slony, londiste, pgpool等. ...
背景 触发器在数据库中的应用非常广泛,例如在发生insert, update, delete, truncate时触发,调用事先写好的触发器函数。 触发器函数可以使用plpgsql , c , python , perl , java等语言编写。 触发器函数中支持很多内置的变量,可以干很多事情。 本文将以P...