【学习视频】第5期2019-PG天天象上沙龙纪录 - 适合DBA

背景


PG是一个纯社区化的企业级开源数据库,没有任何一个国家和公司控制PG。开源许可非常友好,在遵循许可(COPY 2段话)的情况下可以任意使用和分发。功能、稳定性、性能和ORACLE对齐,是去O的首选数据库。

其他大多数的开源数据库背后都有商业公司控制,开源许可通常不是特别友好,使用不当可能踩坑。

《PostgreSQL 社区分析 - 为什么PostgreSQL社区几乎不可能被任何一个商业公司、国家所控制?》

1、PG天天象上沙龙回顾,视频。

天天象上活动,每个月一场,全国巡回。旨在建立各地企业生态圈子,建立各地企业与PG数据库社区的联系,切实的帮助企业解决技术、商业、生态层面的问题。

xx摩擦、ZxE事件、以及近期某银行收到Oracle6亿罚单等等的热点事件,引发了企业对核心技术安全合规、自主可控的深度思考。对于数据库来说,安全合规、自主可控,成本等也已经成为绝大多数企业迫在眉睫要解决的问题。

什么数据库最适合替代Oracle,同时在技术架构上领先于传统数据库,并且可以支持企业的蓬勃发展?除了需要考虑Oracle兼容性、企业特性(可靠、可用、安全、可扩展、性能、稳定、功能)还需要考虑产品的开源许可,多模特性,混合场景能力等等。

PostgreSQL作为最先进的企业级开源数据库(BSD like开源许可,自用和分发都不需要担心法律风险,不需要担心PG被收购,不用担心PG被一家独大的公司控制。),覆盖OLTP,OLAP,NoSQL,搜索,时空,流,图,图像等应用场景。应用场景丰富,并且在稳定性、性能、可用性、可靠性、容灾、安全性、扩展性等方面不亚于商用数据库Oracle,被业界称为“开源界的Oracle”。在企业数据库自主可控、安全合规、成本几个方面,PG毫无疑问的成为了企业的最佳选择。

为帮助企业掌握去O能力。阿里云数据库团队、PG社区、云栖社区、云栖技术日、阿里云技术创新中心共同推出《PG天天象上》活动,涵盖《PostgreSQL 应用案例、原理、最佳实践》、《PPAS + ADAM Oracle 迁移上云》、《企业数据库安全、自主可控》、《各行业的TOP软件开发商分享》、《数据库服务提供商、集成商的分享》、《企业圆桌深入研讨》等系列主题。

2018年9月开始,《PG天天象上》活动陆续在“杭州,北京,郑州、广州、深圳、上海、南京、合肥、长沙、成都、温州、武汉”等多地开展,活动在线上与线下覆盖人数已达数万人次,出席活动的参会者汇聚了银行,证券,互联网,人工智能,高校,医疗,新制造,电商,游戏,*,电力,物流等行业的开发者,DBA,架构师,CTO,CIO。

欢迎就近选择参加。

2、(阿里巴巴 PostgreSQL、社区生态;PG开发者指南、原理、案例、管理优化实践《学习资料、视频》)。

《PostgreSQL 2~3 天培训PDF和视频》

一、PG天天象上

1 PG天天象上活动内容简介

1、PostgreSQL 社区工作汇报。

2、阿里云ADAM+PPAS(POLARDB for Oracle)的企业去O实践

3、PostgreSQL 数据库架构、原理(物理架构、进程结构、逻辑架构、流复制架构、HA架构、多副本架构;权限体系、存储引擎原理、索引结构等)。

4、PostgreSQL 理论基础,管理、开发实践,优化方法,PG学习参考资料

5、PostgreSQL在OLTP|OLAP、空间数据管理、图式搜索、全文检索、文本搜索、特征搜索、时序应用、流式数据处理、用户画像分析等场景的应用案例。

案例横跨 物联网、电商、生物科技、游戏、传统企业、CRM、ERP、ZF、GA、物流、音视频、BI、社交、金融、证券、手机、天文等行业。

6、PostgreSQL 大型行业TOP企业用户分享

7、PostgreSQL 行业软件开发商、服务提供商、中间件厂商用户分享

8、企业深入圆桌研讨会议,企业数据库辩论赛

涉及内容较多,案例涉及到详细的架构设计、代码、原理等内容,请参阅本视频提供的PDF内的URL链接。

2 PG 天天象上 往期讲师介绍

digoal @ 阿里云

中国开源软件推进联盟PostgreSQL分会,特聘资深领域专家。

PostgreSQL 中国社区发起人之一、常委、兼任社区大学校长。

