PostgreSQL 单表并行bulkload的extend file lock 冲突问题解决 - 数据块预分配
背景 PostgreSQL的数据文件是一个一个BLOCK extend的,当并行的会话插入同一个表,并且都遇到free space map反馈无BLOCK可插时,需要extend数据文件,有两种做法: 1、老的版本,只有一个会话可以EXTEND FILE,其他会话等它EXTEND结束后继续EXTEND。 《P...
背景 PostgreSQL的数据文件是一个一个BLOCK extend的,当并行的会话插入同一个表,并且都遇到free space map反馈无BLOCK可插时,需要extend数据文件,有两种做法: 1、老的版本,只有一个会话可以EXTEND FILE,其他会话等它EXTEND结束后继续EXTEND。 《P...
背景 用户通常会使用pg_basebackup来对PostgreSQL实施在线备份,对于超级大的数据库实例,可能需要备份很久。 如果将任务分解来看,假设备份是任务流中的一个步骤,如果设置了超时时间,那么在超时导致该步骤失败之后,如何判断pg_basebackup是否已执行成功? 1、从pg_basebacku...
背景 Greenplum分布式事务使用2PC提交,因此需要依赖max_prepared_transactions参数的配置。 原文 https://www.cnblogs.com/chenminklutz/p/8946269.html max_prepared_transactions 应该至少设置为 max...
背景 异构数据的增量同步是比较繁琐的事情,需要考虑很多事情,比如: 1、同步延迟 2、DDL的同步 3、同步时对上游性能的影响 4、上下游数据一致性 5、上游事务原子性在目标端是否能保证原子性 6、上下游数据类型兼容性 7、上下游字符集一致性 8、同步时对下游性能的影响 9、可以同步哪些操作(I...
背景 Oracle的自定义聚合函数的定义方法,在创建函数是,使用AGGREGATE USING Clause关键词。 AGGREGATE USING Clause Specify AGGREGATE USING to identify this function as an aggregate functio...
背景 Oracle 分析函数KEEP,类似OVER的语法结构(当然,含义与之不同)。keep可以用于普通的查询,也可以用于分组聚合,同时亦可用于窗口中。 SELECT deptno, MIN(t.mgr) KEEP (DENSE_RANK FIRST ORDER BY t.sal) a from emp ...
背景 PostgreSQL 可以通过COPY批量导入或导出数据,如果是文件操作是在数据库的SERVER端操作,如果是STDIN, STDOUT则是通过协议透传到客户端。 Command: COPY Description: copy data between a file and a table ...
背景 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...
背景 当一个SELECT中包含多张表时(比如JOIN),FOR UPDATE可以指定要LOCK哪张表的匹配到的ROWS。 例如 https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#SQLRF01702 The...
背景 数据写入时,自动创建分区。 目前pg_pathman这个分区插件,有这个功能,如果你不是用的这个插件,可以考虑一下用触发器写入,并在触发器中实现自动创建分区。 《PostgreSQL 9.6 sharding based on FDW & pg_pathman》 《PostgreSQL 9.5...