第一部分 数据库体系结构第一章 Oracle体系结构 2
1.1 数据和概述 2
1.2 数据库 2
1.2.1 表空间 2
1.2.2 文件 3
1.3 实例 3
1.4 数据库内部结构 4
1.4.1 表和列(Columns) 5
1.4.2 表限制条件 6
1.4.3 用户(Users) 7
1.4.4 方案(Schemas) 7
1.4.5 索引 8
1.4.6 簇 8
1.4.7 哈希簇(Hash clusters) 8
1.4.8 视图(Views) 9
1.4.9 序列(Sequences) 9
1.4.10 过程(Procedures) 9
1.4.11 函数(Functions) 9
1.4.12 程序包(Packages) 9
1.4.13 触发器(Triggers) 10
1.4.14 同义词(Snonyms) 10
1.4.15 优先权和角色(Privileges and Roles) 10
1.4.16 数据库链接(Database Liriks) 11
1.4.17 段范围块(Segments,Exteints and Blocks) 12
1.4.18 回滚段(Rollback Segments) 12
1.5 内部存储器结构(Internal Memory Structures) 12
1.5.1 系统全局范围(System Global Area(SGA)) 13
1.5.2 上下文范围(Context Areas) 15
1.5.3 程序全局范围(Program Global Area(PGA)) 15
1.6 进程结构(Process Structures) 15
1.6.1 系统监控(System Monitor):SMON 15
1.6.2 进程监控(Process Monitor):PMON 16
1.6.3 数据库书写器(Database Writer)DBWR 16
1.6.4 日志书写器(Log writer):LGWR 16
1.6.5 检测点(Checkpoint(Oracle7)):CKPT 17
1.6.6 归档存储器(Archiver):ARCH 17
1.6.7 恢复(Recoverer)(Oracle7,布局式选项):RECO 17
1.6.8 锁定(Lock)(Parallel Server(并行服务器)):Lckn 17
1.6.9 (Dispatcher)(Oracle7,SQL*Net V2):Dnnn 18
1.6.10 服务器(Server):Snnn 18
1.7 外部结构(External Structures) 18
1.7.1 重做日志 18
1.7.2 控制文件(Control Files) 19
1.8 基本数据库的实现 19
1.8.1 备份/恢复能力(Backup/Recovery Capabilities) 20
1.8.2 安全性性能(Security Capabilities) 20
1.8.3 逻辑数据库布局的实例(Sample Logical database Layout) 21
1.8.4 物理数据库结构实例(Sample physical Database Layout) 21
1.9 理解逻辑建模的是(Understanding Logical Modeling Conventions) 22
1.9.1 一对一关系(One-to-One Relationships) 22
1.9.2 一对多关系(One-to-Many Relationships) 23
1.9.3 多对多关系(Many-to-Many Relationships) 24
第二章 硬件配置及硬件考虑 25
2.1 总体结构 25
2.2 独立的主机 26
2.2.1 带驱动器组的独立主机 26
2.2.2 带补偿磁盘的单机 28
2.2.3 带多重操作库的主机 29
2.3 网络主机 30
2.3.1 数据库网络 31
2.3.2 远程更新:布局式选择项 33
2.3.3 服务器群:并行服务器选择 35
2.3.4 客户—服务器数据库运用 37
第三章 逻辑数据库结构 39
3.1 最终结果 39
3.2 优化的灵活结构(OFA) 39
3.2.1 起始点:系统表空间 39
3.2.2 分离应用数据段:DATA 40
3.2.3 分离应用索引段:INDEXES 41
3.2.4 分离工具段:TOOLS 41
3 2.5 分离回滚段:RBS 42
3.2.6 分离临时段:TEMP 42
3.2.7 分离用户:USERS 43
3. 3 超越OFA 43
3.3.1 分离低使用率的数据段:DATA 2 43
3.3.2 分离低使用率的索引段:INDEXES 2 44
3.3.3 分离工具索引:TOOLS 1 44
3.3.4 分离特殊的回滚程序段:RBS 2 45
3.3.5 分离特定用户的临时程序段:TEMP_USER 45
3.4 一段意义上的逻辑结构布局 46
第四章 物理数据库布局 47
4.1 数据库文件布局 47
4.1.1 数据文件间的输入/输出(I/O)争用 48
4.1.2 所有数据文件中I/O“瓶颈”问题 49
4.1.3 后台进程的并行I/O操作 51
4.1.4 确定系统的可恢复性和执行目标 52
4.1.5 定义系统硬件和镜像结构 52
4.1.6 确定数据库专用磁盘 53
4.1.7 选择适当的结构 53
4.2 对I/O估计权值的验证 58
4.3 文件定位 63
4.4 数据库空间应用鸟瞰 65
4.4.1 STORAGE子句的隐含 66
4.4.2 表段 67
4.4.3 索引段 68
4.4.4 回滚段 68
4.4.5 临时段 68
4.4.6 空闲空间 69
4.5 物理匹配 70
第二部分 数据库管理第五章 管理开发进程 72
5.1 成功的三个关键因素 72
5.2 培训过程 72
5.3 管理过程 73
5.3.1 定义环境 73
5.3.2 角色定义 73
5.3.3 可交付性 76
5.3.4 确定数据库对象的大小 78
5.3.5 迭代开发 87
5.4 技术 87
5.4.1 Case工具 88
5.4.2 共享目录 88
5.4.3 项目管理数据库 88
5.4.4 讨论数据库 88
5.5 管理开发程序包 88
5.5.1 生成图表 89
5.5.2 空间需求 89
5.5.3 调整目标 89
5.5.4 安全性需求 89
5.5.5 数据需求 89
5.5.6 执行计划 90
5.5.7 可接受性测试过程 90
5.6 可管理的环境 90
第六章 多数据库的监控 91
6.1 常见范围问题 91
6.1.1 在表空间中,运行超出了空闲空间 91
6.1.2 没有足够的空间给临时段 92
6.1.3 已达到最大范围数的回滚段 92
6.1.4 数据段碎片 93
6.1.5 碎片空闲空间 93
6.1.6 SGA范围没有正确规定大小 93
6.2 选择目标 93
6.3 最后产品 94
6.4 创建“命令中心”数据库 96
6.4.1 取得数据 100
6.4.2 生成警告报表 105
6.4.3 空间概况表(空间一览表) 109
6.5 监视内存对象 113
6.5.1 对BSTAT/UTLBSTAT和ESTAT/UTLESTAT的必要的修改 113
6.5.2 统计报表的说明 119
6.5.3 统计报表的扩充 123
6.6 更好地管理数据库 131
第七章 回滚段的管理 132
7.1 回滚段概论 132
7.1.1 数据库是怎样使用回滚段的 132
7.1.2 激活回滚段 135
7.1.3 确定事务的回滚段 136
7.2 回滚段之间的空间使用 136
7.2.1 ORACLE7中优化存储子句 138
7.3 监视回滚段的使用 140
7.3.1 监视当前空间的分配 140
7.3.2 监视当前状态 141
7.3.3 监视动态范围 141
7.3.4 每个回滚段的事务处理 146
7.3.5 回滚段中的数据空间 147
7.4 选择数量和大小 148
7.4.1 事务入口项大小 148
7.4.2 事务数量 149
7.4.3 确定优化长度 153
7.4.4 创建回滚段 155
7.4.5 数据装载的回滚段 156
第八章 数据库调整 157
8.1 应用程序设计的调协 157
8.1.1 有效的表设计 157
8.1.2 CPU请求的分配 158
8.1.3 有效的应用程序设计 158
8.2 SQL语句调协 159
8.3 内存使用的调整 162
8.4 数据存储的调协 163
8.4.1 段碎片 163
8.4.2 空闲范围碎片 165
8.4.3 鉴别链接行 175
8.4.4 增加ORACLE块的大小 175
8.5 数据操纵的调协 176
8.5.1 使用SQL*Loader目录路径的选择 176
8.5.2 大量删除:TRUNCATE命令 177
8.6 物理存储的调协 178
8.6.1 文件碎片的调协 178
8.6.2 使用RAW驱动器 178
8.7 逻辑存储的调整 178
8.8 减少网络信息流量 179
8.8.1 数据的复制 179
8.8.2 使用远程过程调用 184
第九章 数据库安全性和审计 187
9.1 安全性功能 187
9.1.1 帐号安全性管理 187
9.1.2 对象安全性管理 187
9.1.3 系统级角色 188
9.2 ORACLE 6.0版中安全性工具 188
9.2.1 起点:操作系统安全性 188
9.2.2 创建用户 188
9.2.3 撤销用户 189
9.2.4 系统级角色 190
9.2.5 数据库帐号与主机帐号相结合 190
9.2.6 口令保护 191
9.2.7 权力的管理 191
9.2.8 无效授权 192
9.3 ORACLE7中的安全工具 193
9.3.1 起点:操作系统安全性 193
9.3.2 创建用户 193
9.3.3 撤销用户 194
9.3.4 系统级角色 195
9.3.5 用户简要表 198
9.3.6 数据库帐号与主机帐号连接 199
9.3.7 口令保护 200
9.3.8 权力管理 201
9.3.9 授权列举 203
9.4 限制有效命令:生产用户简要表 204
9.5 口令密码和陷阱 205
9.5.1 口令的存储 205
9.5.2 设置不存在的口令 205
9.5.3 转为另外一个用户 206
9.6 审计 208
9.6.1 登录(注册)审计 209
9.6.2 活动审计 210
9.6.3 对象审计 212
9.7 保护审计跟踪 212
9.8 布局式环境中的安全性 213
9.8.1 远程帐号存取 213
9.8.2 SQL*Net设置 214
第十章 优化备份和恢复过程 215
10.1 功能 215
10.2 逻辑备份 215
10.2.1 导出 215
10.2.2 导入 216
10.3 物理备份 216
10.3.1 冷备份 216
10.3.2 热(ARCHIVELOG)备份 217
10.4 执行过程 217
10.4.1 导出 217
10.4.2 完全导出与增量/积累导出 220
10.4.3 导入 226
10.4.4 冷备份 231
10.4.5 热备份(ARCHIVELOG) 232
10.5 结合的备份过程 239
10.5.1 逻辑备份与物理备份结合 239
10.5.2 数据库与操作系统备份结合 240
10.6 以上备份过程的恢复方案 242
10.6.1 实例失效(Instance Failure) 242
10.6.2 媒体(磁盘)失效(Media Failure) 242
10.6.3 恢复意外撤销或修改的对象 244
第三部分 支持程序软件工具包第十一章 支持Oracle*CASE 248
11.1 ORACLE*CASE综述 248
11.1.1 数据库结构 248
11.1.2 数据库存储 249
11.2 DBA的角色 250
11.3 数据库安排 250
11.3.1 文件位置和大小 251
11.3.2 升版考虑 251
11.4 摘录支持 251
11.4.1 空间请求 252
11.4.2 使用特殊的回滚段 252
11.5 监视 252
11.5.1 最活动的表和索引 253
11.5.2 监视空间变化趋势 253
第十二章 支持ORACLE财务软件 254
12.1 ORACLE财务软件——浏览 254
12.1.1 数据库结构 254
12.1.2 数据库存取 255
12.1.3 并发管理程序 255
12.1.4 DEMO(演示)数据库 256
12.2 DBA角色 256
12.3 数据库规则 257
12.3.1 将开发与产品分开 257
12.3.2 选择回滚段的长度和数量 257
12.3.3 第二个临时表空间:TEMP_GL 261
12.3.4 文件分配 262
12.3.5 并发管理器 263
12.3.6 INIT.ORA参数 263
12.4 监视 264
12.4.1 最活跃的表和索引 264
12.4.2 监视空间变化趋势 265
12.5 调协 265
12.5.1 监视SGA的使用 265
12.5.2 验证I/O权值 265
12.5.3 GL优化程序 266
第十三章 支持Oracle实用程序 267
13.1 所有Oracle实用程序注释 267
13.1.1 生成表(产品表)的位置 268
13.1.2 用户复制生成表(产品表)(User Copies of Product Tables) 268
13.1.3 对实用程序的控制访问(Controlling Access to Utilities) 270
13.2 特有的生成“产品”(Product-Specific Support) 270
13.2.1 Export/Import(导出/导入) 270
13.2.2 程序设计接口(Programmatic Interfaces) 271
13.2.3 SQL*Forms 271
13.2.4 SQL*Loader 271
13.2.5 SQL*Menu 272
13.2.6 SQL*Plus 273
13.2.7 SQL*ReportWriter 273
13.2.8 SQL*TextRetrieval 274
第十四章 支持第三方工具 275
14.1 Forest & Trees(森林和树) 275
14.2 IQ for Windows 275
14.3 PowerBuilder 276
14.4 PowerViewer 277
14.5 Q+E 277
14.6 SQL*Assist 277
14.7 SQR 277
第四部分 网络环境下的Oracle第十五章 SQL*Net V1和V2 280
15.1 SQL*Net综述 280
15.2 SQL*Net V1 282
15.2.1 链接字符串(connect string) 282
15.2.2 别名和缺省值(Aliases and Defaults) 283
15.2.3 实现(implementation) 283
15.3 SQL*Net V2 284
15.3.1 连接描述符(Connect Descriptors) 284
15.3.2 服务名(Service Names) 284
15.3.3 接收器(Listeners) 285
15.3.4 SQL*Net V2 Configuration TOOL(SQT*Net V2配置工具) 285
15.3.5 使用多协议互换(MultiProtocol Interchange) 286
15.4 使用举例:Client-Server应用程序 288
15.5 使用举例:数据库链接 288
15.6 使用举例:COPY命令 290
15.7 SQL*Net转换 291
第十六章 UNIX上的连网技术 293
16.1 确定主机 293
16.2 确定数据库 293
16.3 服务的确定 294
16.3.1 对于SQL*Net V1 294
16.3.2 对于SQL*Net V2 295
16.4 启动SQL*Net服务器进程 295
16.4.1 对于SQL*Net V1 295
16.4.2 对于SQL*Net V2 297
16.5 控制SQL*Net服务器进程 298
16.5.1 对于SQL*Net V1 298
16.5.2 对于SQL*Net V2 300
16.6 调试链接问题 301
第十七章 管理布局式数据库 303
17.1 布局式数据库综述 303
17.1.1 远程查询 303
17.1.2 远程数据操作:双相处理 305
17.1.3 动态数据复制 306
17.2 管理布局式数据 307
17.2.1 防止措施:实现位置透明 307
17.2.2 管理数据库链接 309
17.2.3 管理数据库触发器 311
17.2.4 快照管理 313
17.3 管理布局式事务 317
17.3.1 解决疑点事务 317
17.3.2 提交点强度 318
17.4 数据库域和通信 318
17.5 监控布局式数据库 320
17.6 调协分步式数据库 320
第五部分 附录 324
附录A 数据库的生成过程 324
A.1 Oracle 7脚本 324
A.1.1 数据库生成—cr_CC1.sql脚本 325
A.1.2 临时参数—initcc10.ora文件 330
A.1.3 产品参数—initcc1.ora文件 331
A.1.4 数据库配置—configcc1.ora文件 331
A.2 Oracle第六版脚本 332
A.2.1 数据库生成——cr_CC1.sql文本 332
A.2.2 临时参数(1)——initcc10.ora文件 337
A.2.3 临时参数(2)—initcc11.ora文件 338
A.2.4 产生参数——initcc1.ora文件 339
附录B 数据库安装指南 342
B.1 创建数据库 342
B.2 生成数据字典目录视图 344
B.3 生成支持ORACLE产品及任选项的数据库对象 344
B.4 生成杂类数据库对象 345
附录C DBA命令的SQL参考 347
C.1 ALTER DATABASE(数据库调整) 347
C.2 ALTER PROFILE(调整简要表) 352
C.3 ALTER RESOURCE COST(调整资源代价) 353
C.4 ALTER ROLE(改变代码) 355
C.5 ALTER ROLLBACK SEGMENT(改变回滚段) 355
C.6 ALTER SYSTEM(调整系统) 356
C.7 ALTER TABLESPACE(调整表空间) 362
C.8 ALTER USER(改变用户) 364
C.9 ANALYZE 366
C.10 ARCHIVE LOG语句 370
C.11 AUDIT(SQL语句) 373
C.12 AUDIT(审记) 377
C.13 CREATE CONTROLFILE 379
C.14 CREATE DATABASE 382
C.15 CREATE DATABASE LINK 386
C.16 CREATE PROFILE 387
C.17 CREATE ROLE(创建角色) 390
C.18 CREATE ROLLBACK SEGMENT(创建回滚段) 392
C.19 CREATE SYNONYM 393
C.20 CREATE TABLESPACE 395
C.21 CREATE USER 396
C.22 DROP DATABASE LINK(数据库链接的撤销) 398
C.23 DROP PROFILE 399
C.24 DROP ROLE(撤销角色) 399
C.25 DROP ROLLBACK SEGMENT 400
C.26 DROP SYNONYM(撤销同义词) 401
C.27 DROP TABLESPACE(撤销表空间) 401
C.28 DROP USER(撤销用户) 402
C.29 EXPLAIN PLAN(解释) 403
C.30 Filespec 405
C.31 GRANT(系统优先权和角色) 406
C.32 GRANT(对象优先权) 413
C.33 NOAUDIT(SQL语句) 416
C.34 NOAUDIT(方案对象) 417
C.35 RECOVER语句 418
C.36 REVOKE(系统优先权和角色) 419
C.37 REVOKE(对象优先权) 421
C.38 SET ROLE(角色的设置) 423
C.39 SET TRANSACTION 424
C.40 STORAGE语句 426
C.41 TRUNCATE 429
附录D 客户—服务器环境的配置指南 431
D.1 客户—服务器处理概述 431
D.2 配置服务器 432
D.2.1 指明可用的宿主机 432
D.2.2 指明可用的服务 433
D.2.3 指明可用的数据库 433
D.2.4 启动SQL*Net 433
D.3 配置客户 434
D.3.1 指明可用的宿主机 434
D.3.2 指明可用的服务 434
D.3.3 指明客户配置 435
D.3.4 客户机规范 436
D.3.5 执行SQL*Net 436
D.4 在配置中增加一个文件服务器 436