![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PG
文章平均质量分 73
三思呐三思
这个作者很懒,什么都没留下…
展开
-
PG用户default privileges授权不生效?
PG数据库的数据库用户授权相较MySQL是有所不同的。MySQL通过grant对整个schema的表对象授权select权限,被授权账号将会拥有该schema下的所有表对象以及未来创建的表对象的select权限。PostgreSQL数据库通过grant对整个schema的表对象授权select后,被授权账号默认只拥有该schema下当前所有表对象的select权限,不包含该schema下未来创建的表对象的权限。如果需要数据库用户对该schema下未来创建的表对象继承select权限,需要通过alter原创 2022-04-24 11:35:32 · 2623 阅读 · 2 评论 -
PG逻辑复制介绍
在PostgreSQL 10 之前的流复制都是基于wal日志进行的物理复制,PostgreSQL 10版本中新增了一个逻辑复制的特性,逻辑复制是基于逻辑解析进行复制。它使用类似消息队列的发布者、订阅者的模型,利用复制槽的技术,发布者将wal日志解析成一定格式的数据流,订阅者对解析后的wal日志数据流进行回放应用,从而实现数据的同步。但是需要注意的是,PG的逻辑复制不是“SQL”复制,而是复制SQL操作的结果。一、逻辑复制概念逻辑复制的适用场景将多个数据库的数据合并到一个数据仓库的数据库中,用于数据仓原创 2022-01-19 12:06:58 · 2310 阅读 · 0 评论 -
PostgreSQL之vacuum学习
文章目录一、vacuum的背景1.1 常见数据库MVCC实现对比二、vacuum工作机制2.1 vacuum2.2 autovacuum我们常用的关系型数据库有MySQL、Oracle、SQL Server、PostgreSQL等…但是vacuum的概念只有PG数据库有,而且运维过PG数据库的工程师都应该对它很熟悉,vacuum是PG数据库非常关键的一个操作。那么PG数据库的vacuum是用来干什么的?为什么会有vacuum?一、vacuum的背景1.1 常见数据库MVCC实现对比在了解vacuum原创 2021-11-01 21:51:55 · 5969 阅读 · 0 评论 -
PG复制状态监控
文章目录发布端pg_replication_slotspg_stat_replication订阅端pg_subscription_relpg_stat_subscriptionpg_stat_wal_receiver发布端pg_replication_slots展示当前数据库已创建的逻辑/物理复制槽信息。postgres=# select * from pg_replication_slots ;-[ RECORD 1 ]-------+----------slot_name原创 2021-11-01 21:48:50 · 2180 阅读 · 0 评论 -
PG数据库wal日志空间异常
文章目录问题描述处理思路处理过程问题描述PG数据库实例磁盘空间使用率高达97%,其中wal空间使用量占用32G,相对比较异常。处理思路wal日志是PG数据库的事务预写日志,对于数据库的一个变更操作,数据库流程大概如下:● 客户端执行DML操作进行数据变更● 将相关的变更数据页写入wal buffer,对应的数据更新写到内存中的数据页(脏页)● 事务commit时,wal buffer进行刷盘,写入到wal log,该步骤已经保证了数据不会丢失● 周期性checkpoint出发将内存中的脏页原创 2021-09-26 14:02:14 · 2020 阅读 · 0 评论 -
pg高可用之repmgr(三)
repmgr也可以实现自动故障转移的failover功能,相对于手动switchover,其配置上也有一些不同。一、PostgreSQL共享库加载repmgr若想要实现高可用集群的自动故障转移,就必须使用repmgrd的守护程序,用来监控和记录复制集群信息、检测集群复制故障并决策选出最佳服务器并提升为主服务器,启动repmgrd的同时需要我们在PostgreSQL数据库中添加repmgr的共享库。$ vim /pg_data/pgsql11/data/postgresql.conf share原创 2021-05-20 11:57:07 · 1571 阅读 · 5 评论 -
pg高可用之repmgr(二)
承接上篇文章的PostgrSQL + repmgr的搭建部署,本篇主要讲述PostgreSQL + repmgr高可用集群集群是如何实现switchover,以下是具体场景及其操作步骤。一、手动提升standby为primary该命令常见的使用场景为,若没有配置自动failover,primary节点宕机后,手动将指定standby节点并提升为primary主服务器节点。1、查看正常情况下集群状态[postgres@172-16-104-55 ~]$ repmgr -f /pg_data/pg原创 2021-05-19 22:37:52 · 1700 阅读 · 3 评论 -
pg高可用之repmgr(一)
文章目录一、repmgr初识1.1 repmgr基本概念1.2 PostgreSQL + repmgr 基本架构1.3 repmgr常用命令二 repmgr安装部署2.1 部署规划2.2 OS基本环境配置2.3 PostgreSQL数据库服务安装2.3 repmgr安装部署一、repmgr初识repmgr是一套开源的PostgreSQL集群管理工具,具有非常轻量级的使用特性。具体表现有以下特点:配置操作简单,可一键式完成相关部署操作;支持Auto Failover和Manual Switchov原创 2021-05-19 15:48:54 · 8415 阅读 · 5 评论 -
如何使用systemctl管理postgres数据库启停
当我们使用源码编译安装PostgreSQL数据库后,通常情况下是没有直接可使用的systemctl管理,若需要使用systemctl进行服务的管理,可进行以下配置:环境:CentOS 7数据库:PostgreSQL 11systemctl管理脚本:/usr/lib/systemd/system/postgres11.servicesystemctl管理命令:systemctl {status|restart|start|stop|reload} postgres11具体操作如下:-- 进入原创 2021-05-14 16:22:32 · 2111 阅读 · 2 评论 -
postgres用户权限管理
文章目录一、用户权限管理1.1 创建用户并授权1.2 postgres用户登录验证一、用户权限管理1.1 创建用户并授权postgre中主要有create role和create user两个语法来创建角色或者用户,两者从功能上来讲基本一致,create user是create role的变种,唯一的区别是 create user 中默认为login,而create role默认为nologin。1、create user语法CREATE USER name [ [ WITH ] option [原创 2021-03-20 17:01:44 · 1559 阅读 · 0 评论 -
GP集群部署(6.11.2)
文章目录一、资源规划1.1 环境配置信息1.2 资源规划二、操作系统配置2.1 修改主机名2.2 关闭防火墙与selinux2.3 挂载磁盘2.4 配置sysctl.conf2.5 修改系统资源限制2.6 磁盘I/O调度算法2.7 磁盘I/O调度算法2.8 禁用透明大页面2.9 配置NTF时钟三、GP集群搭建3.1 下载安装依赖包3.2 创建数据库用户3.3 安装greenplum程序3.4 配置all_host、seg_host文件3.5 配置免密互信3.6 打通gpadmin 用户免密登录3.7 批量设原创 2020-11-30 20:14:02 · 2312 阅读 · 0 评论 -
Postgres慢SQL排查手段
文章目录一、慢SQL日志记录1.1 相关参数设置1.2 查看相关慢SQL日子二、pg_stat_statements插件2.1 插件安装三、排查手段3.1 查看当前会话执行情况3.2 通过pg_stat_statements查看TOP SQL3.3 kill执行效率低下的堆积会话一、慢SQL日志记录1.1 相关参数设置-- 基本日志采集开启参数log_destination = 'stderr' # Valid values are combinations oflogg原创 2020-11-15 17:31:21 · 2812 阅读 · 0 评论 -
pg_stat_statement如何安装部署使用
pg_stat_statements模块提供一种跟踪执行统计服务器执行的所有SQL语句的手段。该模块默认是不开启的,如果需要开启需要我们手动对其进进行编译安装,修改配置文件并重启数据库,并在使用前手动载入该模块。1、手动对pg_stat_statement模块进行编译安装-- 进入pgsql软件的contrib目录下,查看是否有pg_stat_statements相关模块# pwd/usr/local/postgresql-12.2/contrib# ls | grep pg_stat_state原创 2020-10-25 23:42:58 · 2497 阅读 · 1 评论 -
PG统计信息
文章目录一、统计信息1.1 PG统计信息概述1.2 负载指标统计信息1.2.1 pg_stat_database 指标含义1.2.2 pg_stat_user_tables 指标含义2.2.3 pg_stat_user_indexes 指标含义2.2.4 pg_statio_user_tables 指标含义2.2.5 pg_stat_bgwriter 指标含义2.2.6 pg_stat_replication 指标含义2.2.7 pg_stat_statement 指标含义1.3 数据分布类统计信息1.3.原创 2020-10-25 23:38:08 · 3655 阅读 · 0 评论 -
PG执行计划解析
文章目录一、Explain基本使用1.1 命令解释1.2 explain结果输出解释二、扫描数据方式2.1 全表扫描2.2 索引扫描2.3 位图扫描2.4 条件过滤三、表关联方式3.1 NestLoop join3.2 Hash join3.3 Merge join一、Explain基本使用1.1 命令解释explain [ ( option [,...] ) ] statementexplain [ analyze ] [ verbose ] statementoption选项有:analy原创 2020-10-22 22:43:41 · 3999 阅读 · 3 评论 -
MVCC多版本并发控制
文章目录一、 表系统字段几个比较重要概念1.1 tuple1.2 事务id(txid)二、 PG数据库DML操作的相关概念2.1 t_xmin、t_xmax行为方式2.2 cmin、cmax的行为方式(t_cid)2.3 commit log(CLOG)2.4 事务快照三、多版本并发控制3.1 常见多版本并发的实现方式3.2 PG多版本并发控制实现原理3.3 PG并发版本控制所必要的一些维护操作一、 表系统字段几个比较重要概念1.1 tupletuple表示表中的数据行,在MySQL中用row表示原创 2020-10-21 14:41:09 · 419 阅读 · 0 评论 -
PG锁
文章目录一、表级锁1.1 表级锁模式1.2 表级锁兼容性二、行级锁2.1 行级锁模式2.2 行级锁兼容性2.3 锁测试三、页面级锁四、死锁五、咨询锁5.1 什么是咨询锁5.2 咨询锁相关函数5.3 资源锁测试六、锁的维护6.1 锁相关参数6.2 锁监控一、表级锁1.1 表级锁模式常见锁模式以及应用场景:ACCESS SHARE :select操作获取该模式锁资源,通常情况下所有只读取不修改表的查询都会获取该模式锁资源ROW SHARE : select for update 和 select f原创 2020-10-20 09:35:20 · 1740 阅读 · 0 评论 -
PG体系结构
文章目录一、进程结构1.1 主进程1.2 辅助子进程1.3 服务进程二、逻辑架构三、内存结构3.1 共享内存3.2 本地内存四、物理结构4.1 安装目录4.2 参数文件4.3 日志文件4.4 其他一些目录文件五、服务管理5.1 服务启停3.2 单用户模式一、进程结构三个进程:主进程、服务进程、辅助子进程PG数据库启动时会先启动一个postmaster的主进程,然后fork出一些辅助子进程,不同的辅助子进程负责不同的工作。当客户端请求访问时,客户端先与postmaster主进程创建连接并进行身份验证,身原创 2020-10-14 09:10:51 · 1972 阅读 · 1 评论 -
pathman分区表工具的使用
文章目录一、概述二、安装部署三、基本命令3.1 相关视图与表3.2 分区管理函数四、示例一、概述在PG<=10的版本中,都是通过表继承的方式进行分区的,必须使用CHECK CONSTRAINT将每个分区创建为子表 。PostgreSQL 10提供了本机分区,它与经典方法没有什么不同,通过隐式约束条件来实现,并且其大多数限制仍然相关。源生的两种分区表的实现在执行select/delete/update时执行计划根据约束和查询条件排除不需要查询的分区表。调用COPY或插入数据时使用触发器或规则,将原创 2020-10-13 15:41:41 · 2131 阅读 · 0 评论 -
PG备份管理工具pg_probackup
文章目录一、pg_probackup概述二、安装部署2.1 源码安装2.2 rpm包安装部署三、常用命令四、工具使用4.1 初始化配置4.2 数据备份(全备+增备)4.3 数据恢复一、pg_probackup概述pg_probackup 是一款免费的postgres数据库集群备份工具,与其他备份工具相比,它主要有如下一些优势:提供增量备份,增量备份一定程度上可以节省磁盘空间的使用并且减少备份时间消耗可通过全量备份+增量备份进行增量恢复无需通过实际的数据恢复操作验证备份文件是否有效Verific原创 2020-09-24 11:09:53 · 2439 阅读 · 1 评论 -
PG主从架构部署
文章目录一、主数据库配置二、配置从服务器三、修改主从复制模式为同步模式一、主数据库配置1、通过rpm或者源码安装单机数据库2、修改监听端口默认数据库的监听端口为 localhost,若需要搭建主从我们要修改监听端口保证主从之间的连通性。1)psql修改通过psql的命令行修改,在data目录下会新生成一个postgresql.auto.conf的文件,PG数据库默认优先使用postgresql.auto.conf-bash-4.2$ /usr/local/pgsql/bin/psql -c "原创 2020-09-09 19:27:44 · 1350 阅读 · 0 评论 -
PG备份恢复(二)
文章目录二、物理备份2.1 冷备2.2 热备1、快照备份2、PITR热备份(point-in-time-recover)1)pg_hba.conf 文件2)wal日志备份3)pg_basebackup 工具4)按时间恢复示例二、物理备份2.1 冷备物理冷备就是将数据库停止掉后,通过对PGDATA目录进行物理拷贝进行物理备份。该方式最大的缺点就是为保证数据一致性必须停止数据库。2.2 热备1、快照备份通过对服务器进行快照备份,使用文件系统或者块设备级别的快照功能完成备份,保证数据为备份时刻的一致性原创 2020-09-09 19:26:25 · 1414 阅读 · 0 评论 -
PG备份恢复(一)
文章目录一、逻辑备份1.1 逻辑备份工具1、pg_dump基本语法2、备份命令示例1.2 逻辑备份恢复1、pg_dump基本语法2、psql恢复指定SQL脚本3、pg_restore使用示例一、逻辑备份1.1 逻辑备份工具PG提供了pg_dump、pg_dumpall两种方式进行逻辑备份,其区别就是pg_dumpall只能将数据库全部数据集dump到一个脚本文件中,而pg_dump可以选择指定数据库进行逻辑备份。两者均可以保证dump数据的一致性,且不阻塞其他会话的正常读写操作。1、pg_dump基原创 2020-09-09 19:25:44 · 1192 阅读 · 0 评论 -
pg12安装部署
文章目录一、rpm包安装部署二、源码安装三、PG数据库关闭的三种模式(smart/fast/immediate)一、rpm包安装部署1、安装RPM包# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# yum install -y postgresql12-server# rpm -qa | grep postg原创 2020-09-09 19:24:32 · 2976 阅读 · 0 评论