【PostgreSQL 创新营】第五课:PostgreSQL监控实战 答疑汇总

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 【PostgreSQL 创新营】第五课:PostgreSQL监控实战 答疑汇总

Q1:实现高可用的几种方法,有例子最好?
高可用方案:patroni(推荐)、第二象限repmgr、pgpool-II+pgbouncer、云RDS等云产品

Q2:流复制有什么注意点和坑
1)配置合理的WAL参数/从库设置数据槽,防止从库WAL remove类报错
2)数据槽失效/处理效率缓慢导致WAL堆积问题。PG 13新增max_slot_wal_keep_size参数控制
3)避免单条SQL更新大量的数据,造成commit后,主库WAL激增
4)上游是HA实例,需要注意切换后下游节点日志要比上游的少。
5)设置archive_mode=on,但无配置archive_command导致WAL堆积
6)建议配置tcp_keepalives_idle,tcp_keepalives_interval和tcp_keepalives_count参数
7)详情可自行阅读github/官档

Q3:在windows2008R2上实现高可用,在配置方面需要特别注意什么?
1)推荐使用linux操作系统
2)可以基于流复制,并结合windows集群管理软件实现HA

Q4:如何通过监控动态窗口快速定位指定时间段内不同维度的TOP SQL?
1)pg_stat_statment自定义时间段进行存储,并定时执行pg_stat_reset
2)可以参考github中pg_awr的配置:https://github.com/digoal/blog/blob/master/201611/20161123_01.md

Q5:主库宕机备库自动提升的插件是啥
patroni

Q6:如何很好的监控表膨胀情况
1)定期输出表和索引的膨胀情况,尤其是TOP定期清理
2)可以借助pg_repack、pgcompacttable、pg_reorg、pg_squeeze插件
3)监控语句可以参考:
pg 10之前使用:
https://github.com/digoal/blog/blob/master/201611/20161123_01_sql_001.sql
pg 10之后:https://github.com/digoal/blog/blob/master/201611/20181130_01_sql.sql

Q7:pg单表到多大量,模糊匹配的效率有明显的下降?此特性相比mysql是否有优势?
1)效率主要看匹配度
2)比MySQL有优势,PG可以走GIN索引,MySQL无法利用索引进行模糊查询匹配

Q8:pigsty需要在目标服务器安装agent吗?有几种监控方式
1)pigsty主要借助Prometheus+Grafana+Consul,目标库需安装对应组件的agent
2)详情可参考Exporter内容

Q9: 图形加载那么多 会不会运行一段时间之后会有点慢 ?
相同时间窗口不会。选择时间范围跨度越大理论上越慢

Q10: pigsty是否支持proxy分布式采集部署
详情查阅官网https://pigsty.cc/zh/,或者提交issue

Q11:网上很多附件功能的开源插件,也是pg的优势,怎么保证生产环境插件的安全性?
1)建议查看对应插件的代码,分析插件所需的权限以及相应的影响
2)对于需要篡改数据库信息的插件,使用前要有多加注意

Q12:pg有没有什么好的性能分析工具?
1)通常合理、全面的监控指标是分析生产问题利器
2)可以借助pganalyze、pgHero等工具

Q13: pigsty官网说明是有企业版,githup版本可免费用于测试生产,请问是不是github上开源pigsty有什么限制。
建议提github问下作者

Q14:异步流复制模式下,主备节点都同步在一个WAL(内部可能有毫秒级应用延时),如果主库突然crash,怎么确认应用事务号之间的差异(用来确认丢了多少数据)?
1)除非主库crash时,从库有记录主库的位点
2)详见:PostgreSQL 13在standby节点也能监控主从延迟 pg_stat_wal_receiver latest_end_lsn 源码解读https://github.com/digoal/blog/blob/master/202005/20200520_03.md

Q15:孙宇文,pg有无像oracle的sql tunning advisor的SQL优化插件,可以自动评估SQL的优化方案,或实现自治
可借鉴:
powa4 PostreSQL Workload Analyzer - PostgreSQL监控工具、带WEB展示 - 索引推荐,等待事件分析,命中率,配置变更跟踪等https://github.com/digoal/blog/blob/master/201905/20190520_01.md

