摘要:
一、概述 repmgr是一套开源工具,用于管理PostgreSQL服务器群集内的复制和故障转移。它支持并增强了PostgreSQL的内置流复制,该复制流提供了一个读/写主服务器以及一个或多个只读备用数据库,其中包含主服务器数据库的近实时副本。可以设置热备份服务器、监控复制、执行管理任务(故障转移、手 阅读全文
摘要:
一、错误信息 执行 pg_dump 命令备份,提示 cache lookup failed for type… 错误。 二、错误分析 根据上面日志中的提示信息,可以确定 222222 这个 ID 号,在 pg_type 表中无法查找到。 分析 pg_proc 表结构。查看 pg_proc 表中对 p 阅读全文
摘要:
背景 国内的应用,在文本排序上基本都是按照拼音来进行排序的。 在不同的字符集中,汉字的编码可能不一样,比如UTF8和GBK,其中GBK是按拼音的顺序进行编码的,而UTF8则不是。 所以如果你的数据库使用了UTF8编码,对中文字段进行排序时,可能得到的并不是按拼音排序的结果。 在PostgreSQL中 阅读全文
摘要:
PostgreSQL的MVCC是直接在原表通过增加新tuple来实现的,决定了它在大结果集count的时候性能不会太理想,因为需要对大结果集做可见性判断将会是一项繁重的工作,比如下面这种SQL: select count(*) from big_tab; 单纯依靠DB进行优化,确实不是一件容易的事情 阅读全文
摘要:
今天我们要探讨的是 custom执行计划和通用执行计划。这一技术在 Oracle中被称为绑定变量窥视。但 Postgresql中并没有这样的定义,更严格地说,Postgresql叫做custom执行计划和通用执行计划。 什么是custom执行计划,什么是通用执行计划,我们先来看一个例子,我创建了一个 阅读全文
摘要:
Postgresql 提供了对于分区表 global index 的支持。global index 不仅提供了对于唯一索引功能的改进(无需包含分区键),而且在性能上相比非global index (local index)有很大的提升(无法提供分区条件情况下)。以下举例说明二者在性能方面的差异。 1 阅读全文
摘要:
背景 对于多数数据库,dba技能之一就是查找锁。锁的存在有效合理的在多并发场景下保证业务有序进行。下面我们看一下Postgresql中查找阻塞的方法。 1、找到"被阻塞者",获取被堵塞的PID select distinct pid from pg_locks where not granted; 阅读全文
摘要:
1、前言 在处理用户问题过程遇到一个问题。用户通过pg_dump导出 bytea 对象时,当行的大小超过 1G时,会报错: [v8r6c5b41@dbhost01 ~]$ sys_dump -t t1_bytea -f 1.dmp -U system testsys_dump: error: Dum 阅读全文
摘要:
1、前言 PostgreSQL 聚合算法有两种,HashAggregate and GroupAggregate 。我们知道GroupAggregate 需要对记录进行排序,而 HashAggregate 则无需进行排序,通常 HashAggregate 要快很多。 但是,我们经常会看到优化器使用 阅读全文