第1部分 升级 1
第1章 实现升级的步骤 3
1.1 升级步骤介绍 3
1.2 选择升级方法 4
1.2.1 Oracle的升级工具 4
1.2.2 Oracle数据升级助手 6
1.2.3 通过导出和导入升级 7
1.2.4 用数据复制实现升级 9
1.2.5 选择升级方法 11
1.3 设计测试计划 13
1.5 实现升级 14
1.6 完成升级后的任务 14
1.4 创建升级计划 14
1.7 小结 15
第2章 升级前的准备 17
2.1 评估资源需求 17
2.2 分配任务 19
2.3 创建测试计划 21
2.3.1 确定测试类型 21
2.3.2 创建测试程序 26
2.4 小结 27
第3章 安装和配置Oracle8i 29
3.1 系统需求 29
3.2 启动数据库组件 31
3.3 安装Oracle8i 32
3.4 配置Oracle8i卷 36
3.5 非交互式安装 37
3.6 Oracle Software Packager 45
3.7 小结 45
第4章 使用升级工具 47
4.1 升级过程回顾 47
4.2 用MIG手工升级 48
4.3 升级工具的命令行选项 50
4.4 分步的升级 51
4.5 中止升级过程 54
4.6 升级完成后的步骤 54
4.7 升级过程的故障排除 55
4.8 小结 59
第5章 使用数据升级助手升级 61
5.1 数据升级助手的系统资源需求 62
5.2 用数据升级助手安装Oracle7数据库 63
5.2.1 完成数据库备份 64
5.2.2 确认兼容的版本号 64
5.2.3 安装和确认程序选项 64
5.2.4 恢复脱机表格空间和数据文件 65
5.2.5 清除特定的用户和角色 65
5.2.6 设置SYSTEM回滚段的存储选项 66
5.2.7 修改安装参数文件 67
5.2.8 解决未处理的事务 68
5.3 用数据升级助手安装Oracle8i数据库 69
5.4 使用数据升级助手对数据库进行升级 69
5.5 用数据升级助手完成升级 72
5.6 用数据升级助手排除故障和中止升级过程 73
5.7 小结 74
第6章 使用导出/导入进行升级 75
6.1 定义导入/导出时的系统资源需求 76
6.2 为导入/导出准备Oracle7数据库 81
6.3 为导入/导出升级方式安装Oracle8i数据库 82
6.4 为导入/导出准备Oracle8i数据库 83
6.5 执行导入/导出 86
6.5.1 交互式导出 86
6.5.2 命令行方式导出 87
6.5.3 使用参数文件导出 87
6.5.4 导入/导出参数 90
6.6 问题解决与放弃导出/导入升级方式 99
6.7 小结 100
第7章 使用数据复制进行升级 101
7.1 为数据复制定义系统资源需求 102
7.2 为数据复制准备Oracle7数据库 106
7.3 为数据复制安装Oracle8i数据库 107
7.4 为数据复制准备Oracle8i数据库 107
7.5 用数据复制方式完成升级 112
7.6 问题解决和放弃数据复制升级 115
7.7 小结 115
第8章 升级后的处理 117
8.1 备份升级后的数据库 118
8.2 执行测试程序 118
8.2.1 升级测试 118
8.2.3 功能测试 119
8.2.2 最小测试 119
8.2.4 集成测试 120
8.2.5 性能测试 120
8.2.6 容量/负荷的强度测试 120
8.3 回顾初始化参数 121
8.4 调试数据库 122
8.5 引入所需的新特性 123
8.6 修改/增加管理员程序 124
8.7 小结 125
第9章 从Oracle8升级到Oracle8i 127
9.1 升级前的处理 128
9.1.1 DB_DOMAIN参数 128
9.1.2 OLITLN用户或角色 128
9.1.4 选择升级方法 129
9.1.3 向关键表格空间中增加空间 129
9.1.5 备份 130
9.2 用Oracle数据升级助手升级 130
9.3 手工执行升级 131
9.4 用户定义的数据类型的升级 134
9.5 恢复管理器升级 135
9.6 高级队列升级的处理 135
9.6.1 升级高级队列的数据类型 136
9.6.2 升级高级队列的表格 137
9.7 快照的升级 137
9.8 高级复制器的升级 137
9.9 并行服务器升级的处理 138
9.11.2 Oracle企业版管理器的listener.ora入口 139
9.11.1 环境变量 139
9.11 升级后的处理 139
9.10 PL/SQL验证 139
9.11.3 参数文件的处理 140
9.11.4 错误的日期约束 140
9.11.5 从LONG到LOB的转换 141
9.11.6 OUTLN用户密码 141
9.12 小结 141
第10章 有关兼容性的问题 143
10.1 COMPATIBLE初始化参数 143
10.2 需要COMPATIBLE=8.1.X的Oracle8i特性 144
10.3 应用程序的兼容性和互操作性 148
10.4 启动和关闭的兼容性和互操作性 150
10.5 表空间和数据文件的兼容性和互操作性 151
10.6 数据字典的兼容性和互操作性 151
10.7 National Language Support数据类型的兼容性和互操作性 152
10.8 SQL和PL/SQL的兼容性和互操作性 153
10.9 高级队列的兼容性和互操作性 155
10.10 程序和包的兼容性和互操作性 156
10.11 Oracle并行服务器的兼容性和互操作性 156
10.12 数据库安全性的兼容性和互操作性 158
10.13 数据库备份和恢复的兼容性和互操作性 158
10.14 分布式数据库的兼容性和互操作性 159
10.15 SQL*Net和Net8的兼容性和互操作性 159
10.17 不同性质的兼容性和互操作性 160
10.18 小结 160
10.16 导出/导入的兼容性和互操作性 160
第11章 升级应用程序 163
11.1 概述 163
11.2 升级OCI应用程序 164
11.3 升级预编译应用程序 164
11.4 升级表单和开发器/2000应用程序 165
11.5 升级SQL*Plus脚本 165
11.5.1 升级服务器管理器和SQL*Plus 165
11.6 将LONG拷贝到LOB 171
11.7 小结 172
第12章 跟ROWID有关的问题 175
12.1 ROWID结构 175
12.3 升级应用程序和数据 177
12.2 DBMS_ROWID包 177
12.3.1 ROWID和应用程序升级 178
12.3.2 ROWID和数据转移 182
12.4 客户兼容性的发布 183
12.5 统一的ROWID 184
12.6 小结 184
第13章 降级 187
13.1 准备降级 187
13.2 降级到8.0版的Oracle8 188
13.2.1 删除不兼容的部分 188
13.2.2 重置数据库的兼容性 204
13.2.3 降级数据库 205
13.3 降级到Oracle7 208
13.4 小结 209
14.1 升级工具和数据升级助手信息及纠正方式 211
第14章 解决升级过程中的问题 211
14.2 小结 221
第15章 从非Oracle数据库升级 223
15.1 从MS SQL Server升级 224
15.2 Oracle Migration Workbench分析程序算法问题 225
15.2.1 逻辑事件问题 227
15.2.2 DATATIME类数据的升级 227
15.2.3 异常处理问题 228
15.2.4 RAISERROR语句 228
15.2.5 升级工作单元表的问题 229
15.3 关于对象名称和保留字问题 230
15.4 使用Oracle Migration Workbench问题 230
15.5 从MS Access升级 232
15.5.1 基准程序 233
15.5.2 升级过程中的考虑 233
15.5.3 查询调整 234
15.5.4 使用SQL追踪和TKPROF进行查询调整 235
15.5.5 运用Oracle Migration Assistant访问Microsoft 237
15.6 小结 238
第2部分Oracle8i的新特性 239
第16章 划分 241
16.1 理解划分 241
16.2 划分视图 245
16.3 划分的维护操作 247
16.4 划分模型 249
16.4.1 域划分 249
16.4.3 复合划分 250
16.4.2 散列划分 250
16.5 使用划分和子划分名 251
16.6 类划分 252
16.7 数据字典视图 253
16.8 小结 253
第17章 并行执行 255
17.1 并行DML与手动并行操作 256
17.2 并行操作方式 256
17.3 并行查询结构 258
17.4 使用并行操作的初始参数 259
17.5 并行执行度 260
17.6 管理争用 264
17.9 对并行查询性能问题的诊断 265
17.8 事务恢复和回滚段问题 265
17.7 并行恢复 265
17.9.1 对事件10046的结果解释 266
17.9.2 在并行服务器环境下的并行操作 267
17.10 小结 267
第18章 对象的关系特征 269
18.1 Oracle8i中的对象 270
18.2 对象引用 273
18.2.1 在列中使用REF 273
18.2.2 运用REF和DEREF运算符 274
18.3 Oracle8i中的集合 275
18.4 用对象方法工作 279
18.5 用对象视图工作 281
18.6 范例分析:购买订单系统 283
18.7 运用对象缓冲区 285
18.8 小结 289
第19章 创建和管理大型对象(LOBs) 291
19.1 内部LOBs 291
19.2 外部LOBs(BFILE) 292
19.3 LOBs与LONGs/LONG RAWs的比较 293
19.4 创建LOBs 295
19.5 操纵LOBs 297
19.6 装载LOBs 303
19.6.1 使用DBMS-LOB来装载LOBs 303
19.6.2 服务器图像卷和LOBs 304
19.7 数据字典视图 305
19.8 小结 307
20.1 高级队列的概述 309
第20章 高级队列 309
20.2 高级队列的重要特点 310
20.3 安装高级队列 311
20.3.1 配置实例 312
20.3.2 安装安全性 312
20.3.3 创建队列表和支持结构 313
20.3.4 使用基本队列结构进行消息管理 314
20.3.5 高级队列系统的数据字典 317
20.4 使用高级队列系统的运行界面 317
20.5 小结 318
第21章 恢复管理(RMAN) 319
21.1 RMAN的组成部分 320
21.1.3 恢复目录 321
21.1.2 目标数据库 321
21.1.1 可执行的RMAN 321
21.1.4 通信信道 322
21.2 启动RMAN 322
21.3 用RMAN来执行数据库的备份 323
21.3.1 递增式和累计式备份 324
21.3.2 复制文件备份 324
21.3.3 备份集合 325
21.4 使用RMAN执行数据库再生 327
21.5 使用RMAN进行数据库恢复操作 329
21.6 使用RMAN的样本方案 330
21.7 有用的RMAN命令 331
21.7.1 Standalone RMAN命令 331
21.7.2 Job命令 334
21.8 小结 336
第22章 密码管理 337
22.1 密码的组成/复杂性 338
22.2 密码的到期与终止 339
22.3 密码的生命期 339
22.4 帐号锁定特性 340
22.5 用于密码管理的数据字典视图 341
22.6 管理描述信息 342
22.7 选择验证方法 345
22.7.1 使用操作系统验证 346
22.7.2 使用密码文件 347
22.8 小结 348
23.1 Net8及监听器的增强特性 349
第23章 Net8特性 349
23.2 增强的连接特性和可扩展性 350
23.2.1 连接与客户端负载均衡 350
23.2.2 设置服务名 351
23.2.3 连接共享 352
23.2.4 连接管理器 352
23.3 安全特性 355
23.4 配置特性 356
23.5 附加的Net8特性 357
23.5.1 Oracle名字服务器的性能改进 357
23.5.2 跟踪辅助工具(Trace Assistant) 358
23.6 小结 358
24.1 群集配置 359
第24章 Oracle并行服务器 359
24.1.1 Oracle并行服务器结构 361
24.1.2 操作系统的相关组成部分 362
24.2 完整的分布式加锁管理器 362
24.3 并行高速缓冲器管理以及加锁 365
24.4 在Oracle并行服务器中的加锁 366
24.4.1 PCM加锁的方式 367
24.4.2 Pinging 367
24.4.3 OPS的行级加锁 368
24.4.4 影响OPS加锁的初始参数 369
24.4.5 块和PCM加锁的对应 370
24.5 应用程序设计 371
24.6 全局动态性能视图 372
24.7 小结 373
第25章 使用高级复制选项 375
25.1 复制的概念 375
25.1.1 行级和过程级的复制 376
25.1.2 复制管理账户 376
25.2 复制配置 377
25.3 分布数据的方式 378
25.3.1 解决冲突 379
25.3.2 复制数据的可用方法 379
25.3.3 初始化参数 380
25.4 复制的组成部分 380
25.5 使用复制管理软件 381
25.6 使用DBMS-JOB包 381
25.7.1 彻底升级多主地点环境 382
25.7 从Oracle7到Oracle8i复制环境的升级 382
25.7.2 为多主地点复制使用复制管理器 383
25.7.3 执行递增升级 384
25.8 主关键字快照 387
25.9 并行传送 388
25.10 小结 389
第26章 使用Oracle8i的网络功能 391
26.1 Oracle8i中的Java 392
26.1.1 使用Java数据库连接(JDBC) 393
26.1.2 Java脚本和小应用程序 395
26.1.3 使用SQLJ嵌入SQL到Java程序 395
26.1.4 Oracle的Java虚拟机 397
26.2 Java存储过程 398
26.2.1 在Oracle8i中使用Java程序 399
26.3 Oracle网络文件系统 407
26.2.2 企业版的JavaBeans和CORBA 407
26.4 小结 408
第27章 安全管理 409
27.1 使用视图来保证应用程序的安全 409
27.2 应用程序环境和细粒度访问控制 410
27.2.1 应用程序环境 410
27.2.2 使用细粒度访问控制(FGAC) 410
27.3 调用权限 412
27.4 数据库资源管理器 415
27.5 Oracle8i的网络安全特性 416
27.5.1 使用密码 416
27.6 外部认证 417
27.5.2 使用数字证书 417
27.7 企业认证 418
27.8 加密数据 419
27.9 审计 419
27.9.1 监控登录 420
27.9.2 监控数据库活动 420
27.10 监控DML活动 421
27.11 小结 422
第28章 实现备份和恢复 423
28.1 故障类型 423
28.2 选择备份策略 424
28.2.1 提高备份速率 424
28.2.2 减少备份的数据量 424
28.3 使用备用数据库 425
28.4.1 使用冷备份 427
28.4 实现冷备份和热备份 427
28.4.2 实现热备份 429
28.4.3 Archivelog和Noarchivelog模式的比较 433
28.5 数据库恢复需要考虑的事项 435
28.5.1 减少恢复的平均时间 435
28.5.2 分析故障类型与程度 435
28.6 数据库恢复:案例研究 436
28.7 小结 444
第29章Oracle企业管理器 445
29.1 Oracle企业管理器结构 445
29.1.1 第一层 446
29.1.2 中层 446
29.1.5 OEM控制台 447
29.1.4 对等协作机制 447
29.1.3 第三层 447
29.1.6 OEM数据仓库 448
29.1.7 智能代理 449
29.1.8 公共服务 450
29.1.9 应用程序接口(API) 450
29.2 综合数据库应用程序 450
29.2.1 管理OMS 451
29.2.2 使用控制台来启动和关闭数据库 452
29.2.3 管理数据库存储器 453
29.3 高级管理 454
29.3.1 Oracle协调包 454
29.3.2 Oracle诊断包 458
29.4 小结 461
30.1 Top-N分析的优化 463
第30章 应用开发 463
30.2 索引功能的增强 464
30.3 查询的重写 465
30.3.1 集合操作符 465
30.3.2 布尔运算变换 466
30.3.3 线索的使用 466
30.4 PL/SQL功能的增强 468
30.4.1 批量联编 468
30.4.2 本地动态SQL 471
30.5 ORACLE WebDB 472
30.6 在线数据重组和碎片整理 473
30.7 Oracle的媒体 473
30.7.1 多媒体和Web 474
30.7.2 可扩展的结构 475
30.8 与Windows NT的集成 477
30.8.1 Oracle的MS Visual Studio应用程序生成器 477
30.8.2 支持OLE的Oracle对象 477
30.8.3 和Microsoft Transaction Server的集成 478
30.8.4 COM Cartridge 478
30.9 小结 478
第31章 数据存储增强功能 479
31.1 多维度分析 479
31.2 ROLLUP操作 480
31.2.1 CUBE操作 482
31.2.2 过滤结果 484
31.2.3 SAMPLE操作 484
31.3 实质化的视图 485
31.4 Oracle8i提供的数据库开发包 486
31.4.1 使用DBMS_STATS PACKAGE 487
31.4.2 DBMS_STATS过程 487
31.5 Oracle8i中的并行查询功能的增强 489
31.6 小结 489
第32章Oracle8i的其他功能 491
32.1 约束 491
32.2 加强的多语言支持 492
32.3 SYS安全 492
32.4 日志挖掘器 492
32.4.1 日志挖掘器的限制 493
32.4.2 日志挖掘器数据字典视图 493
32.4.3 使用日志挖掘器进行redo日志文件分析 493
32.5 可移动的表空间 495
32.6 由本地管理的表空间 496
32.7 临时表 496
32.8 实质化的视图 497
32.9 处理数据块错误 497
32.9.1 对表的分析(Analyze table) 498
32.9.2 数据库验证(DB_VERIFY)的使用 498
32.9.3 使用DBMS_REPAIR工具包 500
32.9.4 判断错误的程度 502
32.9.5 DBMS_REPAIR工具包优缺点的评价 502
32.9.6 使对象可用 503
32.9.7 修复错误对象和重建数据 503
32.9.8 从错误数据库中挽救数据 503
32.10 小结 505