随笔分类 -  PostgreSQL

摘要:背景 DBA在排查数据库问题时候,首先查看的就是日志。PG数据库在有的版本中,默认是不会写记录日志的,尽管启动项pg_ctl中提供了一个 l参数,但是只是用来分析启动时候的参数,在数据库运行过程中也需要查看日志中出现的告警,错误,还有所有人最关心的慢查询。本文就是来分析postgresql.conf 阅读全文
posted @ 2019-12-04 16:08 echao 阅读(8303) 评论(0) 推荐(1)
摘要:问题背景 在pg数据库实际使用过程中,随着业务数据的不断累积,会导致磁盘的可用空间越来越小,尤其是在linux下,没办法将原来的磁盘进行扩容,只能够通过加载新的磁盘来进行扩容。如果原来的pg数据库是一个簇,那么可以很好处理,一种是将数据库簇一部分挪走,另一种就是本文讲到的表空间迁移的方式。 分析 p 阅读全文
posted @ 2019-12-03 11:50 echao 阅读(3165) 评论(0) 推荐(0)
摘要:背景 数据库运维过程中,dba都比较关注sql的执行时间。研发在数据库应用开发上,速度慢的sql比比皆是,很多速度很慢都是sql写得不好,效率不高,执行过程中也会造成数据库的负载过大。比如无用的去重,无效的条件,不必要的子查询,sql用不上的索引。而对于这些不符合要求的sql,首先要去把这些sql找 阅读全文
posted @ 2019-11-12 17:41 echao 阅读(3365) 评论(0) 推荐(1)
摘要:问题 pg数据库的参数都是在postgresql.conf中,一般情况下,initdb后,数据库会给一个初始的配置参数。但是很多业务场景下,需要进行针对性的调整。但是调整完后,生效就比较头疼,有的参数是需要重启数据库的,有的只需要重载一下配置 文件,有的可以是会话级别的。这里配置文件就没有每个参数都 阅读全文
posted @ 2019-11-07 10:57 echao 阅读(2210) 评论(0) 推荐(0)
摘要:介绍 pg数据库在不同的业务场景下,参数最好也需要进行针对的调整。默认值是在确保资源消耗最小的情况下,pg都能够运行起来,不会导致任何致命性的威胁。而实际中,默认的参数需要进行优化来达到性能的最大化,本文介绍一些常用的参数配置。 参数 pg数据库默认安装完后在data目录会有一个postgresql 阅读全文
posted @ 2019-11-07 10:03 echao 阅读(6152) 评论(0) 推荐(0)
摘要:1 背景 一般来说,数据库的升级很少遇到,除非确实出现了新的业务需求或者系统bug无法解决的情况下才选择升级。本文基本测试了一下pg9.6升级到10.5的过程,没有遇到太大的问题。 2 升级 之前博客中有介绍,其实postgresql和mysql的安装逻辑结构很相似,数据和程序时分开的,启动时候指定 阅读全文
posted @ 2019-10-09 16:00 echao 阅读(2518) 评论(0) 推荐(0)
摘要:概述 pg数据库和mysql数据库的安装目录结构很类似,程序和数据是分开的,在启动时候可以自行指定不同的数据目录来做到启动不同的数据库。 目录 下面表格来解释pg数据目录下,每个文件夹以及文件名的作用。 目录名|作用 | base|该目录包含了数据库中各个数据库,每个数据库都是由一个文件夹组成,文件 阅读全文
posted @ 2019-10-08 17:39 echao 阅读(5047) 评论(0) 推荐(0)
摘要:1 介绍 流复制是pg数据库9.0后面版本新增的功能,基本原理是从服务器连接到主服务器,主服务器在WAL记录产生时就将它们以流式传送到从服务器中,而不必等到WAL日志文件被填充。 默认情况下,流复制是异步的,在这种情况下,主服务器提交一个事务与该变化在从服务器上变得可见之间存在短暂的延迟,不过这种延 阅读全文
posted @ 2019-09-12 12:07 echao 阅读(1047) 评论(0) 推荐(1)
摘要:1 引言 PostgreSQL数据库现在变得越来越流行,在DB Engines网站(https://db engines.com/en/ranking ),排名第四,本人所在的公司也是极力推广PG数据库,开源社区中,PG的活跃度也是非常高,本文简单介绍一下pg数据库的几种安装方法。 2 安装 2.1 阅读全文
posted @ 2019-06-11 20:51 echao 阅读(2730) 评论(0) 推荐(0)
摘要:1 概述 如果是之前学习别的数据库的人,看PostgreSQL会感觉到有句话非常奇怪:“PostgreSQL的回滚是立即完成的,不会受到事务大小本身的影响”。 奇怪在哪里呢?比方我曾经遇到过一次MySQL的故障,一个开发给生产数据库导入数据,用的是Python脚本,但是,他没有注意一个事情,Pyth 阅读全文
posted @ 2019-06-11 10:33 echao 阅读(837) 评论(0) 推荐(1)
摘要:1 介绍 具有基本知识的DBA都知道,PostgreSQL在控制数据的一致性是通过使用一种多版本模型来维护的,也就是常说的多版本并发控制MVCC。这也就意味着每一个sql语句看到的都只是一小段时间的数据库快照,或者称为版本,而并不关心底层的数据文件当中的当前状态。这样带来的好处就是保护每一个会话中的 阅读全文
posted @ 2019-06-08 11:39 echao 阅读(1556) 评论(0) 推荐(0)
摘要:1 概述 PostgreSQL官方介绍称是最先进的开源关系型数据库,支持所有主流的平台,目前已经更新到了最新版本的12.0,在MySQL被Oracle收购后,PostgreSQL开源社区越来越活跃了,同时还有分布式集群的开源方案GreenPlum,目前也非常受欢迎。本篇文章讨论PostgreSQL内 阅读全文
posted @ 2019-06-01 22:20 echao 阅读(12402) 评论(0) 推荐(0)
摘要:1 问题 最近发现一个奇怪的问题,再使用pg_dump备份一个库时候,发现备份后的大小只有几个G大小,但是统计了整个数据库的大小,发现居然超过了1000G。刚开始还以为备份过程中中断出现问题了,重新备份一次大小还是一样。后来发现是出现了膨胀非常厉害的表导致的。 2 解决 2.1 膨胀表的产生 首先需 阅读全文
posted @ 2019-05-31 11:47 echao 阅读(3957) 评论(0) 推荐(0)
摘要:1 备份恢复方法 sql转储 文件系统级备份 连续归档 2 sql转储 sql转储方法的思想就是创建一个由SQL命令组成的文件,当把这个文件返回数据库时候,数据库利用其中的sql命令重建与转储状态一样的数据库实例。postgresql提供的工具是pg_dump,这个工具的基本用法如下: 从pg_du 阅读全文
posted @ 2019-05-19 22:05 echao 阅读(14800) 评论(0) 推荐(0)
摘要:1 介绍 Greenplum是Pivotal公司开源的一款大规模并行处理(MPP)数据库,其架构是专门针对大型分析性数据仓库和商业智能工作负载设计。本质上讲,它是多个 PostgreSQL 实例一起充当一个数据库管理系统。 2 Linux配置(每一台主机) 所有节点进行配置linux的部署环境,本文 阅读全文
posted @ 2019-05-14 20:47 echao 阅读(1952) 评论(0) 推荐(0)