![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PostgreSQL
文章平均质量分 61
Eric.zhong
日企工作10年的农民工-_-
展开
-
PostgreSQL技巧之ShareLock死锁处理
1年多前上线一套基于PostgreSQL 9.6的主从数据库的业务系统。许多的业务表数据量已经超过千万级别,甚至接近亿级别。日常业务操作中,insert/update大约是十万左右,delete大约是三万左右,从而可能有一些表的统计信息不是十分准确。业务系统也存在一些特殊性(程序呆板),部分业务SQL回访表等都是三四百万级别的。用户反馈业务系统缓慢,IT运维反馈业务系统磁盘IO高,CPU高…不升级硬件无法抗住。在系统会出现ShareLock错误,参考如下:问题分析PostgreSQL的autovacuu原创 2022-07-06 09:58:09 · 1443 阅读 · 0 评论 -
PostgreSQL 运用技巧之四:逻辑备份与恢复
文章目录PG_DUMP备份方式介绍命令参数脚本Linux参考Windows参考恢复方式介绍命令参数脚本PG_DUMP备份方式介绍PostgreSQL提供的一个工具pg_dump,逻辑导出数据,生成sql文件或其他格式文件,pg_dump是一个客户端工具,可以远程或本地导出逻辑数据,恢复数据至导出时间点。命令pg_dump -h 192.168.0.82 -U postgres postgres > postgres.bak如果PostgreSQL数据库的数据库表结构(database原创 2022-02-25 22:25:56 · 1050 阅读 · 0 评论 -
PostgreSQL技巧之insert、update速度慢优化
文章目录背景信息原因分析1. PostgreSQL参数配置是否正确解决方案2. 判断新建的表是否存在相同问题解决方案3. 检查元祖信息解决方案4. 检查表的索引数量是否过多解决方案背景信息普通Update SQL语句执行速度异常缓慢,批量更新10000数据竟然运行超过1小时也没有结果…UPDATE SQL语句非常简单,它的流程就是将临时表数据更新到正式表。原因分析1. PostgreSQL参数配置是否正确shared_buffers => 物理内存1/4;maintenance_work原创 2022-01-19 13:17:27 · 6113 阅读 · 0 评论 -
PostgreSQL 运用技巧之三:密码重置
文章目录背景信息解决方案背景信息客户现场运维全体离职,这导致许多的一些内容未能完全交接,比如有一批PostgreSQL数据库完全没有任何的管理账号与密码信息。没有办法只能协助重置PostgreSQL管理员账号,然后再去看看如何慢慢调整过来的。解决方案PostgreSQL使用存储在数据库数据目录中的pg_hba.conf配置文件来控制客户端的连接认证参数。将该值设置为trust意味着您可以以postgres的身份登录,而无需输入密码。将值设置为md5的默认值意味着您应使用密码以postgres身原创 2022-01-19 09:54:54 · 1091 阅读 · 0 评论 -
PostgreSQL 运用技巧之二:各时间段WAL产生量查询
文章目录背景描述技巧方法背景描述通常可以通过统计wal在各个时间段内产生的数量确认数据库繁忙程度。技巧方法pg10及以后的通用版本select to_char(date_trunc('day',wal.modification),'yyyymmdd') as day, sum(case when date_part('hour',wal.modification) >=0 and date_part('hour',wal.modification) <24 the原创 2021-03-11 10:43:16 · 858 阅读 · 1 评论 -
PostgreSQL 运用技巧之一:快速查看配置
文章目录背景描述技巧方法背景描述在工作中经常会遇PostgreSQL配置检查,但是此配置与其他数据库配置有些不一样。参考如下所示,它会有许多注释并非在行首,而是镶嵌在行中间。我需要花费一些时间来进行排版与整理,才可以开始协助优化分析。技巧方法windows 方法:通过PGAdmin III 打开postgresql.conf配置文件Linux方法:grep '^\ *[a-z]' postgresql.txt|awk -F "#" '{print $1}'|awk -F "=" '{pri原创 2021-03-11 10:24:42 · 883 阅读 · 0 评论 -
PostgreSQL数据库系列之十二:权限管理
文章目录权限管理概述权限管理类型权限管理命令参考1. 用户创建与变更密码2. 表对象权限授权3. 表对象指定列权限授权4. 序列属性授权权限管理概述当初始化PG数据库后,它自动有会有一个超级用户,通常这个超级用户的名称与初始化PG数据库时的操作系统用户名相同。比如你在Windows操作系统里以Administrator管理员部署,那么PG数据库也将会有一个Administrator(※ 大小写严格区分)超级用户作为超级管理员。通常来说,DBA不会将数据库超级管理员提供给开发人员部署到业务系统配置文件,原创 2020-06-09 22:31:00 · 2414 阅读 · 0 评论 -
PostgreSQL数据库系列之十一:延迟备库
延迟备库是指可以配置备库和主库的延迟时间,这样备库始终和主库保持指定时间的延迟,例如设置备库和主库的延迟时间为1小时,理论上备库和主库的延迟始终保持在一小时左右。注意事项:此延迟备库参数在同步复制环境中,如果错误与synchronous_commit=remote_apply设置在一起,那么他将会影响到主库被锁定的情况。synchronous_commit=on参数共存与异步流复制一致的。...原创 2020-02-14 17:28:00 · 863 阅读 · 0 评论 -
PostgreSQL数据库系列之十:主备切换
主库复制创建参考<PostgreSQL数据库系列之九:主备复制>,这里我记录主备切换的方式。主备切换之文件触发方式简易拓扑图主要步骤[备库操作] 检查备库recovery.conf文件trigger_file参数,设置激活备库的触发文件路径和名称;recovery.conf配置参考:standby_mode = onprimary_conninfo = 'host=...原创 2020-02-14 14:10:01 · 1800 阅读 · 0 评论 -
PostgreSQL数据库系列之九:主备复制
流复制(Streaming Replication)起源PostgreSQL 自从2010年推出的9.0版本开始,支持流式物理复制,用户可以通过流式复制,构建只读备库(主备物理复制,块级别一致)。流式物理复制可以做到极低的延迟(通常在1毫秒以内)。9.0 异步流复制(默认方式) => 指主库上提交事务时不需要等待备库接收WAL日志流并写入到备库WAL日志文件时便返回成功; ※ 如果...原创 2020-02-14 12:08:43 · 1393 阅读 · 0 评论 -
PostgreSQL数据库系列之八:运行日志
PostgreSQL可以通过配置实现日志输出记录,默认是没有启动记录。它提供许多的日志输出以满足数据库审计,比如用户登录与登录出时间。PostgreSQL常用日志参数项目默认值设定值说明logging_collectoroffon日志收集功能是否启动log_destinationstderrcsvlog日志收集存储方式log_directory...原创 2019-12-11 23:43:47 · 8936 阅读 · 1 评论 -
PostgreSQL数据库系列之七:配置优化
PostgreSQL.conf配置说明选项默认值说明是否优化原因max_connections100允许客户端连接的最大数目否因为在测试的过程中,100个连接已经足够fsyncon强制把数据同步更新到磁盘是因为系统的IO压力很大,为了更好的测试其他配置的影响,把改参数改为offshared_buffers128MB决定有多少内存可以被Po...原创 2019-12-10 01:10:35 · 890 阅读 · 0 评论 -
PostgreSQL数据库系列之六:增量备份和恢复
[概述]备份是恢复的前提。不发生故障时,世界很太平,但发生故障时,如果不能顺利进行恢复,那将是一场噩梦!甚至可能对于企业是致命打击,这绝对不是危言耸听!日常的备份有效性的检查就显得尤其重要,一个无效的备份集和没有备份是一样的,例如备份文件无法解压,或者存储备份的介质损坏等等。除了制定备份恢复策略,还应该制定一套定期、定时的恢复测试方案。我们在恢复测试中,应该考量恢复需要花费的时间,日常测试时,...原创 2019-12-09 01:24:52 · 8519 阅读 · 0 评论 -
PostgreSQL数据库系列之五:预写式日志WAL
[WAL介绍]在PostgreSQL中,通过Write Ahead Log(WAL) 预写式日志来作为标准的事务日志。对于PostgreSQL来说,未采用WAL机制之前,如果数据库崩溃,可能存在数据页不完整的风险,而WAL 在日志里保存整个数据页的内容,完美地解决了这个问题。WAL是PostgreSQL数据库的重要组成部分,它存储了PG系统中所有更改和操作的历史信息,以确保数据库不会因为故障(...原创 2019-12-05 17:42:43 · 2975 阅读 · 0 评论 -
PostgreSQL 数据库系列之四:进程与内存结构
PostgreSQL数据库启动时会启动若干个进程,其中有Postmaster(守护进程)、postgres(服务进程)、syslogger、checkpointer、bgwriter、walwriter等辅助进程。[守护进程与服务进程关系]postmaster进程的主要职责有:数据库的启停;监听客户端连接;为每个客户端连接fork单独的postgre服务进程;当服务进程出错时进行修...原创 2019-08-28 21:24:29 · 596 阅读 · 0 评论 -
PostgreSQL 数据库系列之一:源码安装
PostgreSQL运行账户创建:groupadd -g 1100 postgresuseradd -g 1100 -u 1100 postgres && echo “postgres” | passwd --stdin postgres※ 注意事项A.PostgreSQL群集建议配置NTP服务并且设置统一的uid与gid 。PostgreSQL常规部署命令...原创 2019-08-22 21:21:32 · 500 阅读 · 0 评论 -
PostgreSQL 数据库系列之三:逻辑与物理结构
PostgreSQL数据库有一个数据库集簇Database Cluster概念(此Cluster非彼Cluster,它只是集合统合的意思)。数据库集簇Database Cluster是指单个PostgreSQL服务器实例管理的数据库集合,组成数据库集簇Database Cluster的这些数据库使用相同的全局配置文件和监听端口、共用进程和内存结构。[逻辑结构]PostgreSQL数据库默认会创...原创 2019-08-25 21:42:36 · 921 阅读 · 0 评论 -
PostgreSQL 数据库系列之二:PSQL客户端
[PSQL介绍]psql是一个PostgreSQL的基于终端的前端(相当于Oracle数据库的SQLPLUS)。它让你能交互式地键入查询,把它们发送给PostgreSQL,并且查看查询结果。此外,它还提供了一些元命令和多种类似Shell的特性来实现书写脚本,以及对大量任务的自动化作业。[PSQL常用命令]1.查询当前数据库psql -l2.数据库登录psql -h <host...原创 2019-08-23 22:55:55 · 927 阅读 · 0 评论