第1章 Oracle体系结构 1
1.1 数据库概述及实例 1
1.2 数据库 1
1.2.1 表空间(Tablespace) 1
第一部分 数据库体系结构 1
1.2.2 文件(File) 2
1.3 实例(Instance) 3
1.4 数据库内部结构 3
1.4.1 表、列及数据类型(Table,Column,Datatype) 4
1.4.2 约束条件 5
1.4.3 抽象数据类(Abstract Datatype) 6
1.4.5 用户(user) 7
1.4.4 分区(Partition) 7
1.4.6 模式(schema) 8
1.4.7 索引(Indexe) 8
1.4.8 簇(cluster) 9
1.4.9 散列簇(Hash Clusters) 9
1.4.10 视图(View) 9
1.4.11 序列(Sequence) 10
1.4.12 过程(Procedure) 10
1.4.13 函数(Function) 10
1.4.14 包(Package) 10
1.4.15 触发器(Trigger) 10
1.4.17 权限及角色(Privilege,Role) 11
1.4.16 同义词(Synonyms) 11
1.4.18 数据库链接(Database Link) 12
1.4.19 段、范围及块(Segment,Extent,Block) 13
1.4.20 回滚段(Rollback Segment) 13
1.5 内部存储结构 13
1.5.1 系统全局区(System Global Area,SGA) 14
1.5.2 正文区域(Context Area) 15
1.5.3 程序全局区(Program Global Area, PGA) 15
1.6 后台进程(Background Processes) 15
1.7 外部结构(External Structure) 18
1.7.1 日志文件(Redo Log) 18
1.7.2 控制文件(Control File) 18
1.8.1 备份/恢复功能(Backup/Recovery Capability) 19
1.7.3 跟踪文件与修改日志(Trace File and the Alert Log) 19
1.8 数据库的基本实现 19
1.8.2 安全性能 20
1.8.3 典型数据库逻辑设计 21
1.8.4 典型数据库物理设计 21
1.9 逻辑模式规则 22
1.9.1 一对一关联 22
1.9.2 一对多关联 23
1.9.3 多对多关联 23
第2章 硬件配置研究 24
2.1 结构概述 24
2.2 独立宿主(Stand-Alone Host) 24
2.2.1 磁盘阵列独立宿主(Stand-Alone Hosts With Disk Arrag) 25
2.2.2 磁盘映像独立宿主(Stand-Alone Hosts With Disk Shadowing) 27
2.2.3 多数据库的独立宿主(Stand-Alone Hosts Swith Multiple Database) 28
2.3 网络宿主 29
2.3.1 数据库网络(Network of Database) 30
2.3.2 远程更新:高级复制选项(Advanced Replication Option) 31
2.3.3 服务器簇:Oracle并行服务器(Parallel Server) 33
2.3.4 多处理器:并行查询(Parallel Query)与并行装载(Parallel Load)选项 34
2.3.5 客户/服务器数据库应用 34
第3章 数据库逻辑设计 36
3.1 最终产品 36
3.2 优化结构(Optimal Flexible Architecture,OFA) 36
3.2.1 起点:系统表空间(System Tablespace) 36
3.2.3 分离应用程序索引段:INDEXES 37
3.2.2 分离应用程序数据段:DATA 37
3.2.4 分离工具段:TOOLS 38
3.2.5 分离回滚段:RBS 38
3.2.6 分离临时段:TEMP 38
3.2.7 分离用户:USERS 39
3.3 OFA扩展 39
3.3.1 分离低使用(Low-Usage)数据段:DATA-2 40
3.3.2 分离低使用(Low-Usage)索引段:INDEXES-2 40
3.3.3 分离工具索引:TOOLS-1 40
3.3.4 分离特殊回滚段:RBS-2 40
3.3.5 分离特殊用户临时段:TEMP-USER 41
3.3.6 附加的特殊应用OFA扩展 41
3.4 普通意义的逻辑设计 42
第4章 数据库物理设计 44
4.1 数据库文件设计 44
4.1.1 数据文件间的I/O冲突 44
4.1.2 所有数据文件中的I/O瓶颈 46
4.1.3 后台进程中并发的I/O 48
4.1.4 定义系统恢复能力与性能目标 48
4.1.5 系统硬件的定义及结构镜像 49
4.1.6 确定数据库磁盘 49
4.1.7 选择正确的设计 49
4.2 I/O量估计的校验 54
4.3 文件放置 57
4.4 数据库空间使用概述 58
4.4.1 storage参数意义 59
4.4.2 Table段 61
4.4.3 Index段 61
4.4.4 Rollback段 61
4.4.5 Temporary段 62
4.4.6 自由空间(Free Space) 62
4.5 重新确定Oracle7.2及更高版本中的数据文件大小 63
4.6 数据文件的移动 65
4.6.1 移动数据库文件(Moving Datafile) 65
4.6.2 移动联机日志文件(Moving Online Redo Log File) 67
4.6.3 移动控制文件(Moving Control File) 68
4.7 Oracle7.2及Oracle7.3的空间管理 69
4.7.1 数据文件收缩(Shrinking Datafile) 69
4.7.2 数据表、簇、索引的收缩(Shrinking Table Cluster Indexes) 70
4.7.3 重建索引(Rebuild Indexes) 71
2.7.4 物理条件的满足(Physically Fit) 72
第二部分 数据库管理 73
第5章 开发过程管理 73
5.1 成功的三要素 73
5.2 培植(cultural)过程 73
5.3 管理(management)过程 74
5.3.1 定义环境(Defining the Environment) 74
5.3.2 角色的定义(Role Defirition) 74
5.3.3 方案报告(Deliverable) 74
5.3.4 确定数据库对象的尺寸(Sizing Database Objects) 77
5.3.5 迭代(Iterative)开发 86
5.4 技术方法 87
5.4.1 CASE工具 87
5.4.2 共享路径(Shared Directory) 87
5.4.3 项目管理数据库 88
5.4.4 讨论数据库 88
5.5 管理包的开发 88
5.5.1 生成图表 88
5.5.2 空间需求 88
5.5.3 协调目标 88
5.5.4 安全需求 88
5.5.7 验收测试进程 89
5.6 管理环境 89
5.5.6 执行规划 89
5.5.5 数据需求 89
第6章 监控多数据库 90
6.1 普通问题领域 90
6.1.1 超出表空间中的自由空间 90
6.1.2 缺乏临时段空间 91
6.1.3 达到扩展极限的回滚段 91
6.1.4 数据段碎片 92
6.1.5 自由空间碎片 92
6.1.6 不合适的SGA大小 92
6.2 目标选择 92
6.3 最终产品 93
6.4 建立中央命令数据库 96
6.4.1 数据获取 99
6.4.2 产生警报报告(Alert Report) 104
6.4.3 空间摘要报告 109
6.4.4 数据过滤 113
6.5 监控内存对象 113
6.5.1 UTLBSTAT及UTLESTAT的必要修改 113
6.5.2 统计报告解释 121
6.5.3 统计报告的扩展 125
6.6 良好管理的数据库 129
第7章 回滚段管理 130
7.1 回滚段概述 130
7.1.1 数据库对回滚段的使用 130
7.1.2 激活回滚段 132
7.2 回滚段的空间使用 133
7.1.3 为事务处理指定回滚段 133
7.2.1 存储优化 136
7.3 监控回滚段使用 137
7.3.1 监控当前空间分配 137
7.3.2 回滚段收缩 138
7.3.3 监控当前状态 138
7.3.4 监控动态扩展 139
7.3.5 回滚段中的事务 142
7.3.6 回滚段中的数据 143
7.4 选择回滚段的数量和大小 144
7.4.1 事务项 144
7.4.2 事务数量 145
7.4.3 确定优化值 149
7.4.4 建立回滚段 151
7.4.5 回滚段数据装载及结果 152
第8章 数据库的协调 154
8.1 协调应用程序设计 154
8.1.1 有效的表设计 154
8.1.2 分配CPU请求 155
8.1.3 有效进行应用设计 156
8.2 协调SQL 157
8.3 协调内存 160
8.4 数据存储的协调 162
8.4.1 段的碎片整理 163
8.4.2 自由范围的碎片整理 165
8.4.3 行链接 169
8.5 协调数据库操作 170
8.5.1 大量数据的插入:使用SQL*Loader Direct Path选项 170
8.4.4 增加Oracle块尺寸 170
8.5.2 大量数据的删除:truncate命令 172
8.6 协调物理存储 173
8.6.1 整理文件碎片 173
8.6.2 使用Raw Devices 174
8.7 逻辑存储的协调 174
8.8 减少网络访问 174
8.8.1 数据复制 175
8.8.2 使用远程进程调用 179
9.1.1 帐户安全性 182
9.1.2 对象权限 182
9.1 安全性能 182
第9章 数据库安全与审计 182
9.1.3 系统级角色和权限 183
9.2 实现安全性 183
9.2.1 操作系统安全性 183
9.2.2 建立用户 183
9.2.3 删除用户 184
9.2.4 系统级权限 184
9.2.5 用户环境文件 189
9.2.6 口令管理 190
9.2.7 防止口令重使用 192
9.2.8 设置口令组合 193
9.2.9 数据库帐户与主机帐户相连 198
9.2.10 口令保护 199
2.9.11 对象级权限 201
9.2.12 列表权限 203
9.3 限制可用命令:产品用户环境文件 205
9.4 注册期间的口令安全 206
9.5 口令编码与技巧 206
9.5.1 口令是怎样存储的 206
9.5.2 设置不存在的口令 206
9.5.3 变成另一个用户 208
9.6 审计 210
9.6.1 审计注册 210
9.6.2 操作审计 211
9.6.3 对象审计 213
9.7 保护审计踪迹 214
9.8 分布环境的安全性 214
第10章 优化备份和恢复过程 215
10.1 特性 215
10.2 逻辑备份 215
10.2.1 输出(Export) 215
10.2.2 输入(Import) 215
10.3 物理备份 216
10.3.1 脱机备份 216
10.3.2 联机(ARCHIVELOG)备份 216
10.4.1 输出 217
10.4 执行 217
10.4.2 输入 225
10.4.3 脱机备份 230
10.4.4 联机备份 231
10.4.5 备用数据库 240
10.5 集成备份过程 240
10.5.1 集成逻辑和物理备份 241
10.5.2 集成数据库和操作系统备份 242
10.6 使用恢复过程的恢复情形 243
10.6.1 实例失败(Inotance Failure) 244
10.6.2 媒体(磁盘disk)失败(Media Failure) 244
10.6.3 意外删除或修改对象的恢复 245
10.6.5 恢复管理器 247
10.6.4 并行恢复 247
第11章 管理Oracle财务和其他软件包及实用程序 249
11.1 软件包的通用管理准则 249
11.1.1 协调数据库结构 249
11.1.2 安全与数据存取控制 252
11.1.3 事务管理 253
11.1.4 文件定位 253
11.1.5 监控 253
11.1.6 版本的考虑 253
11.1.7 DBA的作用 254
11.2 管理Oracle财务软件包的特殊准则 254
11.2.1 库结构 254
11.2.2 数据库的存取 256
11.2.3 并发管理器 257
11.2.4 演示数据库 258
11.2.5 版本 258
11.2.6 文件定位 258
11.2.7 init.ora参数 259
11.3 管理Designer/2000的特殊准则 261
11.3.1 数据库结构 261
11.3.2 init.ora参数 262
11.4 管理其他包和实用工具 263
11.4.1 ConText 263
11.3.4 优化器 263
11.3.3 最活跃的表和索引 263
11.4.2 Export 265
11.4.3 SQL装载 266
11.4.4 程序接口 266
11.4.5 在SQL*Plus中使用PRODUCT-USER-PROFILE 267
第12章 大数据库管理 268
12.1 设置环境 268
12.1.1 大数据库容量 268
12.1.2 设置支持区大小 271
12.1.3 选择物理设计 271
12.1.4 分区 272
12.1.5 建立完全索引表 278
12.1.6 唯一索引表(Index-Only Table)建立及管理 278
12.1.7 建立和管理位图索引 279
12.2 事务管理 280
12.2.1 设置批量事务环境 281
12.2.2 装载数据 282
12.2.3 插入数据 282
12.2.4 删除数据 283
12.3 备份 286
12.3.1 备份需求及方式 287
12.3.2 备份方案 288
12.4 协调 288
12.4.1 协调大表查询 289
第13章 SQL*Net V2及Net8 291
13.1 SQL* net V2及Net 8概述 291
第三部分 网络ORACLE 291
13.1.1 连接描述器 293
13.1.2 服务名 293
13.1.3 监听器(Listener) 294
13.2 使用Net8 Assistant 296
13.2.1 多协议交换(Multiprotocol Interchange) 298
13.2.2 使用连接管理器(Connection Manager) 300
13.2.3 使用Oracle名称(Oracle Name) 300
13.3 应用样例:客户-服务器应用 301
13.4 应用样例:数据库链接 301
13.5 应用实例:拷贝命令 302
13.6 协调SQL* Net及Net 8 304
14.1 宿主的识别 306
14.2 数据库的识别 306
第14章 UNIX上的联网技术 306
14.3 服务的识别 307
14.4 启动监听服务器进程 308
14.5 控制监听服务器进程 309
14.6 调试连接问题 312
第15章 分布式数据库管理 314
15.1 分布数据库概述 314
15.1.1 远程查询 315
15.1.2 远程数据管理:TWO_Phase Commit 316
15.1.3 动态数据复制 317
15.2 分布式数据管理 317
15.2.1 基础结构:位置透明化 318
15.2.2 数据库链接管理 320
15.2.3 数据库触发器管理 321
15.2.4 快照管理 323
15.2.5 选择刷新类型 329
15.2.6 快照的脱机实例 329
15.2.7 净化快照日志 330
15.3 管理分布式事务 331
15.3.1 解决不确定事务 331
15.4 数据库域(Domain)和群(Community) 332
15.5 监控分布式数据库 333
15.6 协调分布式数据库 334
15.7 使用作业队列 336
16.1 客户-服务器处理概述 338
第16章 配置客户-服务器和网络计算机环境 338
16.2 配置服务器 339
16.2.1识别可用宿主 339
16.2.2 识别可用的服务 340
16.2.3 识别可用数据库 340
16.2.4 启动SQL* Net 341
16.3 配置客户机 341
16.3.1 识别可用宿主 341
16.3.2 识别可用服务 342
16.3.3 客户机说明 342
16.3.4 运行SQL* Net 342
16.4 关于网络计算机配置 342
A.1.1 init.ora文件在何处 345
A.1.2 警报日志文件在何处 345
附录A Oracle7到Oracle8的移植 345
A.1安装Oracle8 345
第四部分 附录 345
A.1.3 用户输出文件在何处 346
A.1.4 过时和修改的init.ora参数 346
A.1.5 过时的sqlnet.ora参数 347
A.1.6 过时的ensnames.ora和listener.ora参数 347
A.1.7 过时的Net8参数文件 347
A.2 如何移植 347
A.2.1 使用输出/输入方法 347
A.2.2 使用移植工具(Migration Utility) 348
A.3 RowID的变动 349
A.3.2 将RowID转换成严格格式 350
A.3.1 什么是Object-ID值 350
A.3.3 行在什么文件中 351
A.3.4 行在哪个块中 352
A.3.5 行的序列号是什么 353
A.3.6 管理口令 354
A.3.7 分区(Partition) 354
A.3.8 大型对象(LOB) 354
A.3.9 禁止日志子句 355
A.3.10 管理抽象数据类型 355
A.4 企业管理器 363
B.1 OEM的独特性能 364
B.1.1 恢复管理器 364
附录B 管理企业管理器 364
B.1.2 性能封装软件包及Oracle跟踪工具 365
B.2 数据仓库管理 366
B.3 远程安全管理 367
B.4 配置文件管理 368
附录 C DBA的SQL命令参考 370
C.1 ALTER DATABASE 370
C.2 ALTER INDEX 376
C.3 ALTER PROFILE 381
C.4 ALTER ROLE 383
C.5 ALTER ROLLBACK SEGMENT 383
C.6 ALTER SYSTEM 384
C.7 ALTER TABLE 393
C.8 ALTER TABLESPACE 406
C.9 ALTER USER 410
C.10 ANALYZE 411
C.11 ARCHIVE LOG子句 417
C.12 AUDIT(SQL语句) 419
C.13 AUDIT(模式对象) 424
C.14 CREATE CONTROLFILE 426
C.15 CREATE DATABASE 428
C.16 CREATE DATABASE LINK 431
C.17 CREATE INDEX 433
C.18 CREATE PROFILE 438
C.19 CREATE ROLE 441
C.20 CREATE ROLLBACK SEGMENT 443
C.21 CREATE SYNONYM 444
C.22 CREATE TABLE 446
C.23 CREATE TABLESPACE 457
C.24 CREATE USER 459
C.25 EXPLAIN PLAN 462
C.26 Filespec 464
C.27 GRANT(系统权限和角色) 465
C.28 GRANT(对象权限) 471
C.29 NOAUDIT(SQL语句) 474
C.30 NOAUDIT(模式对象) 475
C.31 RECOVER子句 476
C.32 STORAGE子句 477
C.33 TRUNCATE 480