第一部分 数据库体系结构 3
第1章 Oracle体系结构 3
1.1 数据库及实例概述 4
1.1.1 数据库 4
1.1.2 其他文件 5
1.1.3 Oracle管理的文件 7
1.1.4 实例 7
1.2 软件安装 8
1.3 创建数据库 10
1.3.1 使用Oracle数据库配置助理 10
1.3.2 初始化参数配置:内存 14
1.3.3 手工创建数据库 21
1.4 后台进程 22
1.5 数据库内部结构 24
1.5.1 表、列和数据类型 25
1.5.2 约束条件 27
1.5.3 抽象明数据类型 27
1.5.4 分区和子分区 29
1.5.5 用户 29
1.5.6 模式 29
1.5.7 索引 30
1.5.8 簇 31
1.5.9 散列簇 31
1.5.10 视图 31
1.5.12 过程 32
1.5.13 函数 32
1.5.11 序列 32
1.5.14 软件包 33
1.5.15 触发器 33
1.5.16 同义词 33
1.5.17 权限及角色 34
1.5.18 数据库链 34
1.5.19 段、区间和块 35
1.5.20 重做段与回退段 36
1.5.21 实体化视图 36
1.5.22 环境区 37
1.5.23 程序全局区 37
1.5.24 备份/恢复功能 38
1.5.26 使用OEM 39
1.5.25 安全性能 39
第2章 硬件配置研究 41
2.1 结构概述 42
2.2 独立主机 42
2.2.1 磁盘阵列独立主机 43
2.2.2 磁盘影像独立主机 46
2.2.3 多数据库独立主机 47
2.3 网络主机 48
2.3.1 数据库网络 49
2.3.2 远程更新:高级复制选项 50
2.3.3 真正的应用集群 52
2.3.4 多处理器:并行查询和并行装载选项 53
2.3.5 客户机/服务器数据库应用 53
2.3.6 三层体系结构 54
2.3.8 备用数据库 56
2.3.7 Oracle企业网关访问 56
2.3.10 外部文件访问 57
2.3.9 复制型数据库 57
2.3.11 外部表访问 58
第3章 计划和管理表空间 59
3.1 最终产品 60
3.2 优化灵活体系结构 60
3.2.1 起点:SYSTEM表空间 60
3.2.2 分离应用程序数据段:DATA 61
3.2.3 局部管理表空间 61
3.2.4 分离低使用的数据段:DATA_2 62
3.2.5 分离应用程序索引段:INDEXES 63
3.2.6 分离低使用的索引段:INDEXES_2 63
3.2.9 分离回退段:RBS 64
3.2.7 分离工具段:TOOLS 64
3.2.8 分离工具索引:TOOLS_I 64
3.2.10 分离特殊回退段:RBS_2 65
3.2.11 使用重做表空间 65
3.2.12 分离临时段:TEMP 65
3.2.13 分离用户专用临时段:TEMP_USER 66
3.2.14 分离用户:USERS 67
3.2.15 附加表空间类型 67
3.2.16 高级表空间类型 67
3.3 合理的逻辑设计 68
3.4 解决方案 69
第4章 数据库物理布局 71
4.1.1 数据文件间的I/O竞争 72
4.1 数据库文件布局 72
4.1.2 所有数据库文件间的I/O瓶颈 74
4.1.3 后台进程间的并发I/O操作 76
4.1.4 定义系统恢复能力与性能目标 77
4.1.5 定义系统硬件与镜像体系结构 77
4.1.6 识别专用于数据库的磁盘 77
4.1.7 选择正确的布局 78
4.2 I/O估算值的检验 79
4.3 解决方案 81
4.3.1 小型开发数据库布局 81
4.3.2 产品OLTP数据库布局 82
4.3.3 具有历史数据的产品OLTP数据库布局 82
4.3.4 数据仓库布局 83
4.4 文件位置 84
4.5 数据库空间使用概述 85
4.5.1 storage子句的含意 85
4.5.2 局部管理表空间 86
4.5.3 表段 87
4.5.4 索引段 87
4.5.5 回退段 88
4.5.6 临时段 88
4.5.7 空闲空间 89
4.6 重新确定数据文件大小 90
4.7 数据库文件的移动 91
4.7.1 移动数据文件 91
4.7.2 用Oracle Enterprise Manager移动数据文件 93
4.7.3 移动联机重做日志文件 97
4.8 段空间的回收方法 98
4.8.1 收缩数据文件 98
4.7.4 移动控制文件 98
4.8.2 收缩数据表、簇、索引 99
4.8.3 重建索引 100
4.8.4 联机重建索引 101
4.9 使用Oracle管理的文件(OMF) 101
4.9.1 配置环境 102
4.9.2 创建Oracle管理的文件 102
4.9.3 维护Oracle管理的文件 103
4.10 物理条件的满足 103
第二部分 数据库管理 107
第5章 开发过程管理 107
5.2 培植过程 108
5.1 成功三要素 108
5.3 管理过程 109
5.3.1 定义环境 109
5.3.2 角色的定义 110
5.3.3 交付使用 111
5.3.4 资源管理与存储概要 113
5.3.5 确定数据库对象的大小 118
5.3.6 迭代开发 134
5.3.7 迭代列定义 135
5.3.8 联机移动表 136
5.3.9 强制游标共享 137
5.4 管理技术 137
5.5 管理包开发 138
5.4.4 讨论数据库 138
5.4.1 CASE工具 138
5.4.3 项目管理数据库 138
5.4.2 共享目录 138
5.5.1 生成图表 139
5.5.2 空间需求 139
5.5.3 调整目标 139
5.5.4 安全需求 139
5.5.5 数据需求 139
5.5.6 版本要求 140
5.5.7 执行规划 140
5.5.8 验收测试过程 140
5.5.9 测试环境 140
5.6 管理环境 141
第6章 监控空间使用 143
6.1 常见问题 144
6.1.1 表空间中的空闲空间缺乏 144
6.1.2 临时段的空间不足 145
6.1.3 回退段达到扩展极限 145
6.1.4 数据段碎片 146
6.1.5 空闲空间碎片 146
6.1.6 SGA区域大小设置得不正确 146
6.2 目标选择 146
6.3 最终产品 147
6.4 建立Command Center数据库 150
6.4.1 数据获取 153
6.4.2 生成报警报表 157
6.4.3 空间汇总报表 161
6.4.4 清除数据 164
6.5 监控内存对象 165
6.6 附加的告警和警告 165
6.6.1 监控文件I/O分布 165
6.6.2 对象内部的空间分配率 169
6.7 良好管理的数据库 172
第7章 管理事务 173
7.1 回退段概述 174
7.1.1 数据库对回退段的使用 174
7.1.2 激活回退段 177
7.2 回退段中的空间使用 178
7.1.3 为事务指定回退段 178
7.3 监控回退段使用 182
7.3.1 收缩回退段 183
7.3.2 监控当前状态 183
7.3.3 监控动态扩展 183
7.3.4 每个回退段中的事务 185
7.3.5 回退段中的数据量 186
7.4 使用Oracle Enterprise Manager管理回退段 186
7.4.1 从OEM创建回退段 187
7.4.2 创建与现有回退段一样的回退段 187
7.4.3 设置回退段为联机状态 188
7.4.4 设置回退段为脱机状态 188
7.4.5 删除回退段 188
7.5.2 事务数量 189
7.5.1 事务条目数量 189
7.5 选择回退段的数量和大小 189
7.5.3 确定optimal值 190
7.5.4 创建回退段 190
7.5.5 产品回退段与数据装载回退段 191
7.6 解决方案 191
7.6.1 OLTP应用 192
7.6.2 数据仓库/批处理应用 192
7.7 使用重做表空间 193
7.7.1 设置重做保留 193
7.7.2 创建重做表空间 194
7.7.3 监视重做表空间 194
7.7.4 系统管理的重做解决方案 194
第8章 数据库调整 195
8.1 调整应用程序设计 196
8.1.1 高效的表设计 196
8.1.2 分配CPU请求 197
8.1.3 高效地进行应用设计 198
8.2 调整SQL 199
8.2.1 排序对载入率的影响 201
8.2.2 附加的索引选项 201
8.2.3 生成执行计划 202
8.3 调整内存使用 205
8.3.1 指定SGA区的大小 208
8.3.2 使用基于成本的优化程序 209
8.4 调整数据存储 210
8.4.1 段的碎片整理 211
8.4.2 评估索引使用 213
8.4.4 自由区间的碎片整理 214
8.4.3 局部管理表空间 214
8.4.5 标识链接行 217
8.4.6 增加Oracle块尺寸 218
8.4.7 使用索引组织表 218
8.5 调整数据操作 219
8.5.1 批量插入:使用SQL?Loader Direct Path选项 219
8.5.2 批量插入:常见陷阱和成功诀窍 221
8.5.3 批量删除:truncate命令 222
8.5.4 分区 223
8.6 调整物理存储 223
8.6.1 使用原始设备 223
8.8 减少网络流量 224
8.8.1 数据复制 224
8.6.2 使用RAID和镜像 224
8.7 调整逻辑存储 224
8.8.2 使用远程过程调用 229
8.9 使用OEM和性能调整组件 230
8.9.1 Oracle Expert组件 230
8.9.2 Oracle性能管理器选项 233
8.10 调整方案 235
第9章 使用STATSPACK 237
9.1 安装STATSPACK 238
9.2 PERFSTAT账户的安全性 238
9.3 安装后选项 239
9.4 收集统计数据 239
9.5 运行统计报表 241
9.6 STATSPACK数据管理 244
9.7 卸载STATSPACK 244
第10章 数据库安全与审计 247
10.1 安全功能 248
10.1.1 账户安全性 248
10.1.2 对象权限 248
10.1.3 系统级角色和权限 249
10.2 实现安全性 249
10.2.1 起始点:操作系统安全性 249
10.2.2 创建用户 249
10.2.3 删除用户 251
10.2.4 系统级权限 252
10.2.5 用户环境文件 255
10.2.6 口令管理 256
10.2.7 防止口令重新使用 259
10.2.8 设置口令复杂度 259
10.2.9 将数据库账户与主机账户相连 265
10.2.10 用口令文件进行验证 266
10.2.11 口令保护 267
10.2.12 对象级权限 268
10.2.13 列表权限 271
10.3 限制可用的命令:产品用户环境文件 272
10.4 登录期间的口令安全 273
10.5 口令加密与技巧 273
10.5.1 如何存储口令 274
10.5.2 设置不存在的口令 274
10.5.3 变成另一个用户 275
10.6 虚拟私有数据库 277
10.7 审计 283
10.7.1 登录审计 283
10.7.2 操作审计 284
10.7.3 对象审计 285
10.7.4 保护审计追踪 286
10.8 分布式环境中的安全性 287
10.9 解决方案 287
第11章 备份和恢复选项 289
11.1 性能 290
11.2 逻辑备份 290
11.3.2 联机备份 291
11.3.1 脱机备份 291
11.3 物理备份 291
11.4 实现 292
11.4.1 导出 292
11.4.2 导入 299
11.4.3 脱机备份 303
11.4.4 联机备份 305
11.4.5 使用LogMiner 314
11.4.6 备用数据库 321
11.5 备份过程集成 322
11.5.1 逻辑备份和物理备份集成 322
11.5.2 数据库和操作系统备份集成 323
第12章 使用恢复管理器 325
12.1 有关恢复管理器 326
12.1.1 恢复管理器体系结构 327
12.1.2 RMAN命令及其使用 330
12.1.3 使用OEM备份管理器 334
12.1.4 使用OEM进行恢复 341
12.1.5 生成列表与报表 346
12.2 一些RMAN建议 348
第三部分 网络 353
第13章 Oracle Net 353
13.1 Oracle Net概述 354
13.1.1 连接描述符 356
13.1.2 服务名 357
13.1.3 使用Oracle互联网目录替换tnsnames.ora 358
13.1.4 监听器 358
13.2 使用Oracle Net Configuration Assistant 360
13.1.5 Oracle9i中的监听器 360
13.3 使用Oracle Net Manager 366
13.3.1 Oracle连接管理器 368
13.3.2 使用连接管理器 369
13.3.3 使用Oracle Internet Directory进行目录命名 372
13.3.4 使用Oracle Names 374
13.4 启动监听器服务器进程 374
13.5 控制监听器服务器进程 375
13.6 应用样例:客户机/服务器应用程序 377
13.7 应用样例:数据库链接 377
13.8 应用样例:copy命令 378
13.9 Oracle Names的服务器/客户机配置或目录服务器 380
13.10 调整Oracle Net 380
13.11 UNIX与Oracle Net 381
13.11.2 数据库的识别 382
13.11.1 主机的识别 382
13.11.3 调试连接问题 383
第14章 调整9iAS 385
14.1 启动、停止与重新启动iAS 386
14.2 调整Apache与TCP 388
14.3 调整Oracle HTTP服务器配置 389
14.4 使用Oracle高速缓存服务 390
14.5 Oracle Web Cache 390
14.5.1 使用Oracle Web Cache 390
14.5.2 Oracle Web Cache管理器 391
14.5.3 作废缓存的文档 401
14.6 Oracle9iAS数据库缓存 402
14.5.4 应用服务器之间的负载均衡 402
14.6.1 数据库缓存如何工作 403
14.6.2 利用Oracle9iAS数据库缓存的优势 404
第15章 管理大型数据库 405
15.1 设置环境 406
15.1.1 确定大型数据库的容量 406
15.1.2 设置支持区大小 409
15.1.3 选择物理设计 410
15.1.4 分区 411
15.1.5 创建实体化视图 417
15.1.6 创建和管理索引组织表 418
15.1.7 创建和管理外部表 419
15.1.8 创建和管理全局临时表 419
15.1.9 创建和管理位图索引 420
15.2 事务管理 421
15.2.1 配置批事务环境 421
15.2.2 装载数据 422
15.2.3 插入数据 423
15.2.4 删除数据 424
15.3 备份 427
15.3.1 备份需求及策略评估 427
15.3.2 备份方案开发 428
15.4 调整 428
15.5 使用可迁移表空间 430
15.5.1 生成可迁移的表空间集 430
15.5.2 插入可迁移的表空间集 431
15.6 局部管理的表空间 432
第16章 分布式数据库管理 433
16.1 远程查询 434
16.2 远程数据操作:两阶段提交 435
16.3 动态数据复制 436
16.4 分布式数据管理 437
16.4.1 基础结构:实施位置透明性 437
16.4.2 数据库链接管理 441
16.4.3 数据库触发器管理 442
16.4.4 实体化视图管理 444
16.4.5 使用OEM创建实体化视图 452
16.5 分布式事务管理 458
16.5.1 解决悬而未决的事务 458
16.5.2 提交点强度 458
16.7 分布式数据库调整 459
16.6 分布式数据库监控 459
16.8 使用作业队列 461
附录 467
附录A DBA的SQL命令参考 467
A.1 ALTER DATABASE 468
A.2 ALTER INDEX 483
A.3 ALTER MATERIALIZED VIEW 493
A.4 ALTER MATERIALIZED VIEW LOG 499
A.5 ALTER OUTLINE 502
A.6 ALTER PROFILE 503
A.7 ALTER ROLE 504
A.8 ALTER ROLLBACK SEGMENT 504
A.9 ALTER SEQUENCE 506
A.10 ALTER SYSTEM 507
A.11 ALTER TABLE 513
A.12 ALTER TABLESPACE 550
A.13 ALTER TRIGGER 555
A.14 ALTER USER 556
A.15 ASSOCIATE STATITICS 558
A.16 AUDIT 560
A.17 constraint_clause 565
A.18 CREATE CONTROLFILE 575
A.19 CREATE DATABASE 578
A.20 CREATE DATABASE LINK 584
A.21 CREATE DIRECTORY 585
A.22 CREATE INDEX 586
A.24 CREATE MATERIALIZED VIEW 597
A.23 CREATE LIBRARY 597
A.25 CREATE MATERIALIZED VIEW LOG 606
A.26 CREATE OUTLINE 609
A.27 CREATE PFILE 611
A.28 CREATE PROFILE 611
A.29 CREATE ROLE 614
A.30 CREATE ROLLBACK SEGMENT 615
A.31 CREATE SEQUENCE 616
A.32 CREATE SPFILE 619
A.33 CREATE SYNONYM 620
A.34 CREATE TABLE 621
A.35 CREATE TABLESPACE 647
A.36 CREATE TEMPORARY TABLESPACE 651
A.37 CREATE TRIGGER 653
A.38 CREATE USER 659
A.39 CREATE VIEW 660
A.40 EXPLAIN PLAN 665
A.41 filespec 666
A.42 GRANT 667
A.43 NOAUDIT 678
A.44 RENAME 679
A.45 REVOKE 680
A.46 SET CONSTRAINT[S] 683
A.47 SET ROLE 684
A.48 SET TRANSACTION 685
A.49 storage_clause 686
A.50 TRUNCATE 690