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, 和自建能拿到的权限一致.