PostgreSQL SQL基础 2天 |
- PostgreSQL的安装,架构基础介绍,如何创建和访问数据库;
- SQL语言基础(创建表,操作表数据,表关联查询,聚合查询);
- SQL高级应用(视图,外键,事务,窗口函数,继承);
- SQL语义结构介绍(关键字,常量,操作符,特殊字符,注释,操作符的优先级);
- 值表达式介绍(列,位置参数,数组下标,field引用,操作符调用,函数调用,聚合表达式,窗口函数调用,类型转换,collate表达式,标量子查询,数组构造器,行构造器,表达式逻辑运算规则);
- 函数调用用法介绍(位置参数调用,命名参数调用,混合调用);
- 数据定义(默认值,约束,系统列,表结构和定义修改,权限,schema,继承,分区,外部数据);
|
- 数据查询(from子句,where子句,group by having子句,窗口子句,select子句,结果集合操作,排序,限制,位移,values子句,CET用法);
- 数据类型(数字,货币,字符,字节,时间,布尔,枚举,几何,网络,比特,文本搜索,UUID,XML,JSON,数组,复合类型,范围类型,对象类型,伪类型);
- 函数与操作符(逻辑,比较,数学运算,字符串,字节流,比特位,样式匹配,格式化,时间,枚举,几何,网络,全文检索,XML,JSON,序列,条件,数组,范围,聚合,窗口,子查询,行与数组的比较,SRF函数,系统信息函数,系统管理函数,触发器函数,事件触发器函数);
- 类型转换;
- 索引用法;
- 全文检索用法;
- 并行控制;
- SQL性能优化;
|
PostgreSQL 数据库管理 3天 |
- PostgreSQL源代码安装(源码结构介绍,配置介绍,自定义FLAG介绍,内核参数优化,安装);
- 数据库服务器配置(OS USER,初始化集群,启动数据库集群,关闭数据库集群,升级数据库软件,防止欺骗,数据封装方法,SSL,SSH隧道)
- 数据库集群进程结构介绍(postmaster,logger,checkpointer,writer,wal writer,autovacuum launcher,autovacuum worker,stats collector,backend,worker);
- 认证和连接(客户端认证方法介绍,认证配置,常用认证方法使用举例,常见认证错误排错);
- pgAdmin III 使用介绍(安装,使用,调试函数,维护数据);
- 数据库配置(guc.c,参数优先级,参数含义,开发参数,guc隐含参数,如何修改参数并使之生效,如何查看当前参数值,如何查看参数值的范围);
- 用户管理(创建角色,角色权限管理,角色membership管理,角色成员权限管理);
- 数据库逻辑结构(cluster,database,schema,object,field,access privilege);
- 数据库物理结构(tablespace,datafile,segment,block,controlfile,xlog,archivelog);
|
- 数据库管理(创建表空间,创建数据库,创建数据库模板,数据库配置,删除数据库,跨数据库的数据访问);
- 基于角色的对象权限管理(表,列,序列,数据库,域,外部数据,函数,语言,大对象,schema,表空间,类型);
- 默认权限和继承权限(default privilege,inherit privilege);
- 数据库安全(认证,网络,数据存储,密码,注入,欺骗);
- 数据库监控(状态监控,趋势监控,预警,常用监控工具和插件nagios,zabbix,pg_statsinfo);
- 多版本并发控制和垃圾回收;
- 日常维护(垃圾回收,数据重组,索引维护,VM维护,预防XID溢出,日志维护);
|
- 数据迁移(逻辑备份和还原,增量数据迁移的方法,异构数据迁移的方法(如oracle to postgresql));
- 如何打数据库补丁;
- 数据库版本升级(小版本升级方法,大版本升级方法);
- 建模与Benchmark(如何根据业务形态建立数据库测试模型,测试工具的使用,根据测试模型和硬件标准输出benchmark);
- 数据库日志分析(错误代码介绍,日志的筛选过滤,日志的维护);
- 数据库审计(参数层面的审计开关,定制化审计(如触发器结合HSTORE),审计数据的维护手段);
- 本地化(字符集,collate,编码转换,如何防止乱码);
- 数据库性能分析(OS性能分析报表,SQL性能分析报表);
- 数据库巡检(如何定制巡检项,指标,如何分析巡检报告);
|
PostgreSQL 数据库备份与恢复,数据复制,负载均衡与高可用 3天 |
- 逻辑数据备份和还原(定制备份目标,备份集压缩,编辑TOC文件,可选还原,文本还原,命令详解pg_dump,pg_dumpall,pg_restore);
- 物理数据备份和基于时间点,XID,还原点的还原(物理备份原理,参数配置,fsync接口可靠性测试,归档脚本编写,备份演示,三种还原截止的演示,WAL不写场景的数据修正方法);
- 逻辑备份设计案例(在被管理的数据库较多的场景中,如何设计集中备份和元数据的管理,分布式文件系统的应用);
- 物理备份设计案例(在被管理的数据库较多的场景中,如何设计集中备份和元数据的管理);
- 数据库流复制概念(流复制协议的介绍,同步和异步的流复制架构,相关的参数,利用流复制协议的命令讲解pg_basebackup,pg_receivexlog);
- 容灾设计案例(log shipping,stream replication异地容灾架构,容灾需要考虑的WAN网络安全,数据加密,数据压缩,网络稳定性等问题);
|
- 数据复制的分类和应用场景(中间件数据分发的前端复制,基于触发器的后端复制,基于块变更的物理复制,基于xlog的逻辑复制);
- 前端数据复制应用案例(pgpool-II);
- 后端数据复制应用案例(londiste3,slony-I,触发器);
- 物理复制应用案例(同步和异步stream replication,log shipping);
- XLOG逻辑复制应用案例(stream replication 9.4);
- standby在升级PostgreSQL版本中的应用举例
|
- 高可用方案(介绍高可用的两种架构以及优缺点 - 共享存储,replication standby; 这两种HA架构的具体实施方法; 流复制HA的使用注意事项,WAL不写场景,异步场景的角色切换);
- 负载均衡案例(读写分离架构以及实现方法举例(pgpool-II),读写负载均衡架构以及实现方法举例(pgpool-II,plproxy,pg-xc));
|
PostgreSQL 服务端编程 3天 |
- SQL函数(参数: 基本类型,复杂类型,OUTPUT,可变参数,默认值,表参数; 返回结果集; 返回表; 任意类型参数)
- 函数重载(同名,但是参数类型不同或参数个数不同)
- 函数稳定性(volatile,stable,immutable详解)
- 函数成本和执行计划
- 函数PLAN CACHE
|
- 过程语言(安装语言,语言可信度,plpgsql,plpython,...)
- 触发器
- 事件触发器
- 规则系统
|
- C语言函数
- 聚合函数开发
- 函数内容加密
- 模块发布
- 代理函数语言(针对大数据的scale out,plproxy)
|
PostgreSQL 性能优化 3天 |
- 硬件架构(CPU,内存,磁盘,存储缓存,存储可靠性)
- 硬件benchmark(cpu,内存,块设备)
- 文件系统特性以及优化(ext4,xfs,zfs,btrfs,...)
- 内核参数优化
- 缓存(本地缓存shared buffer,os cache; 外部缓存memcached,redis)
- 参数调优
- 多版本并发控制,锁,垃圾回收,HOT,如何减少产生垃圾
|
- 建模和压力测试,数据库benchmark(tpc-b,自定义benchmark)
- 索引(btree,hash,gin,gist,spgist索引用法,复合索引,排他索引,部分索引,函数索引,全文检索)
- 查询优化(柱状图,成本因子以及校准,explain,数据访问开关,plan cache,函数三态,join优化,geqo,CET,窗口函数)
- 统计信息(pg_stat*,pg_statio*)
- 状态监控和趋势报表
|
- 连接池
- 读写分离
- 数据分区(本地分区,异地分区)
- 负载均衡
- DEBUG,TRACE,性能分析工具
- 性能优化案例
|