中国信息通信研究院主办、中国通信标准化协会支持的"OSCAR云计算开源产业大会"评选:2018届OSCAR开源尖峰人物之一

阿里云数据库首席专家团队成员,提供数据库首席专家服务

30项数据库专利。(截至2018-01)

致力于PostgreSQL数据库在中国的技术落地与推广、人才培养。

About digoal

唐修 @ 阿里云

凌策 @ 阿里云

高铭杰 @ 阿里云

图贲 @ 阿里云

赵振平 @ PG社区 主席

唐成 @ PG社区 副主席

周飞 @ HELLOBIKE

赵志强 @ 天数智芯

陈河堆 @ 中兴

陈华军 @ 苏宁

董红禹 @ 乘数科技

张勤建 @ 云贝

梅白帆 @ 北京国网富达

杨栋 @ 神州飞象

3 PG天天象上活动往期回顾

1 20180121期天天象上(杭州-娃哈哈赞助)

报名人数:80

重要议题:阿里云P*品线生态介绍,PG案例,PG的原理、应用场景、优化、管理等内容等。

企业辩论赛回顾:

1、用户的某个业务系统,开放了公网以及0.0.0.0的链路权限,在运行一段时间后,发现数据库的几个进程CPU 100%,如何排查这种问题?

找到造成CPU 100%的进程号,以及对应的父进程,发现父进程为数据库postmaster进程,所以断定是PG发起的进程。

排查pg_stat_activity没有发现对应会话,开启连接审计,排查pg_log的日志,找到了诡异的连接记录,同时发现数据库被创建了几个非业务用户,同时通过大对象植入了C代码到PG实例中,创建了一些异常函数(死循环,一直耗费CPU)。

显然数据库可能被黑。

《Hacking PostgreSQL》

升级PG版本解决,同时建议pg_hba.conf(数据库ACL配置)不要开放0.0.0.0即使需要开放0.0.0.0也不要开放所有用户,建议限定普通用户通过远程连接。

2、用户使用MYSQL时,发现跑group by,即使数据量只有百万级别,也要跑很久很久。而换到PG后,即使数据表有千万甚至亿级别,也可以秒出结果。为什么?

PG支持更好的聚合方法,HASHAGG, GROUPAGG,同时支持更好的并行计算能力,使得PG在处理大量数据的时候,比MYSQL占优很多,与ORACLE并肩。

3、PG的SQL执行过程?

解析用户协议包

parser sql

判断是否为DML,DSL的请求,如果是则

rewrite query

generate path

generate plan

jit (可选)

execute plan

如果是绑定变量的请求:

bind parameter

execute prepared statement

4、如何查看SQL的执行计划。

对于历史SQL,使用auto_explain插件,记录超过指定执行时间的SQL的执行计划,通过查看LOG日志可以看到历史SQL的执行计划。

使用explain,可以查看当前SQL的执行计划。

5、如何在plpgsql存储过程或函数中创建函数。

使用execute 'SQL string'动态调用的方法,可以在函数中创建函数。

6、如何修改数据库ACL

通过数据库pg_hba.conf配置文件,配置数据库访问链路ACL。

7、postgresql.auto.conf与postgresql.conf的区别?

postgresql.auto.conf是数据库alter system动态修改数据库参数的配置文件,alter system配置的参数会写入postgresql.auto.conf,优先级高于postgresql.conf

扩展问题

为什么postgresql.auto.conf优先级高于?

因为先加载postgresql.conf后加载postgresql.auto.conf,后加载的覆盖了先加载的参数。

如何配置了多个重名的参数,哪个为准?

后加载的覆盖先加载的参数。

参数配置的地方,以及优先级:

《PostgreSQL 参数优先级讲解》

8、PostgreSQL如何防止绑定变量的执行计划倾斜。

数据库前5次执行计划都是custom plan,即每一次都要generate path,generate plan,并记录下custom plan的平均成本,以及customplan发生的次数。第五次后会生成generic plan,当有新的bind时,先使用generic plan计算新的bind 的cost,如果cost比custom plan的平均成本相差较大(代码内写死相差的比例),则会发起新的custom plan,并且统计到custom plan的平均COST和计数中。

如果成本相差不大,则继续使用generic plan.

通过以上方法防止倾斜。

《PostgreSQL 11 preview - 增加强制custom plan GUC开关(plancache_mode),对付倾斜》

《PostgreSQL plan cache 源码浅析 - 如何确保不会计划倾斜》

上一篇:【DB吐槽大会】第74期 - PG 不支持SQL维度资源限流


下一篇:【重新发现PostgreSQL之美】- 52 跨越鸿沟