Recent Posts

从代码层判断 pg_basebackup 是否已正常结束 - 暨改进建议

1 minute read

背景 用户通常会使用pg_basebackup来对PostgreSQL实施在线备份,对于超级大的数据库实例,可能需要备份很久。 如果将任务分解来看,假设备份是任务流中的一个步骤,如果设置了超时时间,那么在超时导致该步骤失败之后,如何判断pg_basebackup是否已执行成功? 1、从pg_basebacku...

PostgreSQL, SQL Server 逻辑增量 (通过逻辑标记update,delete) 同步到 Greenplum, PostgreSQL

8 minute read

背景 异构数据的增量同步是比较繁琐的事情,需要考虑很多事情,比如: 1、同步延迟 2、DDL的同步 3、同步时对上游性能的影响 4、上下游数据一致性 5、上游事务原子性在目标端是否能保证原子性 6、上下游数据类型兼容性 7、上下游字符集一致性 8、同步时对下游性能的影响 9、可以同步哪些操作(I...

PostgreSQL Oracle 兼容性 - Analysis函数之keep

4 minute read

背景 Oracle 分析函数KEEP,类似OVER的语法结构(当然,含义与之不同)。keep可以用于普通的查询,也可以用于分组聚合,同时亦可用于窗口中。 SELECT deptno, MIN(t.mgr) KEEP (DENSE_RANK FIRST ORDER BY t.sal) a from emp ...

PostgreSQL copy (quote,DELIMITER,…) single byte char 的输入

less than 1 minute read

背景 PostgreSQL 可以通过COPY批量导入或导出数据,如果是文件操作是在数据库的SERVER端操作,如果是STDIN, STDOUT则是通过协议透传到客户端。 Command: COPY Description: copy data between a file and a table ...

Greenplum Oracle 兼容性之 - LOG ERRORS INTO

5 minute read

背景 Oracle支持DML的log errors,是一个很赞的功能。 https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_errlog.htm#CEGEJAAJ https://oracle-base.com/articles/10g/dml-e...

PostgreSQL 自动创建分区实践 - 写入触发器

3 minute read

背景 数据写入时,自动创建分区。 目前pg_pathman这个分区插件,有这个功能,如果你不是用的这个插件,可以考虑一下用触发器写入,并在触发器中实现自动创建分区。 《PostgreSQL 9.6 sharding based on FDW & pg_pathman》 《PostgreSQL 9.5...