【课程目标】
学完本课程,可以掌握:
1. 从 PG 的历史、社区、架构、客户群、应用场景、生态角度了解 PG,同时对于 PG 与其他企业级商用数据库产品有一个大致的差异化理解,了解 PG 的学习资料,技术交流圈子;
2. 熟悉 PostgreSQL 在 Linux 中的软件安装;
3. 熟悉数据库初始化、架构、参数、防火墙、权限体系、逻辑结构;
4. 学习掌握数据库的使用,数据类型、操作符、对象类型内置函数, SQL 用法;
5. 学习掌握 PG 的 btree, hash,gin,gist,spgist,brin,bloom,rum 索引接口,以及应用场景;
6. 学习掌握数据库的工业通用、定制压测方法;
7. 了解数据库的持续备份、时间点恢复,导入、导出;
8. 了解数据库的 HA 架构,流复制备库,quorum based 多副本架构,读写分离;
9. 学习掌握 PG 的逻辑订阅功能,了解通过MTK从其他数据库(Oracle, MySQL, Sybase, Mssql)迁移到 PG,了解异构数据库增量同步到PG;
10. 了解 PG 的 sharding 的使用、生态;
11. 学习掌握 PG 的 SQL 审计配置、PG 的日常维护,监控,排错,PG 的优化方法;
12. 学习掌握 PG 的 Oracle 兼容插件,PLPGSQL 的开发,了解 PG 的其他存储过程语言,了解 PG 的商用版本 PPAS 的 Oracle 兼容性,差异性;
13. 学习掌握 ADAM 去O方法论;
14. 学习掌握 PG 的 OLTP, OLAP 混合负载的场景,并行计算算法;
15. 学习掌握为什么需要连接池,以及连接池的配置和用法;
16. 了解 PG 的多模应用;
17. 了解 PG 的应用案例;
18. 了解数据库原理;
19. 了解数据库开发、管理规约;
20. 了解 PG 的技术圈子,继续学习 PG 的方法。
适用人群
开发者、DBA、运维、架构师、企业去O决策者。
【课程概述】
[课程大纲]
章:掀开 PostgreSQL 的盖头
内容概要:
1、历史介绍;2、社区介绍;3、特性介绍;4、常见架构介绍;5、国内外常见客户介绍;6、常见应用场景介绍;7、流行衍生产品介绍;8、基于 PG 的数据库、云厂商介绍;9、相比其他开源、商业数据库差异化介绍;10、技术交流圈子、学习资料介绍。
目标:
1、从 PG 的历史、社区、架构、客户群、应用场景、生态角度了解 PG,同时对于 PG 与 其他企业级商用数据库产品有一个大致的差异化理解,了解 PG 的学习资料,技术交流圈 子。
第二章:安装
内容概要:
1、介绍 Linux 环境的数据库相关内核参数、存储、文件系统、资源限制、CGROUP 资源 隔离等相关配置与优化;
2、介绍 Linux 下 PostgreSQL 的编译安装;3、介绍 Linux 下 PostgreSQL 的 rpm 安装。目标:1、熟悉 PostgreSQL 在 Linux 中的软件安装。
练习:
在自己的环境中,比如 Windows、Linux、MAC 中安装 PostgreSQL 软件。
第三章:实例初始化、基本配置
内容概要:
1、初始化数据库实例;2、数据库架构;
3、PG 参数介绍、优化;4、数据库防火墙介绍与配置;5、数据库权限体系、逻辑结构介绍;6、连接数据库。
目标:
1、熟悉数据库初始化、架构、参数、防火墙、权限体系、逻辑结构。
练习:
1、初始化数据库实例;2、完成参数配置;3、远程连接数据库。
第四章:应用开发者指南
内容概要:
1、基本 SQL 语句用法;2、数据类型、操作符;3、数据库对象类型;4、内置函数;5、自定义函数 sql, plpgsql;6、 SQL 用法与应用场景。目标:
1、学习数据库的使用,数据类型、操作符、对象类型内置函数, SQL 用法。
练习:
1、建表,写入测试数据,聚合查询,递归查询,分解查询,自定义函数,自定义并行函数。
第五章:备份、恢复、容灾
内容概要:
1、备份的几种方式(逻辑全量、数据文件+归档,数据文件增量,快照)介绍;2、异地持续备份(pg_receivewal、standby);3、异地容灾;4、还原点概念;5、时间点恢复;6、pg_dump 逻辑备份、导出,服务端 COPY 和客户端 COPY;7、TOC 概念,pg_restore 数据导入、批量数据入库(insert 批量,服务端和客户端 COPY批量)。
目标:
1、了解数据库的持续备份、时间点恢复,导入、导出。
练习:
1、配置数据库参数,并完成一次全量备份,归档备份;2、对数据库进行一些读写,记录时间,XID,创建恢复点,完成一次时间点恢复;3、完成一次服务端 COPY 导入导出;4、完成一次客户端 COPY 导入导出;5、完成一次逻辑备份全库,并恢复到目标库。
第七章:HA、replica、复制、读写分离、多副本
内容概要:
1、HA 架构(基于流复制,基于共享存储),常用的 HA 软件(patroni, rhcs);2、基于流复制的 active standby;3、多副本,两地三中心环境部署介绍;4、基于 pgpool 的透明读写分离。
目标:
1、了解数据库的 HA 架构,流复制备库,quorum based 多副本架构,读写分离。
练习:
1、搭建一个流复制备库;2、搭建一个 quorum based 的流复制备库,并模拟一个、多个备库 DOWN 机,观察同 步事务的状态;3、压测,观察同步复制带来的延迟、异步复制带来的延迟。
第八章:单元化、逻辑订阅
内容概要:
1、基于流复制协议的逻辑订阅;2、多向复制(multi-master)的方法;3、异构数据库迁移(mtk);4、异构数据库增量准实时同步(x replication)。
目标:
1、学习 PG 的逻辑订阅功能,了解通过 MTK 从其他数据库(Oracle, MySQL, sybase, mssql)迁移到 PG,了解异构数据库增量同步到 PG。
练习:
1、建立两个 PG 实例,练习使用逻辑订阅,发布表、订阅表。
第九章:Sharding
内容概要:
1、PG 的 sharding 用法、不同 sharding 用法的差异、应用场景:citus, antdb, sharding sphere, pg-xl, gpdb。
目标:
1、了解 PG 的 sharding 的使用、生态。
练习:
1、配置和使用 citus。
第十章:日常维护、监控、排错、优化
内容概要:
1、配置审计,以及审计日志的报告用法(pgBadger);2、PG 的日常维护;3、监控指标,常用监控软件(pgmetric, pgstatsinfo, nagios, zabbix 等);4、排错;5、PG 的优化方法。
目标:
1、学习 PG 的 SQL 审计配置、PG 的日常维护,监控,排错,PG 的优化方法。
练习:
1、配置审计日志,观察审计日志;2、观察膨胀,垃圾回收,在线索引重建,DDL 操作防雪崩,AB 表切换;3、性能压测,同时观察 TOP SQL;4、制造一些错误,观察报错的源码。
第十一章:Oracle 兼容、迁移
内容概要:
1、Oracle 兼容插件 orafce;2、plpgsql 存储过程介绍,pl/sql 转换到 PLPGSQL 的例子;3、其他存储过程语言(pljava, plperl, pltcl, pllua 等);4、PG 兼容 ORACLE 的商用版本 PPAS 介绍,兼容点有哪些,有哪些差异化特色;5、ADAM 去 O 方法论。
目标:
1、学习 PG 的 ORACLE 兼容插件,PLPGSQL 的开发,了解 PG 的其他存储过程语言,了 解 PG 的商用版本 PPAS 的 ORACLE 兼容性,差异性;2、学习 ADAM 去 O 方法论。
练习:
1、安装 ppas;2、配置 PPAS 的 PG 兼容模式和 ORACLE 兼容模式;3、使用 ADAM 评估去 O。
第十二章:创新能力(HTAP、混合负载、多模)、应用案例
内容概要:
1、介绍 PG 的混合负载配置(并行计算相关的参数配置),并行计算的并行度算法;2、连接池的介绍,为什么需要连接池,会话级缓存(长连接,分区表需要注意的问题);3、介绍 PG 的多模插件(多维、中文分词、模糊查询、图像查询、相似搜索、时空、时 序、空间、流计算、列存、机器学习、异构数据外部表、GPU 加速),阿里云的 ganos, varbitx, roaringbitmap, 冷热分离 oss_fdw 等插件;4、案例介绍。
目标:
1、学习 PG 的 OLTP,OLAP 混合负载的场景,并行计算算法;2、学习为什么需要连接池;3、了解 PG 的多模应用;4、了解 PG 的应用案例。
练习:
1、强制并行计算练习;2、练习中文分词插件的安装和使用;3、练习多维向量相似搜索的使用;4、练习模糊查询的使用;5、练习流计算的使用;6、练习 GIS 的使用。
第十三章:PG 数据库原理
内容概要:
1、堆存储原理;2、记录存储原理;3、类型压缩原理;4、切片存储原理;5、索引数据结构、存储结构;6、扫描\JOIN 方法;7、HINT;8、垃圾回收原理。
目标:
1、了解数据库原理。
练习:
1、优化器开关,观察不同的扫描、JOIN 方法;2、观察垃圾回收的详情。
第十四章:管理、开发规约
内容概要:
1、规约;2、社区官网、官微、PG 钉钉技术群(每周直播、专家问答)、讲师微信、学习资料(git);3、问答。
目标:
1、了解数据库开发、管理规约;2、了解 PG 的技术圈子,继续学习 PG 的方法。