Q16:kevin yang,pigsty 可以用来监控 rds pg吗?
pigsty可以监控rds pg但是可以被监控的指标可能比自建的少, 因为rds pg给的最高权限账号rds superuser比superuser少一些权限. 某些指标可能拿不到. rds pg已经内置了一些核心监控指标, 对于大多场景足够用了. 有自己安装监控需求同时又不想自己管理的用户建议可以使用mybase pg服务, 开放OS权限和superuser, 和自建能拿到的权限一致.

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
18天前
|
SQL 存储 关系型数据库
不允许你不知道的 MySQL 优化实战(三)
不允许你不知道的 MySQL 优化实战(三)
25 1
|
22天前
|
关系型数据库 MySQL
【MySQL实战笔记】07 | 行锁功过:怎么减少行锁对性能的影响?-01
【4月更文挑战第18天】MySQL的InnoDB引擎支持行锁,而MyISAM只支持表锁。行锁在事务开始时添加,事务结束时释放,遵循两阶段锁协议。为减少锁冲突影响并发,应将可能导致最大冲突的锁操作放在事务最后。例如,在电影票交易中,应将更新影院账户余额的操作安排在事务末尾,以缩短锁住关键行的时间,提高系统并发性能。
15 4
|
23天前
|
关系型数据库 MySQL 数据库
【MySQL实战笔记】 06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍?-01
【4月更文挑战第17天】MySQL的锁分为全局锁、表级锁和行锁。全局锁用于全库备份,可能导致业务暂停或主从延迟。不加锁备份会导致逻辑不一致。推荐使用`FTWRL`而非`readonly=true`因后者可能影响其他逻辑且异常处理不同。表级锁如`lock tables`限制读写并限定操作对象,常用于并发控制。元数据锁(MDL)在访问表时自动加锁,确保读写正确性。
70 31
|
1月前
|
存储 关系型数据库 MySQL
【MySQL实战笔记】 04 | 深入浅出索引(上)-01
【4月更文挑战第8天】这篇文章除了介绍索引的作用和提高查询效率的原理,还探讨了三种常见的数据结构:哈希表、有序数组和搜索树。哈希表适合等值查询,但不支持范围查询;有序数组利用二分查找实现快速等值查询,但更新成本高;二叉搜索树保持平衡时查询高效,但磁盘存储时效率低。文章指出,由于磁盘读取延迟,实际数据库索引设计需考虑减少磁盘访问次数。
34 5
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-1
【4月更文挑战第4天】SQL更新语句执行涉及查询和日志模块,主要为`redo log`和`binlog`。`redo log`先写日志再写磁盘,保证`crash-safe`;`binlog`记录逻辑日志,支持所有引擎,且追加写入。执行过程分为执行器查找数据、更新内存和`redo log`(prepare状态)、写入`binlog`、提交事务(`redo log`转commit)。两阶段提交确保日志逻辑一致,支持数据库恢复至任意时间点。
22 0
|
18天前
|
SQL 关系型数据库 MySQL
不允许你不知道的 MySQL 优化实战(二)
不允许你不知道的 MySQL 优化实战(二)
25 2
|
1月前
|
SQL 安全 关系型数据库
【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-01
【4月更文挑战第6天】MySQL事务的隔离性确保数据操作的完整性和一致性,ACID原则包括原子性、一致性、隔离性和持久性。事务隔离级别有四种:读未提交、读提交、可重复读和串行化,分别解决并发问题如脏读、不可重复读和幻读。不同隔离级别在效率和安全性间权衡,例如读未提交允许未提交变更可见,而串行化通过锁保证安全但可能降低效率。在不同隔离级别下,事务看到的数据状态会有所变化,例如在可重复读级别,事务始终看到初始数据,而在串行化级别,事务会等待其他事务完成再继续,避免数据冲突。
278 10
|
13天前
|
缓存 关系型数据库 MySQL
MySQL数据库性能优化实战
【4月更文挑战第30天】本文探讨了MySQL性能优化实战技巧,包括硬件与配置优化(如使用SSD、增加内存和调整配置参数)、索引优化(创建合适索引、使用复合索引及定期维护)、查询优化(避免全表扫描、减少JOIN和使用LIMIT)、分区与分片(表分区和数据库分片),以及使用缓存、定期清理数据库和监控诊断。通过这些方法,可以提升数据库性能和响应速度。
|
15天前
|
存储 关系型数据库 MySQL
MySQL数据库实战:从入门到精通
本文介绍了MySQL的使用和优化,适合Web开发者阅读。首先,确保安装并配置好MySQL,熟悉SQL基础。接着,通过命令行客户端连接数据库,执行创建、查询、添加、修改和删除数据等操作。学习数据类型并创建表存储数据。最后,探讨了数据库优化,包括查询优化和索引使用,以提升性能。
26 2
|
17天前
|
安全 关系型数据库 MySQL
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
23 3

相关产品

  • 云原生数据库 PolarDB