本书系统全面地介绍了Oracle 10g数据库的结构、管理和优化,内容涵盖整个10g OCP的考试范围,包括Oracle 10g数据库的体系架构、存储结构、网络服务、备份与恢复、闪回(flashback)管理、资源管理、调度管理、自动存储管理(ASM)、自动化性能监控与调优等;既着重介绍了在实际工作中需要用到的管理知识,又兼顾了OCP考试所涉及的考点。
本书编排由浅入深,既详细介绍了Oracle 10g数据库表面的行为特征(也就是“是什么”),又阐明了其行为背后的原因(也就是“为什么”)。比如undo表空间是如何提供一致性读、检查点的工作原理等。
本书内容丰富,语言通俗易懂,实用性强,便于读者学习、实践以及参加10g OCP的考试,尤其适合于初学者以及希望更进一步了解Oracle数据库的人群。本书既可作为各大中专院校相关专业和培训班的辅导教材和参考用书,也可作为数据库系统开发应用技术人员和自学者的学习和参考用书。
目 录
第1章 Oracle 10g数据库简介 1
1.1 Oracle 10g网格计算简介 1
1.2 Oracle体系结构简介 2
1.3 Oracle数据库存储简介 6
第2章 安装Oracle 10g软件及创建数据库 9
2.1 安装之前的准备 9
2.2 开始安装 11
2.3 创建数据库 15
第3章 数据字典 21
3.1 数据字典表 21
3.2 动态性能视图 23
第4章 初始化参数与实例 25
4.1 初步了解启动和关闭数据库实例 25
4.2 静态参数文件 26
4.3 动态参数文件 27
4.4 再议实例的启动和关闭 30
4.5 使用EM管理实例 32
第5章 内存组件与Oracle进程 36
5.1 用户与Oracle数据库服务器建立连接 36
5.2 深入Shared Pool 38
5.2.1 shared pool的内存结构 39
5.2.2 library cache和dictionary cache概述 42
5.2.3 解析SQL语句的过程 44
5.2.4 设置shared pool 47
5.3 深入Log Buffer 49
5.3.1 log buffer的内存结构 51
5.3.2 log buffer的内部管理机制 52
5.3.3 log buffer的设置 54
5.4 深入Buffer Cache 55
5.4.1 Buffer Cache的内存结构 55
5.4.2 Buffer Cache的管理机制 56
5.5 其他内存池 65
5.6 自动共享内存管理 66
5.7 PGA管理 69
5.7.1 PGA的概念及其包含的内存结构 69
5.7.2 PGA自动管理 71
第6章 存储管理 74
6.1 表空间 74
6.1.1 表空间的空间管理 75
6.1.2 创建和管理表空间 78
6.1.3 临时表空间和临时表空间组 86
6.1.4 非默认数据块大小的表空间 87
6.2 联机日志文件 88
6.2.1 日志切换 88
6.2.2 管理日志文件 90
6.3 OMF 92
6.4 数据块的结构 93
第7章 undo表空间管理 95
7.1 DML语句与undo 95
7.2 undo的作用 96
7.3 配置AUM 98
7.4 管理undo表空间 101
第8章 用户、权限和角色管理 103
8.1 用户管理 103
8.1.1 创建和删除用户 104
8.1.2 Profile与用户管理 109
8.2 权限管理 112
8.2.1 系统权限 112
8.2.2 对象权限 114
8.3 角色管理 116
第9章 对象管理 119
9.1 表 119
9.1.1 创建普通表 120
9.1.2 管理普通表 124
9.1.3 约束(constraint) 132
9.1.4 使用分区表、索引组织表、簇表 136
9.2 索引 143
9.2.1 B树索引 143
9.2.2 位图(bitmap)索引 148
9.2.3 管理索引 149
9.3 其他对象 151
9.4 可恢复的空间分配(Resumable Space Allocation) 153
第10章 闩锁、锁定和并发性 157
10.1 闩锁(latch)概述 157
10.2 锁定(lock)概述 159
10.3 DML事务锁定的机制 160
10.3.1 行级锁(TX锁) 161
10.3.2 表级锁(TM锁) 161
10.4 解决DML事务锁定的冲突 163
10.4.1 锁定相关视图 163
10.4.2 检测并解决冲突 164
10.4.3 死锁 169
10.5 DDL锁定 170
10.6 创建自己的锁定 173
第11章 配置网络环境 177
11.1 用户与Oracle数据库服务器建立连接 177
11.2 配置监听器 178
11.3 配置客户端 183
11.4 配置共享连接 185
11.5 调用外部过程 188
第12章 手工管理的备份和恢复 191
12.1 备份 191
12.1.1 冷备份 192
12.1.2 热备份 193
12.2 介质恢复 199
12.2.1 完全恢复 202
12.2.2 不完全恢复 208
12.2.3 基于时间点的不完全恢复 211
12.2.4 丢失所有控制文件时的恢复 215
第13章 RMAN管理的备份和恢复 224
13.1 配置RMAN 225
13.1.1 RMAN的体系结构 225
13.1.2 快速闪回区(Flash Recovery Area) 227
13.1.3 使用Configure命令配置RMAN 229
13.2 使用RMAN完成备份 235
13.2.1 备份数据文件 235
13.2.2 备份归档日志文件和控制文件 239
13.2.3 增量备份 240
13.2.4 显示备份信息 244
13.3 使用RMAN进行恢复 248
13.3.1 完全恢复 248
13.3.2 不完全恢复 253
13.4 配置恢复目录 255
第14章 闪回 259
14.1 闪回数据库(flashback database) 260
14.2 闪回删除(flashback drop) 264
14.3 闪回表(flashback table) 267
14.4 闪回版本查询(flashback version query) 268
14.5 闪回事务查询(flashback transaction query) 269
14.6 闪回查询(flashback query) 270
第15章 自动化管理 272
15.1 自动化管理概述 272
15.2 AWR体系结构 274
15.2.1 AWR体系概述 274
15.2.2 告警信息和指标 277
15.2.3 基准线 281
15.3 管理AWR及生成AWR报表 286
15.4 ASH体系结构 295
15.5 访问ASH 297
15.5.1 转储方式访问ASH 297
15.5.2 使用SQL语句访问ASH 298
15.5.3 创建ASH报表方式访问ASH 300
15.5.4 通过Database Control的诊断页面访问ASH数据 302
15.6 ADDM 303
15.7 顾问(Advisor) 307
15.7.1 使用内存顾问 308
15.7.2 使用恢复(MTTR)顾问 310
15.7.3 使用SQL Tuning Advisor(STA) 310
15.7.4 使用SQL Access Advisor(SAA) 318
第16章 ASM管理 322
16.1 ASM的概念 322
16.2 创建ASM实例 324
16.3 管理ASM磁盘组 329
16.4 管理ASM文件 336
16.5 迁移到ASM 340
16.6 ASMCMD工具 341
第17章 资源管理 344
17.1 资源管理器的概念 344
17.2 资源管理器的使用 345
17.2.1 创建资源用户组 347
17.2.2 创建资源计划 349
第18章 调度管理 359
18.1 基于时间的调度任务 359
18.2 基于事件的调度任务 363
18.3 调度任务的高级选项 367
18.3.1 使用job class 367
18.3.2 使用window 368
第19章 数据迁移 374
19.1 导出导入 374
19.2 可传输表空间 377
19.3 数据泵(Data Pump) 383
19.3.1 导出数据泵(expdp) 384
19.3.2 导入数据泵(impdp) 389
19.4 外部表 391
19.5 可传输数据库 393
第20章 安全 397
20.1 审计 397
20.1.1 强制审计 397
20.1.2 标准数据库审计 399
20.1.3 基于值的审计 407
20.1.4 精细化审计(Fine-Grained Auditing) 407
20.1.5 对DBA的审计 412
20.2 虚拟专用数据库(VPD) 412
20.2.1 基于行的VPD 413
20.2.2 基于列的VPD 417
20.3 透明数据加密(TDE) 419
20.4 对备份进行加密 422
20.4.1 透明加密模式 422
20.4.2 基于密码的加密模式 423
20.4.3 混合加密模式 423
第21章 全球化支持 425
21.1 字符集 425
21.2 数据库字符集 426
21.3 客户端字符集 428
21.4 客户端字符集与服务器端字符集的转换 430
21.5 语义排序 432
只要从事过数据库相关领域工作的专业人员,应该都知道Oracle公司的数据库产品是业界的主流产品。而同时Oracle数据库也是一个非常复杂的数据库管理产品,其发展历经三十余载,Oracle数据库的在线帮助文档就达一万页以上。显然,这上万页的文档并不都会对我们的工作有所帮助。
那么如何有效、快速地从这上万页的文档中抽取出对我们日常工作最有帮助的知识内容呢?这正是本书的出发点。
本书内容
本书在作者多年的项目实践经验和培训授课经验的基础上,在Oracle数据库的相关知识中,提取了与日常工作结合最紧密的部分,同时结合10g OCP的考试知识点,对Oracle 10g数据库的方方面面进行了详细的介绍。
本书不但详细介绍了与Oracle数据库相关的概念,同时阐述了其概念背后的原理,还提供了详细的操作步骤,可供读者根据书中的案例,逐步自行操作实践并加以确认。通过阅读本书,读者将会对Oracle 10g数据库的整体形成一个总的概念,包括数据库的体系结构、数据库的管理等。在掌握了这些知识以后,就可以根据自己的兴趣爱好,对Oracle数据库的其他方面自行展开更加深入的研究了,比如配置和管理RAC、Data Guard以及Stream等。
尽管本书立足于Oracle 10g版本,但是其中很大一部分内容都适用于Oracle 9i版本。 凡是Oracle 9i没有而Oracle 10g新增加的功能,在书中都会特别指出。
读者对象
本书假定读者不熟悉Oracle 10g数据库,是一个还在Oracle数据库门外徘徊或者刚入门的新手,而且希望在较深程度上掌握其功能;或者读者对Oracle 9i有所了解但对Oracle 10g不了解,希望能够较深入地了解Oracle 10g的一些新功能;或者已经使用过Oracle数据库,但对其中的工作原理不甚了解,而希望从其本质上对数据库的工作原理有所了解。不管您属于何种情况,都将从本书中受益。本书也非常适用于作为各大中专院校相关专业的培训教材、教学辅导和参考用书。
为了更好地理解本书的内容,要求读者最好能够具备以下知识:
1)基本的SQL语句,了解select、insert、delete、update这四种SQL语句最基本的写法;
2)基本的Linux操作命令。由于本书中数据库安装在Linux操作系统中,因此会牵涉到一些很简单的Linux命令,比如cd、cp、mv、pwd、ls等。当然,您也可以在遇到不了解的Linux命令时,查阅相关的命令手册。
本书结构
本书共分为21章,其格式和风格基本上都是一致的。
1)各个章节的排列顺序依照循序渐进的原则,后面章节中可能会出现前面章节所描述的概念,因此,建议读者按照章节的先后顺序进行阅读。
2)每章的开头内容除了是本章内容的简单说明以外,还列举出在学完本章以后,读者所能掌握的知识点。读者可以在阅读完毕以后,查看这些知识点,检查自己是否已经熟练掌握它们了。
3)对于每一章来说,其内容也遵循由浅入深的原则。其描述顺序基本都是先描述现象,再阐述本质,最后用实例来证明其本质。
下面针对各个章节进行简单的说明。
第1章:对Oracle 10g数据库做一个整体介绍,对数据库整个体系架构和存储架构做了一个简单的阐述。
第2章:如何安装Oracle 10g数据库软件(包括安装前的配置和准备工作)以及如何创建数据库。
第3章:什么是数据字典以及它的重要作用。
第4章:对初始化参数文件(包括pfile和spfile)的管理。
第5章:在Oracle数据库的体系架构中有关实例部分的工作原理,深入地探讨了各个内存组件和后台进程是如何协作完成工作的。
第6章:在Oracle数据库的体系架构中有关物理存储部分的内容,包括表空间、数据文件以及联机日志文件的管理。
第7章:undo表空间的工作原理以及对它的管理。
第8章:对用户、权限和角色管理,包括各种认证方式以及profile的管理。
第9章:如何在Oracle数据库中管理表、索引等各种对象,比如创建表、收缩表、转移表等。
第10章:闩锁(latch)、锁定(lock)的使用,以及如何解决锁定冲突等问题。
第11章:在Oracle数据库中网络服务的概念,以及如何配置网络环境。
第12章:有关Oracle数据库备份恢复的原理,比如检查点SCN号在其中所起到的作用等;并着重介绍了在各种情况下,如何进行手工备份和恢复。
第13章:什么是RMAN,以及在各种情况下,如何使用RMAN进行备份和恢复。
第14章:在Oracle 10g数据库中所引入的闪回体系,包括闪回数据库、闪回删除、闪回表等功能。
第15章:详细介绍了Oracle 10g中新引入的自动化管理功能,包括整个自动化管理体系、如何生成自动化报表和自动化诊断功能,以及如何使用各种顾问来帮助我们更好地管理数据库的性能问题。
第16章:如何使用Oracle 10g新推出的自动存储管理(ASM)功能。
第17章:如何使用资源管理器对数据库的整个资源进行管理和控制。
第18章:如何使用调度管理器来规划任务。
第19章:集中讨论了在Oracle 10g数据库中转移数据的各种方法,包括数据泵、导出导入工具、外部表、可传输表空间以及可传输数据库等。
第20章:集中讨论了有关数据库安全方面的问题,包括如何设置审计、如何使用VPD、如何使用TDE、如何对备份文件进行加密等。
第21章:在Oracle数据库中,对于全球化特性的支持。
本书约定
1)对于Oracle数据库产品来说,出现过很多版本,从Oracle 8i、Oracle 9i到Oracle 10g。而且在2007年7月,Oracle公司已经正式发布了Oracle 11g版本的数据库。但目前该版本还没有大规模的广泛应用。应该说,Oracle 9i和Oracle 10g是目前主流的数据库版本。本书在提到Oracle 9i时,都是针对Oracle 9.2.0以后的版本,而在提到Oracle 10g时,则都是指Oracle 10.2.0以后的版本。
2)书中为了简便,在不影响读者阅读的基础上采用了简称,比如9i表示Oracle 9i,10g则表示Oracle 10g。
3)在本书中的有关Oracle数据库的案例中,如无特别说明,都是在RedHat Linux 4.0操作系统上完成的。
4)本书中的插图和试验结果可能会与读者实际操作的结果不同,这主要是由于读者的试验环境(比如CPU的转速、物理内存的大小、数据库的参数配置等)的不同而引起的。在此特别说明,一切以实际情况为主。
无封面