第1章 RAC真应用集群 1
1.1单实例数据库并发控制原理 1
1.1.1并发访问的数据不一致问题 1
1.1.2事务以及隔离级别 2
1.1.3支持并发的lock机制 3
1.1.4支持并发的latch机制 6
1.1.5 Lock和Latch的使用 7
1.2 RAC并发控制的实现 8
1.2.1 RAC的并发控制问题 8
1.2.2 RAC的实现并发访问 9
1.3 Oracle为何引入RAC 10
1.4 RAC集群简介 11
1.4.1集群分类 11
1.4.2 RAC环境的特殊问题 12
1.4.3 RAC集群 13
1.5 RAC架构详解 15
1.6 RAC与Clusterware 17
1.7安装RAC 18
1.7.1设计RAC应用环境 18
1.7.2确认安装的软件组件 19
1.7.3任务规划 20
1.7.4安装虚拟机 21
1.7.5在虚拟机上安装linux操作系统 24
1.7.6配置主机 30
1.7.7安装Clusterware 43
1.7.8安装数据库软件 54
1.7.9启动监听 56
1.7.10创建ASM 58
1.7.11创建数据库 62
1.8 Failover和Load balance测试 66
1.8.1 Failover失败转移 67
1.8.2 LoadBalance负载均衡 68
1.9本章小结 69
第2章 ASM自动存储管理 70
2.1 Oracle自动存储管理概述 70
2.2自动存储管理的优点 71
2.3 ASM系统架构 72
2.4 ASM和CSS集群同步服务 73
2.5创建ASM实例 74
2.6启动ASM实例 80
2.7理解ASM实例架构 83
2.8 ASM命令行管理工具 83
2.9管理ASM磁盘组 86
2.9.1使用ASM磁盘组管理文件的优势 86
2.9.2创建磁盘组 88
2.9.3向磁盘组添加磁盘 91
2.9.4删除磁盘和磁盘组 92
2.9.5平衡磁盘组 94
2.9.6 MOUNT和DISMOUNT磁盘组 95
2.10管理ASM文件 96
2.10.1 ASM磁盘组文件名结构 96
2.10.2 ASM磁盘组中目录管理 97
2.10.3添加和删除别名 98
2.10.4删除文件 99
2.10.5使用ASM文件模板 99
2.11使用RMAN将数据库迁移到ASM实例 101
2.12管理ASM的数据字典视图 108
2.13本章小结 108
第3章 管理Clusterware组件及管理指令 109
3.1 Clusterware及其组件 109
3.2备份和恢复VotingDisks 110
3.3添加和删除VotingDisks 111
3.4备份和恢复OCR 113
3.4.1从自动备份中恢复OCR 115
3.4.2从人工备份文件中恢复 115
3.5修改OCR存储配置信息 116
3.6删除OCR存储 118
3.7 ocrconfig指令功能汇总 119
3.8管理Clusterware指令 120
3.8.1 srvctl指令 120
3.8.2 crs stat指令 126
3.8.3 onsctl指令 130
3.8.4 crsctl指令 134
3.8.5 ocrcheck指令 137
3.8.6 ocrdump指令 138
3.8.7 oifcfg指令 140
3.8.8 olsnodes指令 142
3.9本章小结 143
第4章 DataGuard的安装与管理 144
4.1 DataGuard是什么 144
4.2 DataGuard体系结构 144
4.2.1 DataGuard的架构 144
4.2.2 DataGuard的后台进程 145
4.3 DataGuard配置及相关概念 146
4.4 DataGuard服务本质 147
4.4.1 Apply服务 148
4.4.2 Redo应用 148
4.4.3 SQL应用 149
4.4.4角色转换服务 149
4.5 DataGuard的保护模式 150
4.6 DataGuard的优点 151
4.7手工搭建物理DataGuard 152
4.8物理DataGuard的SWITCHOVER 161
4.9物理DataGuard的FAILOVER 164
4.10如何转换FAILOVER后的主库为新备库 166
4.11管理物理Standby数据库 168
4.11.1启动Standby数据库 168
4.11.2关闭Standby数据库 169
4.11.3 Primary数据库结构变化的传播 170
4.11.4自动传播数据文件和表空间的变化 170
4.11.5手工修改数据文件和表空间的变化 171
4.11.6重命名数据文件 174
4.11.7添加或删除重做日志组 176
4.11.8监控DataGuard数据库视图 176
4.11.9设置DataGuard保护模式 179
4.12 DataGuard broker 181
4.12.1 DataGuard Broker概述 181
4.12.2 DataGuard Broker的配置 181
4.12.3 DataGuard Broker的组件 182
4.12.4 DataGuard Broker的DMON进程 183
4.12.5 DataGuard Broker使用的前提条件 184
4.12.6 DataGuard Broker配置实例演示 184
4.12.7 DataGuard Broker完成物理DG的SWITCHOVER 187
4.12.8 DataGuard Broker实现DG的自动FAILOVER 189
4.12.9 DG的DGMGRL维护指令设置 191
4.13 DataGuard的日志传输服务 192
4.13.1 通过ARCn进程来传送Redo 193
4.13.2 LGWR进程同步传送Redo 195
4.13.3 LGWR进程异步传送Redo 196
4.14本章小结 197
第5章 Streams技术原理与应用 198
5.1 Streams概述 198
5.2 Streams的原理 199
5.3 Streams体系结构概述 199
5.4 配置本地捕获进程的单向复制 201
5.4.1 具体配置之前的任务 202
5.4.2 Stream单向本地复制配置 204
5.5 使用MAINTAIN_*存储过程配置流 210
5.6 Streams的几个重要视图 213
5.7小结 215
第6章 RMAN备份与恢复数据库 216
6.1 RMAN概述 216
6.2 RMAN的独特之处 216
6.3 RMAN系统架构详解 217
6.4快闪恢复区(flash recovery area) 218
6.4.1修改快闪恢复区大小 218
6.4.2解决快闪恢复区的空间不足问题 220
6.5建立RMAN到数据库的连接 221
6.6 RMAN的相关概念与配置参数 222
6.7 RMAN备份控制文件 224
6.8 RMAN实现脱机备份 226
6.9 RMAN联机备份 228
6.9.1联机备份前的准备工作 228
6.9.2联机备份整个数据库 229
6.9.3联机备份一个表空间 233
6.9.4联机备份一个数据文件 234
6.9.5 RMAN备份坏块处理方式 235
6.10 RMAN的增量备份 235
6.11快速增量备份 237
6.12在映像副本上应用增量备份 239
6.13创建和维护恢复目录 240
6.14 RMAN的脚本管理 243
6.15 使用RMAN非归档模式下的完全恢复 245
6.15.1控制文件、数据文件以及重做日志文件丢失的恢复 245
6.15.2只有数据文件丢失的恢复 249
6.15.3联机重做日志文件和数据文件损坏的恢复 251
6.15.4如何将数据文件恢复到其它磁盘目录下 254
6.16使用RMAN归档模式下的完全恢复 254
6.16.1非系统表空间损坏的恢复 254
6.16.2系统表空间损坏的恢复 257
6.16.3所有数据文件丢失的恢复 258
6.17 RMAN实现数据块恢复 258
6.18 RMAN的备份维护指令 262
6.18.1 RMAN的VALIDATE BACKUPSET指令 262
6.18.2 RMAN的RESTORE…VALIDATE指令 263
6.18.3 RMAN的RESTORE…PREVIEW指令 264
6.18.4 RMAN的LIST指令 265
6.18.5 RMAN的REPORT指令 268
6.19本章小结 269
第7章 手工管理的备份恢复 270
7.1备份恢复的概念 270
7.1.1物理备份 270
7.1.2逻辑备份 271
7.1.3冷备份与热备份 271
7.1.4数据库恢复 271
7.2非归档模式下的冷备与恢复 272
7.2.1冷备的步骤 273
7.2.2冷备下的恢复 274
7.2.3缺少重做日志文件的恢复方法 276
7.3归档模式与非归档模式 278
7.3.1设置数据库的归档模式 278
7.3.2设置归档进程相关参数 280
7.3.3管理归档文件和归档目录 281
7.4手工热备数据库的步骤 284
7.5热备过程中对数据库崩溃的处理方法 287
7.6热备的原理 289
7.7备份控制文件 290
7.8介质恢复的原理 293
7.9归档模式下的完全恢复 298
7.9.1数据文件在有备份情况下的恢复 298
7.9.2数据文件在无备份情况下的恢复 301
7.9.3系统表空间数据文件损坏的完全恢复 303
7.9.4当前UNDO表空间损坏的完全恢复 304
7.9.5非当前UNDO表空间损坏的完全恢复 306
7.10何时使用不完全恢复 309
7.10.1不完全恢复的场合 309
7.10.2不完全恢复的类型 309
7.11所有控制文件丢失的恢复方法 310
7.11.1使用备份的控制文件 310
7.11.2重建控制文件 313
7.12本章小结 317
第8章 Oracle闪回技术 318
8.1理解闪回级别 318
8.2闪回数据库 319
8.2.1闪回数据库概述 319
8.2.2启用闪回数据库 320
8.2.3关闭闪回数据库 322
8.2.4闪回数据库方法 323
8.2.5使用闪回数据库 324
8.2.6监控闪回数据库 326
8.2.7使用闪回数据库的限制 328
8.3闪回删除 328
8.3.1闪回删除原理 328
8.3.2回收站的使用 329
8.3.3恢复删除的表 332
8.3.4恢复多个同名的表 335
8.3.5应用Purge永久删除表 337
8.4闪回表 339
8.5闪回版本查询 341
8.6闪回事务查询 342
8.7闪回查询 343
8.8复原点技术 344
8.9本章小结 345
第9章 数据迁移-EXP/IMP 347
9.1关于备份的几个概念 347
9.2使用EXP指令实现逻辑备份 348
9.2.1 EXP指令详解 348
9.2.2不带参数的EXP备份 350
9.2.3 EXP指令导出整个数据库 353
9.2.4 EXP指令导出特定的表 354
9.2.5 EXP指令导出指定的用户 355
9.2.6 EXP指令导出特定的表空间 356
9.3使用IMP指令实现逻辑恢复 357
9.3.1 IMP指令详解 358
9.3.2 IMP指令恢复整个数据库 359
9.3.3 IMP指令恢复特定的表 360
9.3.4 IMP指令恢复指定的用户 361
9.4使用EXP/IMP实现传输表空间 363
9.4.1理解Big/Little Endian 363
9.4.2传输表空间的限制 364
9.4.3传输表空间的兼容性问题 365
9.4.4传输表空间的自包含特性 365
9.4.5实现传输表空间的步骤 365
9.4.6使用EXP/IMP实现同平台表空间迁移 367
9.4.7使用EXP/IMP实现跨平台表空间迁移 370
9.5本章小结 374
第10章 数据迁移-EXPDP/IMPDP 375
10.1数据泵导出(EXPDP)简介 375
10.1.1数据泵导入导出技术的结构 375
10.1.2数据泵导入导出技术的优点 376
10.1.3数据泵导入导出的目录对象 376
10.2数据泵导入导出与EXP/IMP技术的区别 378
10.3数据泵导出(EXPDP)数据库实例 379
10.3.1数据泵导出的参数含义 379
10.3.2数据泵导出数据库实例 384
10.4数据泵导入数据库实例 389
10.4.1数据泵导入概述及参数含义 389
10.4.2数据泵导入数据库实例步骤 396
10.5使用数据泵迁移表空间 399
10.6使用数据泵生成外部表 401
10.7本章小结 403
第11章 基于CBO的SQL优化 404
11.1性能调整方法 404
11.2 SQL查询处理过程详解 405
11.2.1语法分析 405
11.2.2语句优化 405
11.2.3查询执行 405
11.3基于成本的优化 406
11.3.1选择CBO的优化方式 406
11.3.2优化器工作过程 407
11.4自动统计数据 408
11.5手工统计数据库数据 409
11.6统计操作系统数据 413
11.7手工统计字典数据 415
11.8主动优化SQL语句 416
11.8.1 WHERE谓词的注意事项 416
11.8.2 SQL语句优化工具 417
11.8.3使用索引 425
11.8.4索引类型及使用时机 432
11.8.5使用绑定变量 438
11.8.6消除子查询优化SQL语句 439
11.9被动优化SQL语句 441
11.9.1使用分区表 441
11.9.2使用表和索引压缩 442
11.9.3保持CBO的稳定性 442
11.9.4创建合适的索引 446
11.10详解V$SQL视图 446
11.11本章小结 448
第12章 Oracle数据库实例优化 449
12.1详解SGA与实例优化 449
12.2将程序常驻内存 454
12.2.1创建软件包DBMS SHARED POOL 454
12.2.2将程序常驻内存的过程 456
12.2.3从DBMSPOOL脚本理解软件包DBMS SHARED POOL 458
12.3将数据常驻内存 460
12.3.1再论数据块缓存池 460
12.3.2将数据常驻内存的过程 461
12.3.3将常驻内存的程序恢复为默认缓冲池 464
12.4优化重做日志缓冲区 465
12.4.1深入理解重做日志缓冲区的工作机制 465
12.4.2重做日志缓冲区相关的等待事件 467
12.4.3设置重做日志缓冲区大小 469
12.5优化共享池(Shared Pool) 471
12.5.1库高速缓存 471
12.5.2使用绑定变量 471
12.5.3调整参数CURSOR SHARING 474
12.5.4设置共享池的大小 475
12.6优化数据库高速缓存 476
12.6.1调整数据库缓冲区大小 477
12.6.2使用缓冲池 478
12.7优化PGA内存 480
12.8本章小结 484
第13章 Statspack与AWR 485
13.1 Statspack安装 485
13.2设置Statspack相关参数 487
13.3 statspack数据收集 490
13.3.1 STATSPACK收集统计数据的原理 490
13.3.2创建性能数据报表 492
13.3.3自动收集性能报告 494
13.4初步分析STATSPACK性能报告 496
13.5 AWR是什么 501
13.6管理AWR 502
13.6.1 DBMS_WORKLOAD_REPOSITORY包的使用 503
13.6.2 AWR快照与STATISTICS LEVEL参数的关系 504
13.6.3手工创建AWR快照 504
13.6.4清除AWR快照 505
13.6.5修改AWR快照参数 506
13.6.6创建和删除AWR快照基线 506
13.6.7创建AWR报告 508
13.7 ASH是AWR的补充 511
13.8创建并分析ASH报告 511
13.9 AWR与ADDM的关系 514
13.10本章小结 519