第一篇 基础篇 2
第1章 Linux下的Oracle 2
1.1 Linux简介 2
1.2 Oracle简介 3
1.3 Linux内存体系的优势 3
1.4 Linux内存体系与Oracle内存空间 5
1.4.1 Linux用户空间与内核空间 5
1.4.2 Linux下的Oracle内存体系结构 5
1.4.3 Linux下的Oracle内存分配 6
1.5 小结 9
第2章 Oracle内存体系结构 10
2.1 闩(Latch) 10
2.1.1 Latch简介 10
2.1.2 Latch Level 11
2.1.3 Latch获取模式 12
2.1.4 Latch获取等待 13
2.1.5 Latch资源清理回收 15
2.2 队列锁(Enqueue Lock) 16
2.2.1 Lock与Latch的区别 16
2.2.2 常见的Lock 17
2.2.3 Lock相关参数 18
2.2.4 Lock先请求先服务机制 18
2.3 Library Cache 21
2.3.1 Library Cache与SQL游标 21
2.3.2 Library Cache内存结构 28
2.3.3 Library Cache Lock(Pin) 31
2.4 Buffer Cache 34
2.4.1 Buffer(Cache)Pool 34
2.4.2 Cache Buffer Chain(Latch) 37
2.4.3 Cache Buffer Pin 40
2.4.4 Buffer Cache等待与优化 44
2.5 小结 47
第3章 Oracle重做日志(Redo) 48
3.1 Redo功能用途 48
3.2 Redo组成结构 49
3.2.1 Redo Header 49
3.2.2 Redo Record 49
3.3 Redo产生场景 53
3.3.1 Redo与DML事务 53
3.3.2 Redo与Block Cleanout 55
3.3.3 Redo与Block Write 56
3.3.4 Redo与Hot Backup 56
3.3.5 Redo与Direct Load 56
3.3.6 Redo与Nologging 57
3.4 Redo优化 58
3.5 小结 61
第4章 Oracle事务与回滚段 62
4.1 Oracle事务 62
4.1.1 Oracle事务概览 62
4.1.2 Oracle事务ACID原则 63
4.1.3 Oracle事务与回滚段运行机制 64
4.2 Oracle回滚段 70
4.2.1 回滚段与一致性读 70
4.2.2 回滚段与事务锁定 71
4.2.3 回滚段与块清除 72
4.3 Oracle事务恢复 73
4.3.1 回滚操作下的事务恢复 73
4.3.2 进程崩溃下的事务恢复 74
4.3.3 实例崩溃下的事务恢复 75
4.3.4 数据库异常关闭下的事务恢复 75
4.4 Oracle回滚段特殊恢复 76
4.4.1 Oracle回滚段特殊恢复隐藏参数 77
4.4.2 Oracle回滚段特殊恢复场景 78
4.4.3 Oracle回滚段特殊恢复实战 80
4.5 小结 81
第二篇 优化篇 84
第5章 Oracle SQL优化 84
5.1 Oracle SQL游标 84
5.1.1 私有SQL游标 84
5.1.2 共享SQL游标 85
5.1.3 Library Cache中的SQL游标 85
5.1.4 SQL游标与Session游标缓存区 88
5.2 Oracle SQL解析与执行 91
5.2.1 Oracle SQL解析 91
5.2.2 Oracle SQL执行 93
5.3 Oracle表连接查询 96
5.3.1 NESTED LOOPS 97
5.3.2 HASH JOIN 97
5.3.3 SORT MERGE 98
5.4 Oracle统计信息 98
5.4.1 默认统计信息 98
5.4.2 手动搜集统计信息 99
5.5 Oracle直方图 102
5.5.1 直方图概要 102
5.5.2 直方图优化 103
5.6 Oracle提示 107
5.6.1 Oracle提示的语法及使用 108
5.6.2 Oracle提示失效场景 108
5.7 Oracle SQL跟踪 109
5.7.1 10046事件跟踪 109
5.7.2 SQL跟踪与Tkprof 112
5.8 小结 113
第6章 Oracle CBO优化 114
6.1 CBO优化器模式与CPU成本 114
6.1.1 CBO优化器模式 114
6.1.2 CBO优化器模式下的执行计划调整 115
6.1.3 CPU成本 121
6.1.4 CPU成本启用 124
6.2 谓词选择率与基数计算 124
6.2.1 单谓词选择率与基数计算 124
6.2.2 多谓词选择率与基数计算 129
6.3 表连接选择率与基数计算 132
6.3.1 表连接选择率与基数计算解析 132
6.3.2 表连接选择率与基数计算验证 134
6.4 Oracle查询转换提示 136
6.4.1 dynamic_sampling提示 136
6.4.2 leading与ordered提示 138
6.4.3 index提示 140
6.4.4 index_join提示 141
6.4.5 index_ffs提示 142
6.4.6 index_ss提示 144
6.4.7 index_combine提示 145
6.4.8 use_coneat提示 147
6.4.9 expand与no_expand提示 148
6.4.10 merge与no_merge提示 148
6.4.11 unnest与no_unnest提示 150
6.4.12 push_pred与no_push_pred提示 151
6.4.13 push_subq与no_push_subq提示 152
6.4.14 pq_distribute提示 155
6.4.15 driving_site提示 158
6.5 小结 159
第三篇 方法篇 162
第7章 Oracle备份恢复 162
7.1 备份恢复与日志记录体系 162
7.1.1 Oracle日志记录体系 162
7.1.2 Oracle备份恢复与日志记录体系 166
7.2 备份恢复与物理文件 183
7.2.1 备份恢复与控制文件 184
7.2.2 备份恢复与数据文件(头) 201
7.2.3 备份恢复与日志文件(头) 204
7.3 备份恢复实现 205
7.3.1 Shutdown Clean恢复 206
7.3.2 Shutdown Abort(Crash)恢复 210
7.3.3 冷备恢复 213
7.3.4 热备恢复 216
7.4 制定RMAN备份恢复计划 224
7.4.1 RMAN备份策略制定 224
7.4.2 RMAN备份脚本 227
7.4.3 RMAN日常备份脚本 228
7.5 小结 235
第8章 Oracle自动化运维管理系统 236
8.1 Oracle自动化查询管理系统 236
8.1.1 查询表空间使用情况 237
8.1.2 查询Lock锁定信息 239
8.1.3 查询事务运行状态 240
8.1.4 查询LibraryCache命中率 241
8.1.5 查询BufferCache命中率 241
8.1.6 查询Latch命中率 242
8.1.7 查询特定Latch命中率 243
8.1.8 查询活动会话信息 244
8.1.9 查询SQL执行情况 245
8.1.10 查询SQL执行性能 247
8.1.11 查询SQL执行计划 248
8.1.12 查询游标使用情况 249
8.1.13 查询日志切换频率 251
8.1.14 查询会话等待情况 252
8.1.15 查询系统等待情况 253
8.1.16 查询系统平均等待 255
8.2 Oracle自动化运维监控系统 257
8.2.1 自动化运维监控系统架构 257
8.2.2 自动化运维监控系统环境准备 258
8.2.3 部署操作系统级自动化运维监控 260
8.2.4 部署数据库级自动化运维监控 273
8.2.5 部署Agent_All与Mail_All调度 282
8.3 小结 295
第9章 Oracle自动化历史分析系统 296
9.1 自动化历史分析系统 296
9.1.1 自动化历史分析系统架构 296
9.1.2 自动化历史分析系统环境准备 297
9.1.3 自动化历史分析系统部署 300
9.2 自动化历史分析系统与自动化查询管理系统 320
9.2.1 历史分析系统接入查询管理系统 320
9.2.2 查询管理系统中的历史分析 323
9.3 小结 326
第10章 Oracle自动化实时监控系统 327
10.1 自动化实时监控系统架构 327
10.2 自动化实时监控系统环境准备 328
10.2.1 服务器环境准备 328
10.2.2 数据库环境准备 334
10.3 自动化实时监控系统部署 349
10.3.1 部署实时监控系统主体程序 349
10.3.2 部署实时监控系统监控项 364
10.4 自动化实时监控系统使用示例 378
10.4.1 user_call实时监控 378
10.4.2 redo_gen实时监控 379
10.5 小结 381