课程简介
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,以其稳定性和可靠性而闻名。同时PostgreSQL 还具有扩展性、功能丰富、安全性以及拥有强大的开源社区支持等特点,这些特点使得 PostgreSQL 成为一个强大而受欢迎的数据库管理系统,适用于各种规模和复杂性的应用场景。
本次课程详细介绍了PostgreSQL数据库的体系架构和安装部署,并结合实际应用落地,帮助学员掌握数据库PostgreSQL的体系架构与日常管理维护,具备在企业实际生产环境中使用PostgreSQL进行数据库设计,并实施运维工作和优化的能力。
课程收益
1、帮助学员了解了解PostgreSQL的体系架构和特性;
2、帮助学员掌握常见关系型数据库的技术选型能力;
3、帮助学员掌握在企业生产环境中实施安装部署PostgreSQL的能力
4、帮助学员掌握数据库PostgreSQL的数据库设计能力;
5、帮助学员掌握数据库的备份恢复与日常运维的管理的能力;
6、帮助学员掌握利用不同方式实现数据库的高可用的能力
受众人群
数据库研发人员,数据库架构师,数据库运维人员
课程周期
4天(24H)
课程大纲
标题 | 授课内容 |
一、PostgreSQL基础 | 1. PostgreSQL简介 (1) 什么是PostgreSQL? (2) PostgreSQL的功能特性 2. PostgreSQL的体系架构 (1) 逻辑存储结构 (2) 物理存储结构 (3) 进程结构 (4) 内存结构 |
二、安装与配置PostgreSQL | 1. 安装CentOS操作系统 2. 安装PostgreSQL数据库服务器 3. 【实战】使用PostgreSQL客户端工具 (1) 命令行客户端psql (2) 图形化客户端pgAdmin 4 4. PostgreSQL主配置文件详解 (1) 基础文件 (2) 连接和认证 (3) 资源使用 (4) 预写日志 (5) 复制 (6) 查询调优 (7) 错误报告和日志 (8) 进程标题 (9) 运行时统计数据 (10) 自动清理 (11) 客户端连接默认值 (12) 锁管理 (13) 版本和平台兼容性 (14) 错误处理 (15) 预置选项 |
三、管理数据库与数据库实例 | 1. 管理数据库和数据库模版 (1) 【实战】管理数据库 (2) 管理数据库模板 2. 【实战】管理数据库的扩展 (1) 使用扩展访问外部数据源 (2) 数据预热扩展pg_prewarm (3) 共享缓冲区监控扩展pg_buffercache (4) WAL日志解析扩展pg_walinspect 3. 管理数据库实例 4. 基于PostgreSQL的分布式数据库—Citus (1) Citus基础 (2) 安装与配置Citus (3) Citus中表的类型 (4) Citus的配置参数 5. 基于PostgreSQL的分布式数据库—Greenplum (1) Greenplum简介 (2) 安装与配置Greenplum (3) Greenplum中的表类型 |
四、管理数据库对象
| 1. 数据库与模式 2. 创建与管理表 (1) PostgreSQL的数据类型 (2) 【实战】PostgreSQL表的基本操作 (3) 数据的约束条件 (4) 表中的碎片 (5) 统计信息 (6) 【实战】使用PostgreSQL的临时表 3. 在查询时使用索引 (1) PostgreSQL索引的基本知识 (2) PostgreSQL索引的类型 (3) 索引的维护 4. 使用视图简化查询语句 (1) 什么是视图? (2) 【实战】视图的基本操作 (3) 【实战】在PostgreSQL中使用临时视图 (4) 物化视图 5. 序列 |
五、并行查询 | 1. 并行查询如何工作 2. 何时会用到并行查询? 3. 【实战】查看并行查询的执行计划 (1) 并行扫描 (2) 并行连接 4. 并行查询的限制 |
六、事务与并发控制 | 1. PostgreSQL的事务 (1) 事务简介 (2) 控制事务 (3) 事务的并发 2. PostgreSQL的锁 (1) PostgreSQL的锁类型 (2) 死锁 |
七、应用程序开发 | 1. PL/pgSQL基础 (1) 【实战】开发第一个PL/pgSQL程序 (2) 【实战】使用PL/pgSQL的基本数据类型 (3) 【实战】使用PL/pgSQL的高级数据类型 2. PL/pgSQL面向过程编程 (1) 【实战】在PL/pgSQL中使用条件判断 (2) 【实战】在PL/pgSQL中使用循环 (3) 【实战】在PL/pgSQL中使用使用游标 (4) 在PL/pgSQL中处理例外 3. 【实战】PL/pgSQL编程综合案例 4. 使用PL/pgSQL开发存储过程与存储函数 (1) 存储过程与存储函数 (2) 【实战】创建和使用存储过程 (3) 【实战】创建和使用存储函数 (4) 【实战】设置存储过程中的inout参数 (5) 【实战】在inout参数中使用游标 5. 使用PL/pgSQL开发触发器 (1) 常规触发器 (2) 事件触发器 |
八、管理数据库安全 | 1. 用户管理 (1) 用户与角色 (2) 管理用户的密码 (3) 预定义角色 2. 权限管理 (1) 【实战】在创建用户时指定的权限 (2) 由grant和revoke命令来管理的权限 (3) 在授权时使用admin option和grant option (4) 使用组角色管理权限 (5) 使用set role显示启用角色的权限 3. 审计管理 (1) PostgreSQL的审计日志功能 (2) PostgreSQL的审计扩展pgaudit |
九、备份与恢复 | 1. 备份和恢复的基本概念 (1) 数据库的故障类型 (2) 备份的基本术语 2. 设置PostgreSQL的日志归档 (1) 【实战】设置PostgreSQL数据库的归档模式 (2) 【实战】管理过期的归档日志文件 3. 通过SQL转储实现逻辑备份与恢复 (1) 【实战】使用pg_dump完成SQL转储 (2) 【实战】使用pg_dumpall完成SQL转储 4. 文件系统级别的备份与恢复 (1) 【实战】第一个PostgreSQL文件系统级别的备份与恢复 (2) 【实战】使用pg_basebackup完成热备份与恢复 5. 【实战】连续归档与基于时间的恢复 (1) 创建基础备份与连续归档 (2) 执行基于时间点的数据恢复 (3) 执行恢复到指定恢复点的数据恢复 (4) 恢复到指定事务 (5) 恢复到最近时间点 6. 9.6 【实战】使用第三方备份恢复工具pg_rman (1) 安装和配置pg_rman (2) 初始化pg_rman (3) 使用pg_rman进行备份 (4) 使用pg_rman进行恢复 |
十、监控与诊断优化数据库 | 1. 使用pgbench进行基准测试 (1) 数据库基准测试简介 (2) 【实战】使用pgbench进行数据库的基准测试 2. 使用扩展监控和诊断数据库 (1) 使用pg_top监控数据库 (2) 监控SQL运行扩展pg_stat_statements (3) 查询性能监控扩展 pg_stat_monitor (4) 慢查询监控扩展auto_explain (5) 使用pg_profile扩展生成数据库性能报告 3. 【实战】使用PostgreSQL的分区表 (1) 范围分区(Range Partition) (2) 列表分区(List Partition) (3) 哈希分区(Hash Partition) 4. 优化PostgreSQL数据库服务器 (1) 数据库性能优化基础 (2) 使用监控工具监控Linux性能 (3) 优化数据库存储性能 (4) 优化PostgreSQL数据库系统配置参数 (5) PostgreSQL性能视图 |
十一、PostgreSQL高可用架构 | 1. 基于Keepalived的高可用架构 (1) 基于Keepalived的PostgreSQL高可用集群架构 (2) 【实战】基于Keepalived部署PostgreSQL的高可用集群 2. 基于扩展pg_auto_failover的高可用架构 (1) pg_auto_failover的体系架构 (2) 搭建基于pg_auto_failover扩展的高可用集群 (3) pg_auto_failover的故障转移 (4) pg_auto_failover故障转移的状态机 3. 11.3 基于数据库中间件pgpool-II的高可用架构 (1) pgpool-II简介 (2) 【实战】配置基于pgpool-II的PostgreSQL高可用集群 |
十二、从Oracle迁移到PostgreSQL | 1. 从Oracle迁移到PostgreSQL基础 (1) Oracle的体系架构 (2) 12.1.2 对比Oracle和PostgreSQL对象的差异 (3) 12.1.3 确定数据迁移方案 2. 12.2 【实战】使用ora2pg完成数据的迁移 (1) 12.2.1 安装ora2pg (2) 12.2.2 使用ora2pg完成数据的迁移 |
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员