第Ⅰ部分 Oracle Database 11g管理 3
第1章 Oracle Database 11g体系结构概述 3
1.1 Oracle产品系列 4
1.1.1 Oracle服务器系列 4
1.1.2 Oracle开发工具 7
1.1.3 Oracle应用程序 9
1.2 预备知识 9
1.2.1 Oracle概念 10
1.2.2 SQL概念 10
1.2.3 操作系统概念 11
1.3 单实例体系结构 11
1.3.1 单实例数据库体系结构 11
1.3.2 分布式系统体系结构 13
1.4 实例内存结构 15
1.4.1 数据库缓冲区缓存 16
1.4.2 日志缓冲区 17
1.4.3 共享池 18
1.4.4 大池 21
1.4.5 Java池 21
1.4.6 流池 22
1.5 实例进程结构 23
1.5.1 SMON 24
1.5.2 PMON 24
1.5.3 DBWn 24
1.5.4 LGWR 26
1.5.5 CKPT 27
1.5.6 MMON 27
1.5.7 MMNL 28
1.5.8 MMAN 28
1.5.9 ARCn 28
1.5.10 RECO 29
1.5.11 其他一些后台进程 29
1.6 数据库存储结构 32
1.6.1 物理数据库结构 32
1.6.2 逻辑数据库结构 35
1.6.3 数据字典 37
1.7 本章知识点回顾 39
1.8 自测题 39
1.9 自测题答案 41
第2章 安装和创建数据库 43
2.1 了解Oracle数据库管理工具 44
2.1.1 Oracle Universal Installer 44
2.1.2 创建数据库和升级数据库的工具 48
2.1.3 发送即席SQL的工具:SQL*Plus和SQL Developer 48
2.1.4 Oracle Enterprise Manager 52
2.1.5 其他管理工具 53
2.2 规划Oracle数据库的安装 54
2.2.1 选择操作系统 54
2.2.2 硬件和操作系统资源 55
2.2.3 Optimal Flexible Architecture 57
2.2.4 环境变量 57
2.3 使用OUI安装Oracle软件 59
2.4 使用DBCA创建数据库 62
2.4.1 实例、数据库和数据字典 62
2.4.2 使用DBCA创建一个数据库 63
2.4.3 DBCA创建的脚本和其他文件 67
2.4.4 DBCA的其他功能 73
2.5 本章知识点回顾 74
2.6 自测题 75
2.7 自测题答案 78
第3章 实例管理 81
3.1 设置数据库初始化参数 82
3.1.1 静态参数和动态参数以及初始化参数文件 82
3.1.2 基本参数 84
3.2 描述启动和关闭数据库时的多个阶段 88
3.2.1 Database Control的启动和连接 88
3.2.2 启动数据库侦听器 90
3.2.3 启动SQL*Plus 91
3.2.4 启动和关闭数据库 92
3.3 使用警报日志和跟踪文件 100
3.4 使用数据字典和动态性能视图 101
3.4.1 数据字典视图 101
3.4.2 动态性能视图 102
3.5 本章知识点回顾 104
3.6 自测题 105
3.7 自测题答案 107
第4章 配置Oracle网络环境 109
4.1 配置和管理Oracle网络 110
4.1.1 Oracle Net和客户端-服务器范例 110
4.1.2 Oracle Net与通信协议简介 111
4.1.3 建立会话 112
4.1.4 创建侦听器 114
4.1.5 数据库注册 116
4.1.6 解析名称的技术 117
4.1.7 侦听器控制实用程序 119
4.1.8 配置服务别名 121
4.1.9 文件名和TNSADMIN环境变量 123
4.1.10 数据库链接 125
4.2 使用Oracle共享服务器体系结构 128
4.2.1 专用服务器体系结构的局限性 129
4.2.2 共享服务器体系结构 130
4.2.3 配置共享服务器 132
4.2.4 使用共享服务器的场合 132
4.3 本章知识点回顾 134
4.4 自测题 135
4.5 自测题答案 137
第5章 Oracle存储结构 139
5.1 了解表空间和数据文件 140
5.1.1 Oracle数据存储模型 140
5.1.2 段、区间、块和行 142
5.1.3 文件存储技术 144
5.2 创建和管理表空间 146
5.2.1 创建表空间 146
5.2.2 更改表空间 150
5.2.3 删除表空间 154
5.2.4 OMF 154
5.3 管理表空间中的空间 156
5.3.1 区间管理 157
5.3.2 管理段空间 158
5.4 本章知识点回顾 159
5.5 自测题 160
5.6 自测题答案 162
第6章 Oracle安全性 165
6.1 创建和管理数据库用户账户 166
6.1.1 用户账户属性 166
6.1.2 身份验证方法 170
6.1.3 创建账户 173
6.2 授予和撤销权限 176
6.2.1 系统权限 176
6.2.2 对象权限 178
6.3 创建和管理角色 182
6.3.1 创建角色并授予角色权限 182
6.3.2 预先定义的角色 183
6.3.3 启用角色 184
6.4 创建和管理配置文件 187
6.4.1 管理口令 187
6.4.2 资源限制 188
6.4.3 配置文件的创建和分配 189
6.5 数据库安全和最小权限原则 192
6.5.1 PUBLIC权限 192
6.5.2 对安全性至关重要的实例参数 193
6.6 使用标准数据库审核 197
6.6.1 审核SYSDBA活动 198
6.6.2 数据库审核 198
6.6.3 使用触发器执行基于值的审核 200
6.6.4 细粒度审核(FGA) 201
6.7 本章知识点回顾 204
6.8 自测题 205
6.9 自测题答案 208
第Ⅱ部分 SQL 213
第7章 DDL和模式对象 213
7.1 分类主要的数据库对象 214
7.1.1 对象类型 214
7.1.2 命名模式对象 215
7.1.3 对象名称空间 216
7.2 列举列可用的数据类型 217
7.3 创建简单的表 219
7.3.1 使用列规范创建表 220
7.3.2 使用子查询创建表 221
7.3.3 在创建之后更改表定义 222
7.3.4 删除和截断表 222
7.4 创建和使用临时表 225
7.5 索引 227
7.5.1 为什么说索引是必需的 227
7.5.2 索引类型 228
7.5.3 创建和使用索引 232
7.5.4 修改和删除索引 233
7.6 约束 234
7.6.1 约束类型 234
7.6.2 定义约束 236
7.6.3 约束状态 237
7.6.4 检查约束 238
7.7 视图 239
7.7.1 使用视图的原因 240
7.7.2 简单视图和复杂视图 242
7.7.3 创建、更改和删除视图 243
7.8 同义词 244
7.9 序列 246
7.9.1 创建序列 247
7.9.2 使用序列 248
7.10 本章知识点回顾 252
7.11 自测题 253
7.12 自测题答案 258
第8章 DML与并发性 261
8.1 数据操作语言(DML)语句 262
8.1.1 INSERT 262
8.1.2 UPDATE 265
8.1.3 DELETE 268
8.1.4 TRUNCATE 270
8.1.5 MERGE 271
8.1.6 DML语句失败 272
8.2 控制事务 273
8.2.1 数据库事务 273
8.2.2 执行SQL语句 274
8.2.3 事务控制:COMMIT、ROLLBACK、SAVEPOINT和SELECT FOR UPDATE 277
8.3 识别和管理PL/SQL对象 281
8.3.1 存储的与匿名的PL/SQL程序块 282
8.3.2 PL/SQL对象 282
8.4 监视和解决锁定冲突 286
8.4.1 共享锁与排他锁 287
8.4.2 排队机制 287
8.4.3 锁定争用 288
8.4.4 死锁 290
8.5 撤销概述 291
8.6 事务与撤销数据 292
8.7 管理撤销 293
8.7.1 与撤销相关的错误条件 294
8.7.2 用于撤销管理与保留保证的参数 294
8.7.3 调整与监视撤销表空间 295
8.7.4 创建和管理撤销表空间 297
8.8 本章知识点回顾 297
8.9 自测题 299
8.10 自测题答案 301
第9章 使用SQL检索、限制和排序数据 305
9.1 列出SQL SELECT语句的功能 306
9.1.1 SQL SELECT语句的介绍 306
9.1.2 DESCRIBE表命令 306
9.1.3 SELECT语句的功能 307
9.1.4 数据规范化 308
9.2 创建演示模式 311
9.2.1 HR和WEBSTORE模式 311
9.2.2 演示模式的创建 314
9.3 执行基本的SELECT语句 317
9.3.1 基本SELECT语句的语法 317
9.3.2 必须遵守的规则 318
9.3.3 SQL表达式和运算符 321
9.3.4 NULL 324
9.4 限制查询检索的行 325
9.4.1 WHERE子句 325
9.4.2 比较运算符 328
9.4.3 布尔运算符 332
9.4.4 优先规则 334
9.5 排序查询检索的行 335
9.6 &符号替换 337
9.6.1 替换变量 337
9.6.2 定义和验证 339
9.7 本章知识点回顾 342
9.8 自测题 343
9.9 自测题答案 345
第10章 单行函数与转换函数 347
10.1 描述和使用SQL中的字符、数字和日期函数 348
10.1.1 定义函数 348
10.1.2 函数类型 348
10.1.3 使用大小写转换函数 349
10.1.4 使用字符操作函数 350
10.1.5 使用数字函数 353
10.1.6 使用日期 355
10.2 描述SQL中可用的各种类型的转换函数 359
10.3 使用TO_CHAR、TO_NUMBER和TO_DATE转换函数 361
10.4 在SELECT语句中应用条件表达式 368
10.4.1 嵌套函数 368
10.4.2 条件函数 369
10.5 本章知识点回顾 375
10.6 自测题 376
10.7 自测题答案 378
第11章 分组函数 379
11.1 分组函数 380
11.1.1 分组函数的定义 380
11.1.2 使用分组函数 381
11.2 使用GROUP BY子句分组数据 384
11.2.1 创建数据组 384
11.2.2 GROUP BY子句 385
11.2.3 按多列分组 387
11.2.4 嵌套的分组函数 388
11.3 使用HAVING子句包含或者排除分组行 389
11.3.1 限制分组结果 389
11.3.2 HAVING子句 390
11.4 本章知识点回顾 392
11.5 自测题 392
11.6 自测题答案 395
第12章 SQL联接 397
12.1 使用同等联接和非同等联接编写SELECT语句访问多个表的数据 398
12.1.1 联接的类型 398
12.1.2 使用SQL:1999语法联接表 402
12.1.3 限定模糊的列名 402
12.1.4 NATURAL JOIN子句 403
12.1.5 自然JOIN USING子句 406
12.1.6 自然JOIN ON子句 407
12.1.7 N路联接和其他联接条件 408
12.1.8 非同等联接 410
12.2 使用自联接将表联接到自身 411
12.3 使用外联接查看不满足联接条件的数据 413
12.3.1 内联接和外联接 413
12.3.2 左外联接 413
12.3.3 右外联接 415
12.3.4 全外联接 416
12.4 生成两个或者更多表的笛卡尔乘积 417
12.5 本章知识点回顾 419
12.6 自测题 420
12.7 自测题答案 422
第13章 子查询和集合运算符 425
13.1 定义子查询 426
13.2 描述子查询能够解决的问题的类型 427
13.2.1 将子查询的结果集用于比较 427
13.2.2 生成对其执行SELECT语句的表 428
13.2.3 生成投影值 428
13.2.4 生成传递给DML语句的行 428
13.3 列举子查询的类型 430
13.3.1 单行和多行子查询 430
13.3.2 关联子查询 431
13.4 写单行和多行子查询 433
13.5 描述集合运算符 434
13.5.1 集合和维恩图 434
13.5.2 集合运算符的一般原则 434
13.6 使用集合运算符将多个查询合并为一个查询 437
13.6.1 UNION ALL运算符 437
13.6.2 UNION运算符 437
13.6.3 INTERSECT运算符 438
13.6.4 MINUS运算符 439
13.6.5 更复杂的示例 439
13.7 控制返回行的顺序 440
13.8 本章知识点回顾 440
13.9 自测题 441
13.10 自测题答案 445
第Ⅲ部分 高级数据库管理 449
第14章 数据库备份和恢复配置 449
14.1 备份和恢复问题 450
14.2 失败类型 451
14.2.1 语句失败 451
14.2.2 用户进程失败 453
14.2.3 网络故障 453
14.2.4 用户错误 453
14.2.5 介质失败 455
14.2.6 实例失败 456
14.3 实例恢复 456
14.3.1 实例恢复机制 457
14.3.2 数据库不可能受到损坏 457
14.3.3 调整实例恢复 458
14.3.4 MTTR顾问程序和检查点自动调整 459
14.3.5 检查点 460
14.4 为数据库的可恢复性作准备 461
14.4.1 保护控制文件 461
14.4.2 保护联机重做日志文件 463
14.4.3 归档日志模式和归档器进程 466
14.4.4 保护归档重做日志文件 468
14.5 闪回恢复区 469
14.5.1 恢复文件 469
14.5.2 配置闪回恢复区 469
14.5.3 闪回恢复区的空间使用 470
14.6 本章知识点回顾 472
14.7 自测题 473
14.8 自测题答案 475
第15章 使用RMAN进行备份 477
15.1 备份的概念和术语 478
15.2 使用RMAN BACKUP命令创建备份 479
15.2.1 服务器管理的一致备份 479
15.2.2 服务器管理的打开状态的备份 481
15.2.3 增量备份 482
15.2.4 映像副本 486
15.2.5 保护备份 487
15.2.6 并行化备份操作 487
15.2.7 加密备份 489
15.3 配置RMAN默认值 490
15.4 管理和监视RMAN备份 491
15.4.1 LIST、REPORT和DELETE命令 491
15.4.2 归档备份 493
15.4.3 动态性能视图 493
15.4.4 交叉检查备份 494
15.5 本章知识点回顾 495
15.6 自测题 497
15.7 自测题答案 499
第16章 使用RMAN还原和恢复 501
16.1 数据恢复顾问 502
16.1.1 Health Monitor和ADR 502
16.1.2 DRA的功能和局限性 503
16.1.3 使用数据恢复顾问 504
16.2 数据库还原和恢复 507
16.3 在数据文件丢失时,使用RMAN执行完整恢复 508
16.3.1 非归档日志模式下的数据文件恢复 508
16.3.2 归档日志模式下的非关键文件恢复 509
16.3.3 在丢失关键数据文件时恢复 511
16.4 不完整恢复 512
16.5 控制文件的自动备份和还原 514
16.6 使用映像副本恢复 518
16.7 块恢复 519
16.7.1 受损块的检测 520
16.7.2 块介质恢复 520
16.7.3 BLOCK RECOVER命令 520
16.8 本章知识点回顾 521
16.9 自测题 522
16.10 自测题答案 526
第17章 高级RMAN功能 529
17.1 恢复目录 530
17.1.1 恢复目录的必要性 530
17.1.2 创建并连接到目录 531
17.1.3 虚拟专用目录 533
17.1.4 保护和重建目录 533
17.2 存储脚本 536
17.3 使用RMAN来创建数据库 537
17.4 表空间时间点恢复(TSPITR) 540
17.4.1 TSPITR方法 540
17.4.2 自动执行TSPITR 541
17.5 RMAN性能和监视 543
17.5.1 监视RMAN会话和作业 544
17.5.2 调整RMAN 547
17.5.3 为异步I/O配置RMAN 550
17.6 本章知识点回顾 551
17.7 自测题 554
17.8 自测题答案 556
第18章 用户管理的备份、还原和恢复 559
18.1 备份和恢复 560
18.2 用户管理的数据库备份 561
18.2.1 以非归档日志模式备份 561
18.2.2 以归档日志模式备份 562
18.3 备份口令和参数文件 564
18.4 不影响数据文件的介质失败 564
18.4.1 在丢失多路复用的控制文件后进行恢复 565
18.4.2 在丢失多路复用的联机重做日志文件后进行恢复 566
18.4.3 丢失临时文件后进行恢复 569
18.5 丢失数据文件后进行恢复 569
18.5.1 以非归档日志模式恢复数据文件 569
18.5.2 以归档日志模式恢复非关键的数据文件 570
18.5.3 以归档日志模式恢复关键的数据文件 571
18.6 执行用户管理的不完整恢复 571
18.7 本章知识点回顾 574
18.8 自测题 575
18.9 自测题答案 576
第19章 闪回技术 579
19.1 各种不同的闪回技术 580
19.1.1 闪回数据库 580
19.1.2 闪回查询、事务和表 580
19.1.3 闪回删除 581
19.1.4 Flashback Data Archive 581
19.1.5 使用闪回技术的时机 582
19.2 闪回数据库 582
19.2.1 闪回数据库体系结构 583
19.2.2 配置闪回数据库 584
19.2.3 监视闪回数据库 585
19.2.4 使用闪回数据库 586
19.2.5 限制生成的闪回数据量 590
19.3 Flashback Drop 591
19.3.1 实现闪回删除 592
19.3.2 使用闪回删除 593
19.3.3 管理回收站 596
19.3.4 对回收站的空间进行回收 597
19.4 闪回查询 598
19.4.1 基本的闪回查询 599
19.4.2 闪回表查询 600
19.4.3 闪回版本查询 602
19.4.4 闪回事务查询 603
19.4.5 闪回和撤销数据 608
19.5 闪回数据归档 609
19.6 本章知识点回顾 611
19.7 自测题 612
19.8 自测题答案 615
第20章 自动存储管理 619
20.1 逻辑卷管理器的作用 620
20.1.1 RAID级别 620
20.1.2 卷大小 621
20.1.3 选择RAID级别 621
20.1.4 ASM与第三方LVM的比较 621
20.2 ASM体系结构 622
20.2.1 群集同步服务 622
20.2.2 ASM磁盘和磁盘组 622
20.2.3 ASM实例 624
20.2.4 RDBMS实例 625
20.2.5 ASM文件 625
20.3 创建原始设备 626
20.4 创建、启动和停止ASM实例 627
20.5 创建ASM磁盘组 630
20.6 创建和使用ASM文件 632
20.7 ASM和RMAN 633
20.8 ASMCMD实用程序 634
20.9 本章知识点回顾 636
20.10 自测题 637
20.11 自测题答案 639
第21章 资源管理器 641
21.1 资源管理器的必要性 642
21.2 资源管理器体系结构 643
21.2.1 使用者组 643
21.2.2 资源管理器计划 644
21.2.3 资源管理器配置工具 646
21.3 管理用户和使用者组 647
21.4 资源管理器计划 648
21.4.1 CPU方法 648
21.4.2 使用比例CPU方法 653
21.4.3 活动会话池方法 654
21.4.4 限制并行程度 655
21.4.5 通过执行时间控制作业 656
21.4.6 依据空闲时间终止会话 657
21.4.7 限制撤销数据的产生 658
21.5 使用者组自动切换 659
21.6 使用者组自适应映射 660
21.7 本章知识点回顾 663
21.8 自测题 664
21.9 自测题答案 666
第22章 调度程序 669
22.1 调度程序体系结构 670
22.2 调度程序对象 671
22.2.1 作业 671
22.2.2 程序 672
22.2.3 时间表 673
22.2.4 作业类 674
22.2.5 窗口 674
22.2.6 权限 675
22.3 创建和调度作业 676
22.3.1 自包含作业 676
22.3.2 使用程序和时间表 677
22.3.3 事件驱动的作业 679
22.3.4 作业链 681
22.3.5 轻量级作业 682
22.4 使用类、窗口与Resource Manager 684
22.4.1 使用作业类 684
22.4.2 使用窗口 685
22.5 本章知识点回顾 687
22.6 自测题 688
22.7 自测题答案 690
第23章 移动和重组数据 691
23.1 SQL*Loader 692
23.2 外部表 694
23.2.1 目录 694
23.2.2 使用外部表 695
23.3 Data Pump 698
23.3.1 Data Pump的体系结构 698
23.3.2 目录和文件位置 699
23.3.3 在直接路径或外部表路径之间作出抉择 700
23.4 使用Data Pump导出和导入 700
23.4.1 功能 700
23.4.2 将Data Pump与命令行实用程序一起使用 701
23.4.3 将Data Pump与Database Control一起使用 702
23.4.4 表空间导出和导入 703
23.5 可恢复空间分配 707
23.6 段重组 710
23.6.1 行链接和行迁移 710
23.6.2 段收缩 712
23.7 本章知识点回顾 715
23.8 自测题 717
23.9 自测题答案 718
第24章 AWR与警报系统 721
24.1 自动工作负荷知识库 722
24.1.1 收集AWR统计信息 722
24.1.2 管理AWR 723
24.1.3 统计信息、指标和基准 724
24.1.4 DBMS_WORKLOAD_REPOSI TORY包 724
24.2 数据库顾问框架 726
24.2.1 自动数据库诊断监视器 726
24.2.2 顾问 728
24.2.3 自动维护作业 729
24.3 使用服务器生成的警报系统 733
24.3.1 警报条件监视和通知 733
24.3.2 设置阈值 734
24.3.3 通知系统 735
24.4 本章知识点回顾 738
24.5 自测题 739
24.6 自测题答案 740
第25章 性能调整 741
25.1 内存管理 742
25.1.1 PGA内存管理 742
25.1.2 SGA内存管理 744
25.1.3 自动内存管理 745
25.2 内存顾问 746
25.3 SQL调整顾问 749
25.3.1 SQL调整顾问的功能 749
25.3.2 通过Enterprise Manager使用SQL Tuning Advisor 749
25.3.3 SQL Tuning Advisor API:DBMS_SQLTUNE包 754
25.4 SQL访问顾问 755
25.4.1 通过Database Control使用SQL Access Advisor 755
25.4.2 通过DBMS_ADVISOR使用SQL Access Advisor 759
25.5 识别和修复无效对象和不可用对象 761
25.5.1 无效对象 761
25.5.2 不可用索引 763
25.6 Database Replay 766
25.6.1 捕获工作负荷 766
25.6.2 预处理工作负荷 767
25.6.3 启动重放 767
25.6.4 分析和报告 768
25.7 本章知识点回顾 771
25.8 自测题 773
25.9 自测题答案 776
第26章 全球化 779
26.1 全球化要求和功能 780
26.1.1 字符集 780
26.1.2 语言支持 781
26.1.3 地区支持 783
26.1.4 其他NLS设置 784
26.2 使用全球化支持功能 785
26.2.1 选择字符集 786
26.2.2 改变字符集 787
26.2.3 数据库中的全球化 787
26.2.4 实例级别的全球化 788
26.2.5 客户端环境设置 788
26.2.6 会话级别的全球化设置 790
26.2.7 语句级别的全球化设置 791
26.3 语言和时区 792
26.3.1 语言排序与选择 792
26.3.2 Locale Builder 794
26.3.3 使用时区 794
26.4 本章知识点回顾 796
26.5 自测题 797
26.6 自测题答案 799
第27章 智能基础结构 801
27.1 Enterprise Manager Support Workbench 802
27.1.1 自动诊断知识库 802
27.1.2 问题和事件 803
27.1.3 ADRCI 803
27.1.4 Support Workbench 804
27.2 补丁程序 806
27.2.1 补丁程序的类型 806
27.2.2 与MetaLink和PatchAdvisor集成 806
27.2.3 应用补丁程序 807
27.3 本章知识点回顾 812
27.4 自测题 813
27.5 自测题答案 814
附录A 本书提供的OCA/OCP考试资料 817
术语表 819