第Ⅰ部分 SQL语言与PL/SQL语言 1
第1章 数据库的概念与Oracle 9i的安装 1
1.1 实体-关系模型 1
1.2 关系数据库系统概述 3
1.3 Oracle数据库简史与Oracle 9i 4
1.4 Oracle数据库的安装 5
1.5 本章小结 14
1.6 习题 14
2.1 Oracle的数据类型 15
第2章 SQL语言基础 15
2.2 SQL基本语法 17
2.2.1 数字运算符和比较运算符 17
2.2.2 逻辑运算符 20
2.2.3 简单的查询 21
2.3 SQL*PLUS工具 23
2.4 函数 27
2.4.1 单行SQL字符函数 27
2.4.2 转换格式函数 32
2.4.3 多行函数 35
2.6 习题 39
2.5 本章小结 39
第3章 数据操作和数据库对象 42
3.1 多表格查询 42
3.1.1 简单的两表格查询 42
3.1.2 三表格查询和多个表格查询 43
3.1.3 一些连接操作设置符号 44
3.2 数据修改 47
3.3.1 数据的插入 47
3.3 事务控制命令 49
3.3.3 数据的删除 49
3.3.2 数据的修改 49
3.4 表格的创建与修改 51
3.4.1 生成一个简单表格 51
3.4.2 表格的重命名与删除 54
3.5 视图 55
3.6 其他数据库对象和数据字典 56
3.6.1 索引(Index) 56
3.6.2 约束 57
3.6.4 过程、函数和包 59
3.6.3 同义词 59
3.6.5 触发器 60
3.6.6 数据字典 60
3.7 本章小结 60
3.8 习题 60
第4章 PL/SQL语言 64
4.1 PL/SQL简介 64
4.2 PL/SQL块结构与用途 64
4.3.1 变量声明 65
4.3 常量与变量 65
4.3.2 常量 66
4.3.3 单字符分界符和双字符分界符 67
4.3.4 标识符 68
4.4 执行一个PL/SQL块 68
4.5 条件语句IF...THEN 69
4.6 循环 71
4.7 PL/SQL在数据库中的应用 73
4.8 显式指针 74
4.9 出错处理 76
4.10 本章小结 77
4.11 习题 78
第Ⅱ部分 Oracle数据库结构与管理 81
第5章 Oracle的管理界面 81
5.1 企业管理器 81
5.2 Oracle Net Manager 83
5.3 登录方式 84
5.4 启动和关闭数据库服务器 85
5.5 配置系统初始化参数 88
5.7 习题 89
5.6 本章小结 89
第6章 Oracle服务器的例程 91
6.1 系统全局区 91
6.1.1 数据库高速缓冲区 92
6.1.2 共享存储区 93
6.1.3 重做日志缓冲区 94
6.1.4 Java存储区 94
6.1.5 大型存储区 94
6.2 程序全局区 94
6.3.1 进程结构 95
6.3 Oracle后台进程 95
6.3.2 进程分类 96
6.4 本章小结 99
6.5 习题 99
第7章 Oracle数据库的物理结构 101
7.1 数据文件 101
7.2 控制文件 101
7.2.1 多路控制文件 103
7.2.2 控制文件的生成 104
7.3.1 管理重做日志文件 105
7.2.3 查询控制文件信息 105
7.3 重做日志文件 105
7.3.2 日志转换(Log Switch) 106
7.3.3 检查点 107
7.3.4 多路日志文件 107
7.4 归档日志文件 109
7.4.1 设置归档路径 109
7.4.2 设置ARCHIVELOG/NOARCHIVELOG模式 110
7.4.3 查询日志和归档信息 113
7.6 习题 115
7.5 本章小结 115
8.1 表空间 117
第8章 Oracle数据库的逻辑结构 117
8.1.1 表空间管理 118
8.1.2 管理数据文件 125
8.1.3 数据文件信息查询 126
8.2 数据块 128
8.3 扩展区 129
8.4.1 数据段和索引段 130
8.4.2 临时段 130
8.4 段 130
8.4.3 回滚段 131
8.5 本章小结 136
8.6 习题 136
第9章 表格索引与约束 139
9.1 表格创建 139
9.1.1 生成一个简单表格 139
9.1.2 指定存储参数 142
9.1.3 为表格分区 144
9.2.1 指派与回收扩展区 146
9.2 表格管理 146
9.2.2 表格重组 147
9.3 表格分析 147
9.4 创建索引 150
9.4.1 索引的分类与生成 150
9.4.2 索引修改 151
9.4.3 查询索引信息 152
9.5 数据库的完整性约束 153
9.5.1 约束的分类 154
9.5.2 约束的创建 154
9.6 本章小结 157
9.7 习题 158
第10章 概要文件、用户权限与角色 160
10.1 概要文件 160
10.2 管理用户 162
10.2.1 创建用户 162
10.2.2 修改用户信息 163
10.2.3 删除用户 164
10.3 用户验证 164
10.4 查询用户信息 165
10.5 权限与角色 167
10.5.1 对象权限 168
10.5.2 系统权限 168
10.5.3 权限回收 172
10.5.4 角色管理 173
10.6 本章小结 176
10.7 习题 176
第11章 常用工具 179
11.1 SQL*Loader 179
11.2.1 用EXPORT导出数据 182
11.2 数据导入与导出 182
11.2.2 用IMPORr导入数据 184
11.2.3 表空间传输 186
11.3 国家语言支持 186
11.4 本章小结 187
11.5 习题 188
第Ⅲ部分 Oracle数据库的备份与恢复 189
第12章 Oracle备份与恢复机制 189
12.1 理解数据库备份 189
12.2 冷备份与热备份 190
12.3 归档备份与非归档备份对恢复的影响 191
12.4 理解几种不同的恢复机制 193
12.5 本章小结 194
12.6 习题 194
第13章 非RMAN下物理备份与恢复实现 195
13.1 数据库的冷备份 195
13.2 数据库的热备份 196
13.3 控制文件的备份 197
13.4.1 非归档日志下的数据库恢复 200
13.4 几种不同的恢复方式 200
13.4.2 归档日志下对丢失部分数据文件的恢复 201
13.4.3 丢失整个数据库情况下的恢复 204
13.5 非完全恢复 208
13.5.1 基于Cancel的恢复 208
13.5.2 基于Time的恢复 209
13.5.3 基于SCN的恢复 209
13.6 本章小结 210
13.7 习题 210
14.1 使用逻辑备份与恢复工具 212
第14章 逻辑备份与恢复 212
14.2 数据库逻辑备份与恢复的实现 213
14.3 使用Oracle企业管理器 216
14.4 本章小结 221
14.5 习题 221
第15章 Oracle恢复机制的补充 222
15.1 并行恢复的实现 222
15.2 控制文件的重建 222
15.3 只读表空间的恢复 228
15.5 习题 230
15.4 本章小结 230
第16章 Oracle数据库恢复管理器和待命服务器 231
16.1 RMAN简介 231
16.1.1 Nocatalog下连接RMAN 232
16.1.2 创建恢复目录 233
16.1.3 管理恢复目录 234
16.1.4 LIST和REPORT命令 235
16.1.5 生成并存储恢复管理器语句 237
16.1.6 操作系统命令备份 238
16.2.1 备份的分类与实现 239
16.2 使用RMAN进行备份 239
16.2.2 备份操作的调整 240
16.3 使用RMAN进行还原与恢复 240
16.3.1 数据文件的恢复 240
16.3.2 表空间的恢复 243
16.3.3 非归档日志下数据库的还原 245
16.4 Oracle服务器的伺服务体系 246
16.4.1 考虑使用Standby Database 246
16.4.3 创建待命数据库 247
16.4.2 初始化参数的配置 247
16.5 本章小结 250
16.6 习题 250
第Ⅳ部分 性能调整 251
第17章 性能调整概要 251
17.1 调整目标与计划的制定 251
17.2 调整内容 252
17.3 常用调整工具 252
17.4 本章小结 254
17.5 习题 255
18.1 共享存储器调整 256
第18章 Oracle内存调整 256
18.1.1 调整库高速缓存与数据字典高速缓存 257
18.1.2 共享存储区的“命中率” 257
18.1.3 提高共享存储区的性能 261
18.2 数据库缓冲区调整 263
18.2.1 存取区缓存管理机制 264
18.2.2 测量高速缓冲区的性能 264
18.2.3 提高缓冲区的性能 267
18.3.1 测试日志缓冲区的性能 269
18.3 重做日志缓冲区的调整 269
18.3.2 提高日志缓冲区的性能 270
18.4 本章小结 271
18.5 习题 271
第19章 结构查询语句与应用程序设计 274
19.1 TKPROF工具 274
19.2 解释计划 274
19.3 使用AUTOTRACE工具选项 277
19.4 理解Oracle的最佳性能 281
19.5 设置优化模式 282
19.5.2 会话级优化模式 283
19.5.1 例程级优化模式 283
19.5.3 语句级优化模式 284
19.6 应用程序的性能 284
19.6.1 执行路径的效率 285
19.6.2 索引与聚簇来最小化I/O 285
19.7 OLTP和DSS系统的性能调整要求 292
19.8 本章小结 292
19.9 习题 293
第20章 物理I/O调整 295
20.1 数据文件I/O的调整 296
20.2 数据库写进程的调整 299
20.3 段与数据块的调整 300
20.4 检查点进程的调整 302
20.5 归档日志进程的调整 302
20.6 排序区的调整 303
20.7 回滚段的调整 305
20.7.1 回滚段的作用 305
20.7.2 回滚段的种类 305
20.7.3 回滚段I/O性能测试 306
20.7.4 提高回滚段I/O性能 307
20.8 本章小结 307
20.9 习题 308
第21章 调整竞争 310
21.1 锁 310
21.1.1 数据锁 311
21.1.2 字典锁 312
21.1.3 死锁 313
21.2 闩的调整 317
21.3 Freelist的竞争 319
21.4 本章小结 320
21.5 习题 320
第22章 Oracle资源管理 321
22.1 资源管理概况 321
22.2 资源管理配置 322
22.3 资源管理器的管理 325
22.4 使用SQL*PLUS创建资源计划和使用者组 327
22.5 本章小结 331
22.6 习题 331
23.1 考虑使用Oracle Expert 332
第23章 Oracle性能调整工具 332
23.2 Oracle Expert的使用 333
23.2.1 设定范围 335
23.2.2 收集统计 337
23.2.3 复查 341
23.2.4 生成建议案 345
23.2.5 脚本的生成 346
23.3 本章小结 347
23.4 习题 347
24.1 Oracle Net Manager功能简介 349
第24章 Net Manager基本架构 349
第Ⅴ部分 网络管理 349
24.2 Oracle监听器 350
24.3 概要文件 351
24.4 网络服务命名 351
24.5 Oracle Net Manager网络协议堆栈段 351
24.5.1 典型的OSI协议通信栈 352
24.5.2 Oracle Net Manager客户端/服务器中的堆栈 352
24.6 Oracle连接管理器 355
24.7 域 356
24.9 习题 357
24.8 本章小结 357
第25章 Oracle网络服务服务器配置 358
25.1 配置监听器 358
25.2 本地命名服务器配置 360
25.3 主机命名法 362
25.4 Oracle命名服务器配置 364
25.5 多线程服务器配置与网络安全 371
25.5.1 多线程服务器配置 372
25.5.2 高级网络安全 374
25.7 习题 376
25.6 本章小结 376
第26章 出错处理 377
26.1 服务器端异常处理 377
26.2 命名服务器异常处理 378
26.3 客户机异常处理 379
26.4 NET8日志文件 380
26.5 NET8跟踪文件 381
26.6 本章小结 383
26.7 习题 384
附录 习题答案 385