第1部分 基本运行环境管理工作 1
第1章 Oracle 10g的安装与卸载 2
1.1 安装前的准备工作 2
1.1.1 常见的应用结构 2
1.1.2 安装准备工作及注意事项 5
1.1.3 安装环境举例 7
1.2 安装Oracle 10g数据库(高级安装) 9
1.3 查看和验证安装结果 20
1.3.1 程序组 20
1.3.2 文件体系结构 20
1.3.3 服务、进程 22
1.3.4 注册项 24
1.3.5 环境变量 24
1.3.6 运行管理工具程序 25
1.4 卸载Oracle 10g数据库 28
1.5 小结 31
第2章 创建和删除数据库 32
2.1 创建数据库的准则 32
2.1.1 规划数据库 32
2.1.2 检查必要条件 33
2.1.3 决定创建方式 34
2.2 使用DBCA创建数据库 34
2.3 查看、验证用DBCA创建的新数据库的结果 56
2.3.1 查看数据库文件、服务等情况 56
2.3.2 运行管理工具程序 58
2.4 使用DBCA删除数据库 61
2.5 手动删除数据库 64
2.6 小结 65
第3章 启动和关闭数据库 66
3.1 管理初始化参数文件 66
3.1.1 服务器参数文件概述 67
3.1.2 导出服务器参数文件 68
3.1.3 创建服务器参数文件 71
3.1.4 更改初始化参数 72
3.1.5 更改数据库启动时使用的参数文件模式 74
3.1.6 查看初始化参数 76
3.2 启动和关闭数据库的概念和步骤 78
3.2.1 启动数据库的概念和步骤 78
3.2.2 关闭数据库的概念和步骤 80
3.3 在SQL*Plus中启动和关闭数据库 81
3.3.1 准备启动和关闭数据库 81
3.3.2 启动模式与启动选项 82
3.3.3 在SQL*Plus中关闭数据库 86
3.3.4 转换启动模式或修改数据库的状态 89
3.4 使用Windows服务启动和关闭数据库 92
3.4.1 Oracle服务 92
3.4.2 启动服务 93
3.4.3 关闭服务 95
3.4.4 设置服务启动类型 97
3.5 在OEM中启动和关闭数据库 97
3.5.1 给操作系统用户分配适当的权限 97
3.5.2 关闭数据库 100
3.5.3 启动数据库 103
3.6 管理会话 107
3.6.1 使用ALTER SYSTEM语句管理会话 109
3.6.2 使用OEM管理会话 110
3.7 监视预警日志内容 113
3.8 小结 119
第4章 网络服务与网络管理 120
4.1 Oracle网络服务概述 120
4.1.1 网络体系结构 120
4.1.2 网络的驱动 122
4.1.3 网络的特点 123
4.1.4 网络的几个基本概念 124
4.1.5 网络配置与工具简介 130
4.2 服务器端监听程序的配置管理 132
4.2.1 配置文件listener.ora 132
4.2.2 用ONM管理监听程序 133
4.2.3 用OEM管理监听程序 136
4.2.4 启动和使用非默认监听程序 140
4.3 客户机端网络服务名的配置管理 151
4.3.1 配置文件tnsnames.ora 152
4.3.2 用ONM管理本地网络服务名 153
4.3.3 用OEM管理本地网络服务名 157
4.4 使用ONCA工具进行网络配置 162
4.4.1 监听程序配置 162
4.4.2 本地Net服务名配置 167
4.4.3 测试Net服务名 171
4.4.4 命名方法配置 173
4.5 主机命名方法的配置与使用 175
4.5.1 基本过程 175
4.5.2 配置使用同一台主机上的多个数据库 180
4.6 轻松连接命名方法的配置与使用 181
4.7 小结 183
第2部分 Oracle 10g体系结构与存储管理 185
第5章 Oracle 10g体系结构概述 186
5.1 数据库的三级模式、二级映像结构 186
5.1.1 三级模式 186
5.1.2 二级映像 188
5.2 数据库系统的组建与数据查询过程 189
5.3 存储结构 190
5.3.1 逻辑存储结构 191
5.3.2 物理存储结构 199
5.4 软件结构 203
5.4.1 软件结构 203
5.4.2 内存结构 203
5.4.3 进程结构 211
5.4.4 后台进程 214
5.5 数据字典 221
5.5.1 数据字典的概念 221
5.5.2 数据字典的组成 222
5.5.3 数据字典的使用 227
5.5.4 动态性能表和动态性能视图 232
5.5.5 查询数据字典视图的信息 234
5.6 在OEM中查询内存参数与数据字典视图 235
5.6.1 查询内存参数 235
5.6.2 查询数据字典视图 235
5.7 数据库服务的工作过程与原理 238
5.7.1 连接到数据库服务 238
5.7.2 执行SQL语句 239
5.8 小结 241
第6章 管理控制文件 243
6.1 控制文件概述 243
6.2 管理控制文件的准则 244
6.2.1 提供控制文件的文件名 244
6.2.2 多路复用控制文件 245
6.2.3 适当放置控制文件 250
6.3 管理控制文件的大小 251
6.4 备份控制文件 252
6.4.1 将控制文件备份为二进制文件 253
6.4.2 将控制文件备份为文本文件 253
6.5 创建控制文件 258
6.5.1 创建初始控制文件 258
6.5.2 创建新的控制文件 259
6.6 删除控制文件 270
6.7 移动控制文件 271
6.8 查询控制文件信息 273
6.9 在OEM中管理控制文件 274
6.10 小结 277
第7章 管理表空间 278
7.1 表空间概述 278
7.1.1 表空间的特性与作用 278
7.1.2 表空间的类型 280
7.1.3 表空间的区、段管理方式 283
7.1.4 表空间的状态 287
7.2 管理表空间的准则 288
7.2.1 确定表空间的大小 289
7.2.2 表空间的配置 293
7.2.3 为用户设置表空间配额和临时表空间 295
7.3 创建表空间 295
7.3.1 创建(永久)表空间 297
7.3.2 创建大文件表空间 301
7.3.3 创建临时表空间 301
7.3.4 创建撤销表空间 302
7.4 修改表空间 304
7.4.1 扩展表空间 304
7.4.2 修改属性、状态 305
7.5 删除表空间 312
7.6 查询表空间信息 314
7.6.1 查询表空间的基本信息 315
7.6.2 查询表空间及其默认存储参数 315
7.6.3 查询表空间中数据文件的信息 316
7.6.4 统计每个表空间的空闲空间(盘区)信息 317
7.6.5 查询表空间的空闲空间大小 317
7.6.6 查询临时表空间组的信息 318
7.6.7 查询临时表空间的临时文件信息 318
7.7 在OEM中管理表空间 318
7.7.1 创建(永久)表空间 318
7.7.2 创建临时表空间组 322
7.7.3 扩展表空间 326
7.7.4 修改表空间的属性、状态 328
7.7.5 删除表空间 333
7.8 小结 335
第8章 管理数据文件 336
8.1 数据文件概述 336
8.2 管理数据文件的准则 337
8.2.1 确定数据文件的数量和大小 338
8.2.2 合理地放置数据文件 338
8.3 创建数据文件 339
8.3.1 在创建表空间时创建数据文件 339
8.3.2 向表空间添加数据文件 340
8.3.3 查询新创建的数据文件的信息 341
8.4 改变数据文件的大小 342
8.4.1 数据文件的空间大小及其局限性 342
8.4.2 设置数据文件为自动扩展 344
8.4.3 手动改变数据文件的大小 345
8.5 在ARCHIVELOG模式中修改数据文件的可用性 347
8.5.1 将数据库设置成ARCHIVELOG模式 347
8.5.2 修改数据文件的可用性 348
8.6 移动数据文件 351
8.6.1 在OPEN状态下移动数据文件 351
8.6.2 在MOUNT状态下移动数据文件 354
8.6.3 将只读表空间中的数据文件移动到只读介质上 356
8.7 删除数据文件 357
8.7.1 删除表空间中的所有数据文件 357
8.7.2 只删除一个数据文件 358
8.8 查询数据文件信息 360
8.8.1 查询数据文件的信息 360
8.8.2 查询临时文件的信息 363
8.8.3 查询数据文件的使用信息 364
8.8.4 查询数据文件的读写信息 364
8.9 在OEM中管理数据文件 365
8.9.1 创建数据文件 365
8.9.2 向表空间添加数据文件 368
8.9.3 修改表空间中所有数据文件的可用性 371
8.10 小结 374
第9章 管理重做日志文件 375
9.1 重做日志文件概述 375
9.1.1 重做日志文件的作用与目的 375
9.1.2 重做记录 376
9.1.3 系统更改编号SCN 377
9.1.4 如何写入重做日志文件 378
9.1.5 重做日志文件的归档 381
9.2 管理重做日志文件的准则 382
9.2.1 多路复用重做日志文件 382
9.2.2 合理放置重做日志文件 383
9.2.3 合理设置重做日志文件组、文件的数量大小 384
9.3 添加重做日志文件组及其成员 386
9.3.1 添加重做日志文件组 386
9.3.2 添加重做日志文件组的成员 387
9.4 删除重做日志文件组及其成员 389
9.4.1 删除重做日志文件组 389
9.4.2 删除重做日志文件组的成员 391
9.5 清除重做日志文件组 393
9.6 移动重做日志文件 396
9.6.1 在OPEN状态下移动重做日志文件 396
9.6.2 在MOUNT状态下移动重做日志文件 398
9.7 查询重做日志文件信息 402
9.8 在OEM中管理重做日志文件 404
9.8.1 添加重做日志文件组 404
9.8.2 添加重做日志文件组的成员 406
9.8.3 删除重做日志文件组的成员 409
9.8.4 移动重做日志文件组的成员 411
9.8.5 删除重做日志文件组 414
9.9 小结 416
第10章 使用LogMiner分析重做日志文件 417
10.1 LogMiner概述 417
10.1.1 分析重做日志文件的价值 417
10.1.2 LogMiner及其功能 418
10.2 提取LogMiner使用的数据字典 419
10.3 指定LogMiner要分析的重做日志文件 422
10.4 启动LogMiner会话 424
10.5 查看使用分析结果 426
10.5.1 执行案例操作 426
10.5.2 分析重做日志文件并查看结果 428
10.6 结束LogMiner会话 434
10.7 小结 434
第11章 管理归档日志文件 435
11.1 归档与归档模式 435
11.1.1 NOARCHIVELOG模式 436
11.1.2 ARCHIVELOG模式 437
11.2 归档参数 440
11.2.1 归档目标位置参数 440
11.2.2 归档日志文件命名规则参数 442
11.2.3 启用或禁用自动归档功能的参数 442
11.2.4 ARCn后台进程的最大个数参数 444
11.2.5 最小成功归档的目标数量参数与归档目标参数的选项 445
11.2.6 启用或禁用归档目标位置的参数 448
11.2.7 归档进程的跟踪级别参数 448
11.3 改变数据库的归档模式 449
11.3.1 改变成ARCHIVELOG模式 450
11.3.2 改变成NOARCHIVELOG模式 451
11.4 一个归档的案例与分析归档日志文件 452
11.4.1 在初始化参数文件中编辑归档参数 452
11.4.2 将数据库改变成ARCHIVELOG模式 453
11.4.3 操作数据库并手动归档 454
11.4.4 分析归档日志文件 455
11.5 查询有关归档的信息 456
11.5.1 使用ARCHIVE LOG LIST命令 456
11.5.2 使用数据字典视图 457
11.6 在OEM中管理归档 459
11.6.1 查看归档日志文件的信息 459
11.6.2 查看和改变归档目标位置的信息 460
11.6.3 将数据库改变成ARCHIVELOG模式 465
11.7 小结 471
第12章 管理撤销表空间 472
12.1 撤销的概念、目的与作用 472
12.1.1 撤销的概念 472
12.1.2 事务的回退 474
12.1.3 读一致性 476
12.1.4 闪回查询 476
12.1.5 事务的恢复 478
12.2 撤销参数 479
12.2.1 UNDO_MANAGEMENT参数 480
12.2.2 UNDO_TABLESPACE参数 480
12.2.3 UNDO_RETENTION参数 483
12.3 有关撤销的解决方案 486
12.3.1 确定撤销表空间的大小 486
12.3.2 关于管理撤销问题的方法与忠告 489
12.4 管理撤销表空间 489
12.4.1 创建撤销表空间 490
12.4.2 修改撤销表空间 491
12.4.3 更改撤销表空间 492
12.4.4 删除撤销表空间 494
12.5 在OEM中管理撤销表空间 494
12.5.1 创建撤销表空间 494
12.5.2 修改撤销表空间 498
12.5.3 更改撤销表空间 500
12.6 查询与监控有关撤销的信息 502
12.6.1 撤销表空间及其数据文件的信息 505
12.6.2 撤销段的统计信息 505
12.6.3 最近的撤销信息 506
12.6.4 撤销表空间的使用高峰时间 507
12.6.5 执行时间最长的查询 507
12.6.6 活动事务使用的撤销段及其区 508
12.6.7 在OEM中查看撤销空间的使用情况 509
12.7 小结 511
第3部分 数据库安全与审计管理 513
第13章 管理权限 514
13.1 权限概述 514
13.1.1 权限的分类与管理 514
13.1.2 系统权限的控制作用举例 516
13.1.3 对象权限的控制作用举例 516
13.2 系统权限的分类 518
13.3 对象权限的分类 522
13.4 系统权限与对数据字典基础表的保护 524
13.5 授予、回收权限 525
13.5.1 授予系统权限 526
13.5.2 查询系统权限 529
12.5.3 回收系统权限 531
13.5.4 在OEM中管理系统权限 532
13.5.5 授予对象权限 535
13.5.6 查询对象权限 540
13.5.7 回收对象权限 544
13.5.8 在OEM中管理对象权限 546
13.6 精细访问控制 548
13.6.1 虚拟专用数据库 548
13.6.2 精细访问控制的实现 550
13.6.3 安全策略的管理 557
13.7 小结 558
第14章 管理角色 560
14.1 角色概述 560
14.2 一个利用角色进行权限管理的案例 561
14.3 预定义角色 564
14.4 管理自定义角色 568
14.4.1 创建角色 568
14.4.2 角色的权限管理 569
14.4.3 更改角色 571
14.4.4 用户的角色管理 572
14.4.5 启用与禁用角色 577
14.4.6 删除角色 578
14.4.7 查询角色信息 578
14.4.8 在OEM中管理角色 581
14.5 PL/SQL过程与权限、角色的关系 587
14.5.1 使用定义者权限还是使用调用者权限 587
14.5.2 需要使用直接授予的权限 589
14.6 使用OS角色 591
14.6.1 在操作系统中创建用户 591
14.6.2 修改初始化参数 592
14.6.3 创建数据库角色(OS角色)并授权 593
14.6.4 在操作系统中按权限或角色创建组 594
14.6.5 为操作系统用户分配操作系统组 596
14.6.6 使用OS角色操作数据库 598
14.7 小结 600
第15章 管理概要文件 602
15.1 概要文件概述 602
15.1.1 概要文件及其意义 602
15.1.2 默认概要文件 603
15.1.3 资源限制参数 604
15.2 管理概要文件 607
15.2.1 创建概要文件 607
15.2.2 更改概要文件 608
15.2.3 分配概要文件 610
15.2.4 删除概要文件 611
15.2.5 启用和禁用内核资源限制 611
15.3 使用概要文件管理口令 612
15.3.1 登录失败与账户锁定 612
15.3.2 口令的有效期 613
15.3.3 口令的历史记录 615
15.3.4 口令的复杂性 617
15.4 使用概要文件管理内核资源 622
15.4.1 限制会话内核资源 622
15.4.2 限制语句调用级内核资源 626
15.5 查询概要文件信息 627
15.5.1 查询现有的概要文件及其参数值 627
15.5.2 查询用户所使用的概要文件及其参数值 627
15.5.3 查询组合限制(服务单元)的加权值 628
15.6 在OEM中管理概要文件 629
15.6.1 查看、编辑概要文件 629
15.6.2 生成概要文件的DDL语句 632
15.6.3 创建概要文件 633
15.6.4 更改概要文件 636
15.7 小结 637
第16章 管理用户 639
16.1 安全与用户概述 639
16.1.1 数据库的安全 639
16.1.2 数据库用户的分类及其职责 640
16.1.3 预定义的用户 642
16.1.4 用户的方案 643
16.2 数据库的管理账户与权限 644
16.3 创建用户 645
16.4 更改用户 647
16.5 删除用户 648
16.6 管理用户 649
16.6.1 验证方式 649
16.6.2 权限与角色 654
16.6.3 默认表空间 654
16.6.4 临时表空间 656
16.6.5 表空间配额 657
16.6.6 资源限制与概要文件 658
16.6.7 账户状态 659
16.7 遵守Oracle的许可证协议 660
16.7.1 并发会话数许可证 661
16.7.2 命名用户数许可证 661
16.7.3 设置Oracle的许可证协议 661
16.8 查询用户的信息 664
16.8.1 查询用户的账户信息 665
16.8.2 查询用户所使用的表空间及其配额 665
16.8.3 查询用户的角色与权限 666
16.8.4 查询当前登录的用户 667
16.8.5 查询特权用户 667
16.8.6 查询当前用户所创建的表及其所在的表空间 667
16.9 在OEM中管理用户 668
16.9.1 创建用户 668
16.9.2 更改用户的表空间配额 671
16.9.3 账户解锁和口令重设 673
16.9.4 授予角色和权限 676
16.9.5 生成DDL 679
16.9.6 删除用户 679
16.10 小结 682
第1 7章 数据库审计管理 683
17.1 审计概述 683
17.1.1 什么是审计及其作用 683
17.1.2 审计的分类 684
17.1.3 审计的策略 684
17.2 与审计有关的表和数据字典视图 687
17.3 特权用户的审计 689
17.4 普通用户的数据库审计 692
17.4.1 数据库审计的步骤 692
17.4.2 启用与禁用数据库审计 693
17.4.3 语句审计 694
17.4.4 权限审计 698
17.4.5 对象审计 700
17.5 管理审计表 704
17.5.1 对AUD$表的操作进行审计 704
17.5.2 控制审计跟踪表的大小 705
17.5.3 归档与删除审计记录 705
17.6 使用PL/SQL包进行精细对象审计 709
17.6.1 创建FGA策略 710
17.6.2 查看数据库中的FGA策略 711
17.6.3 禁用与启用FGA策略 712
17.6.4 执行与FGA策略相关的SQL操作 712
17.6.5 查看FGA策略的审计记录 713
17.6.6 删除FGA策略及其审计记录 714
17.7 使用触发器进行应用审计 714
17.7.1 创建自定义的审计表及其主键所需的序列 714
17.7.2 创建DML触发器 715
17.7.3 测试应用审计的结果 716
17.8 小结 717
第4部分 闪回技术与事务管理 719
第18章 闪回技术 720
18.1 闪回技术概述 720
18.1.1 闪回技术的特征 720
18.1.2 闪回和撤销段 722
18.1.3 回收站 723
18.1.4 闪回日志、闪回恢复区、闪回保留目标时间 724
18.1.5 与闪回相关的表和视图 726
18.1.6 支持闪回技术的PL/SQL包DBMS_FLASHBACK 728
18.2 闪回查询 729
18.3 闪回表 732
18.3.1 创建闪回表的测试环境 733
18.3.2 在SQL*Plus中闪回表 734
18.3.3 在OEM中闪回表 736
18.4 闪回删除 740
18.4.1 在SQL*Plus中闪回删除 741
18.4.2 在OEM中闪回删除 744
18.4.3 在闪回删除中的注意事项 747
18.5 闪回版本查询 750
18.5.1 在SQL*Plus中闪回版本查询 750
18.5.2 在OEM中闪回版本查询 753
18.6 闪回事务查询 756
18.6.1 在SQL*Plus中闪回事务查询 757
18.6.2 在OEM中闪回事务查询 758
18.7 闪回数据库 759
18.7.1 配置具有闪回数据库功能的数据库 760
18.7.2 执行闪回数据库 761
18.8 小结 764
第19章 事务的概念与数据库的恢复原理 765
19.1 事务与事务处理 765
19.1.1 事务的定义与例子 765
19.1.2 事务处理 766
19.2 事务控制的基本语句及功能 767
19.2.1 事务的开始与结束 768
19.2.2 提交事务 769
19.2.3 回退全部事务 770
19.2.4 设置保存点 771
19.2.5 回退部分事务 772
19.2.6 设置事务的属性 772
19.2.7 设置可延迟约束的检验时机 775
19.3 事务的状态与性质 778
19.3.1 原子性 778
19.3.2 一致性 779
19.3.3 隔离性 781
19.3.4 持久性 783
19.4 事务处理的设计 783
19.4.1 选择提交的次数 784
19.4.2 安排逻辑单位与提交的位置 784
19.4.3 选择隔离等级 786
19.4.4 在PL/SQL中使用事务与事务控制 786
19.5 事务与数据库恢复的原理 787
19.5.1 数据库恢复概述 788
19.5.2 数据冗余的实现技术 788
19.5.3 故障的种类与恢复策略 790
19.5.4 具有检查点的数据库的恢复技术 792
19.5.5 Oracle数据库的备份与恢复的基本概念 793
19.6 小结 795
第20章 事务的并发控制技术 797
20.1 并发控制的概念 797
20.1.1 并发访问带来的问题 797
20.1.2 锁、锁定与锁定协议 799
20.1.3 活锁与死锁 802
20.1.4 锁定的粒度与意向锁 804
20.2 Oracle中的锁 806
20.2.1 锁的分类 806
20.2.2 锁的级别或类型 811
20.2.3 锁的几个特点 814
20.3 查询锁的信息 817
20.3.1 通过数据字典视图查询锁的信息 818
20.3.2 通过OEM查询锁的信息 822
20.4 检测与解决锁争用 823
20.4.1 死锁现象及其解决 824
20.4.2 通过SQL*Plus检测与解决锁争用 826
20.4.3 通过OEM检测与解决锁争用 827
20.4.4 解决锁争用的策略与方法 830
20.5 LOCK TABLE语句与DML锁的模式的相容规则论证 831
20.5.1 SHARE(S)锁模式 831
20.5.2 ROW SHARE(RS)锁模式 831
20.5.3 ROW EXCLUSIVE(RX)锁模式 833
20.5.4 SHARE ROW EXCLUSIVE(SRX)锁模式 834
20.5.5 EXCLUSIVE(X)锁模式 835
20.6 SELECT…FOR UPDATE语句与锁 836
20.7 小结 837
附录A 词汇与术语表 839