ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 转载10gocp翻译

转载10gocp翻译

原创 Linux操作系统 作者:yyp2009 时间:2008-11-23 16:14:13 0 删除 编辑

请尊重作者劳动,不要擅自传播,谢谢.

第一部分
oracle10g数据库管理I测试
第一章     oracle的基本概念
第二章     oracle10g数据库安装
第三章     创建一个oracle数据库
第四章     连接到oracle数据库
第五章     管理oracle进程
第六章     管理oracle存储结构
第七章     管理用户
第八章     管理数据库对象
第九章     管理数据库中的数据
第十章     使用PL/SQL进行oracle编程
第十一章   数据库安全
第十二章   数据库网络配置
第十三章   管理共享服务
第十四章   管理数据库性能
第十五章   数据库监控
第十六章   管理回滚数据
第十七章   锁的处理
第十八章   设置备份与恢复
第十九章   数据库备份
第二十章   数据库恢复
第二十一章 全局化数据库管理

第一章 oracle基本概念
在这一章你将学习到
*什么是数据库,以及什么使得数据库关系化
*什么是SQL
*oracle10g支持哪些数据库对象
*DBA是做什么
*oracle数据库是如何适配到oracle产品线中的

有些人说最适合开始的地方是站在起点上.拿oracle来说的话,那就意味着你要去理解关系型数据库管理系统(rdbms)概念的由来,以及在日常生活中和计算机领域里数据库的含义.即使以上提到的这些不会直接出现在测试中,但它们仍被认为是必备的知识,所以,快速通读它们是个好主意.

数据库和关系型数据库的介绍
尽管它们的形态可能不是那么容易确认,数据库总是以各种形式存在于我们的生活中.自从有需要被存储的数据产生开始,存储这些数据的方法也就应运而生了.
在大多数简单形式下,数据库就是一种存储数据的技术.这些数据可以是逻辑的,例如在计算机程序中存储的那些数据,也可以是物理的,例如一个文件或者一张支票.可能你的周围到处都是数据库,而你只是看不到它们而已.举个例子来说,那个你用来存放需要交给会计的税票的鞋盒就是一个你的年度开支数据库.当你打开一个文件柜取出一个文件夹,你就是在访问一个数据库.你打开的这个文件夹里的内容就是你的数据(比如你的信用卡状态,你的银行状态,发票,订购单,等等).这个文件柜和它的抽屉就是你的存储设备.
在计算机出现之前,所有的数据存储结构都有着可以被轻易确认的物理形式.计算机技术的引入轻易的将看得见摸得着的数据转化为了由0和1构成的二进制信号.你在计算机显示器上显示的那些费用报表信息和那些难以复制的纸质费用表单在重要程度上有什么不同吗?也许他们显示的形式有所不同,但是原理上是一样的,谁付了钱,付了多少钱,交了多少税,费用的用途,等等.
在观察了数据库,以及它典型的基本结构之后,可以得出以下几点:
*数据库存储数据.存储设备可以是物理形式的,比如文件柜或者鞋盒.
*数据由一些彼此联系的逻辑信息单元组成.举例来说,一个家族数据库存储了家族成员之间的关系信息(父母,孩子,等等).
*数据库管理系统(dbms)提供了一种恢复,增加,修改,以及删除数据的方法.这可以是一列编排了索引的文件柜,你可以轻松的找到和修改你需要的数据,或者是一个有着相同功能的计算机程序.
随着数据用计算机从物理形式向逻辑形式的转换,演化出了各种管理数据的系统的理论版本.在过去的50年里比较常见的一些数据库管理系统有阶层式数据库,网络数据库和关系型数据库.oracle是一种关系型数据库管理系统(rdbms).

关系型数据库模型
IBM的研究员E.F.Codd博士在1970年6月的ACM交流-计算机体系结构旅行团杂志上发表的名为"大型数据共享银行系统的关系型数据模型"的论文中提出了关系型数据库管理系统的模型.这时,由于它所定义的包含关联数据的表不需要知道关联信息的物理存储位置,使得它从原有的概念中彻底独立出来.不同于现有的数据库模型,比如利用记录的物理位置来将两份数据的信息联系起来阶层式数据库和网络数据库,而依照关系型数据库模型,表中的数据只需要知道其他表的表名和与它关联的数据就可以完成关联,不必保持跟踪其他表中关联信息的物理存储位置.
(注:E.F.Codd博士的"大型数据共享银行系统的关系型数据模型"原文: www.acm.org/classics/nov95/toc.html )
关系型数据库模型把所有的数据打散成为存储实际数据的对象或者关系的集合(例如:表).它还介绍了一些在关联对象上用来产生其他对象的操作(例如:按条件合并以产生新的结果集).最后,这个模型提出必须存在一种结构来确保数据的完整性,所以数据必须是一致和精确的(例如:约束).Codd提出了12条规则来为设计者确认数据库管理系统是否适配关系型数据库的要求.尽管如今没有数据库适配全部的这12条规则(因为如果这么做的话数据库将运行的非常缓慢,理论往往不能和实际完全符合),但它仍被广泛的接受以至所有的关系型数据库管理系统都遵从了其中的绝大部分.
关系型数据库的理论基础在于数据是由关系的集合构成的,这些关系的贯彻为2个空间的由行和列组成的表构建了1-1的模型.在以下的例子中,顾客表存储了我们处理的客户信息-客户ID,公司名,地址,等等.定单表存储了客户定单的信息(不是定单线物品-它们在另外一张表中),包括定单数据,支付方案,定单日期,以及出货日期.在两张表中都有出现的客户ID这一列为这两张表提供了关联并且是它们关系的源.这两张表本身都被存储在计算机上的数据库中.我们不需要知道这两张表的物理位置,知道它们的名字就可以了.
由于数据库是关系型的,并且用户查询数据的时候也不需要知道它们的物理存储位置,表必须将每一行唯一的标识出来.用来唯一的标识行的列或者列的集合被称为主键.理论上来说关系型数据库中的每一个表都必须有一个主键.这就意味着你可以肯定特定的值在表中只会出现一次,在1-1的模型中,客户表中的客户ID列就是它的主键,这一列保证了每一个客户ID只会在表中出现一次.在定单表中,定单ID是它的主键.
在把表关联起来的时候(整个关系型数据库),一个表中的主键值可以被存放在其他表中,后表中存放前表主键值的列被称做外键.外键中的值必须在它所依赖的表的主键中保持存在,否则这个关系就将被破坏.在1-1的模型中,定单表中的客户ID列是客户表的客户ID列的外键.为了使它们的关系有效,任何一个在定单表中的客户ID列出现的值必须已经存在于客户表的客户ID列中.也就是说,为了使客户可以发出一个定单,我们需要知道一些这个客户的基本信息.如果我们不知道这些信息,客户也就无法发出定单,oracle通过数据库约束来强制保持主外键关系.

SQL:结构化查询语言
关系型数据库管理系统管理着所有的关系型数据库的关系.就象我在前面所指出的那样,关系型数据库系统允许你操作关联的表,以及它们的内容.它提供了一种用于创建,修改,移除对象,以及增加,改变,删除数据的语言.oracle所使用这种语言叫做结构化查询语言,也就是sql,sql最初是由 E.F.Codd博士就职的IBM公司开发的,它最初被称做结构化英文查询语言,或者叫sequel.尽管名称被缩短为结构化查询语言,或者sql,但是它的发音仍然是sequel.
sql实际上是几种不同语言的结合体.每种都是为特定的应用而设计的,以下是详细的介绍:
*数据定义语言(DDL),DDL是用来创建和修改数据库对象的,它包括create,alter,drop,rename,以及truncate.如果你需要添加一张新表到数据库中,你可以使用create table命令,如果你需要删除一个索引,你可以使用drop index命令,等等.
*数据操作语言(DML),DML是用来修改数据库表中的数据的,它包括insert,update,以及delete,此外它还包括事务控制语言,包括commit,rollback,以及savepoint.用于在数据库中查询数据的select语句在技术上并不属于dml,尽管它有时侯因为处理数据检索而被包含在dml的定义中.
*数据控制语言(dcl),DCL是用来为执行数据库任务和操作数据库对象设置安全的.DCL语句包括grant和revoke.它们可以授予或者收回用户执行诸如创建表,查询数据,向某个数据库中特定的表中插入数据等操作的权限.
关系型数据库管理系统的另一个特性是不需要把它在一个表中存储的关联信息的物理地址存放在它的关联表中,就象1-1的模型中所展示的,客户表和定单表由两个表中都存在的客户ID列的数据联系起来.两个表在磁盘上的物理位置并不包含在他们之间的关联信息中.只要查询两个表的用户知道了它们的关联列,就可以写出提取符合相关查询条件(联合条件)的sql语句.即使其中的一张表被移动到存储数据库数据的其他磁盘上,关联信息依然是有效的.
关系型数据库管理系统的第三个特性是用来操作数据库的语言拥有丰富而广泛的用来操作数据库和表明不同表之间关系的操作集.sql语言允许你通过操作来确认关联表之间的数据,关联信息中失效的数据,,以及其他许多的信息.标准形式的sql语言并不包括诸如循环,逻辑条件,变量的使用等编程语言的过程元素.oracle通过包含这些元素的PL/SQL来扩展sql,这是一种私有的,用来创建存储过程,函数,触发器,以及其他子程序的语言.
部分出于以上的原因,关系型数据库管理系统流行起来.在数据库界没有什么是长期不变的,oracle作为首个可用的商业关系型数据库管理系统,已经把它的数据库能力扩展到支持对象特性.

对象关系型数据库管理系统(ORDBMS)
oracle8之前的版本都是关系型数据库管理系统;那意味着它们遵循关系型数据库模型并遵从它的要求,并经常对它们作出一些改进.在oracle8的介绍中,oracle被称做对象关系型数据库管理系统-实际上oracle10g更适合这个称号.对象关系型数据库管理系统遵从关系型数据库模型并把它扩展到支持新的19世纪80年代提出的对象关系型数据库模型.
对象关系型数据库管理系统包括以下几点新特性:
*支持用户定义的数据类型,这意味着用户可以在oracle默认的数据类型或者其他已有用户定义的数据类型基础之上定义自己的数据类型.这个特性允许数据库进行更加精确的商业对象规划并减少实施后花费在数据库维护上的时间.
*支持多媒体和其他大对象,从oracle8开始随着子版本的发布发展到10g已经对二进制大对象,即BLOB有了全面的支持.这就意味着把诸如视频,图象,或者大量的文本存放到一行中的一列里变成可能.尽管oracle早期的一些版本也有类似的特性,但缺乏完善的功能并且没有遵照对象关系型数据库标准.当前的版本在这方面有了显著改善.
*对关系型数据库概念的全面兼容,尽管oracle已经增加了针对对象的扩展,为了使它成为真正意义上的对象关系型数据库管理系统,它还需要符合关系型数据库的标准.由于oracle是关系型数据库的有力延伸,它的对象特性可以随着关系特性的改变而变化以提供健全的解决方案.
oracle允许用户自定义数据类型的特性把它划到了对象关系型数据库的范畴内.如果你想在几个表(客户,供应商,员工,等等)中为电话号码设置一个普通定义并且想让任何对它属性的更改都可以被所有使用它的表所继承,你可以按照要求定义一个叫"phonenumber"的新的数据类型并用这个数据类型来在创建表的时候对相应的列进行定义.假定区号规则改变了,那么这时你就可以修改"phonenumber"数据类型的属性,这样所有使用它的表都会继承这个改变.

数据库对象
所有的关系型数据库管理系统都需要以支持最少的数据库对象来满足关系型数据库模型的要求.但oracle支持的要比这些多的多,这一章仅仅是把这些对象罗列出来,在以后的章节中你将了解到如何创建和组合使用这些对象.
oracle的数据库对象集中不仅包括了所有关系型数据库需要的对象类型(表,视图,约束,等等)还包括了其他一些提供额外功能的对象类型(包,复合对象类型,同义词,序列,等等).表1-1给出了所有的oracle10g中出现的数据库对象:
*表:一个由行和列构成的独立的实体(例如客户,定单,员工,等等)
*列:表的实体中单独的属性.一个列有自己的列名和数据类型.一个表通常包含一个以上的列
*行:表的实体中单独的实例.在所有列上都有对应值,例如,在一个student行上包含了studentid,name,address等和这个student有关的所有信息
*细胞:细胞指的是一行中的一列.在我们的例子中customerid为10002的这一行中的companyname这一列就是一个包含着数据"bradley systems"的细胞
*约束:这是一个用来实现简单的商业规则和保证数据库完整性的对象.它包括主键约束,外键约束,唯一约束,非空约束,以及检查等
*视图:视图是一个由存储在数据库中的sql语句实现的重现来自一个或多个表中数据的逻辑映射.视图实际上是通过在数据库中分配给一些繁复的sql语句固定的名称来简化它们的调用
*索引:索引是一种通过把数据的逻辑指针存放到特定的键值中来提高数据检索速度的数据库对象.通过键值的升序或降序排列对索引进行扫描,你可以比全表扫描更快的找到目标行
*索引组织表:一种在物理存储结构上类似于索引的表.与普通表不同的是,普通表在插入和查询时是无序的,而在索引组织表中是依照表中定义的主键来组织数据的存储.普通表(把所有数据堆在一起)和索引组织表的区别就象你把发票无序的堆在鞋盒里还是把它们按时间和花费整齐的排好起来.把这些发票从鞋盒里拿出来在检索时没什么特殊的逻辑可言,但如果发票是按照时间排序的那么你就可以很清楚的知道6月2号的发票将会出现在8月1号的发票前面.
*分区表:oracle10g中的表可以被分割成片分布在更多的高效物理存储中.一个分区或者子分区包含这张表中数据的一个子集,存储在一个独立的物理磁盘上,所以无论是同时从多个物理磁盘上读取(多分区平行读)还是避免读取一个不满足查询要求的分区(分区排除)时数据检索速度都有提升.
*聚簇表:一种允许把多个表中行物理的存储在一起以提高检索速度的存储机制对象.比如你把定单信息(客户,付费信息,投递细节,等等)放在一张表中而把产品线信息(产品,成本,价格,质量,等等)在另一张表中,那么你在执行与定单和产品都有关的检索时不得不至少执行两次读命令.把定单和产品线信息通过orderid列组织到同一个聚簇表中将允许oracle把拥有相同orderid的定单和产品线信息放到同一个物理块中,这样就可以在一次读中完成上述检索了.聚簇表的缺点在于你必须为聚簇表的创建和行的增加预分配一个特定的区或她们所需要的全部磁盘空间.
*序列:序列允许你创建和增长用来为表产生数字主键值的计数器.
*同义词:在英语里,同义词指的是一个已有对象的另一个名称.在oracle中同义词用来为那些名字很长的对象起一些简称,或者使特定的对象名称更加易于记忆.
*存储过程:存储过程指用来完成一个特定任务的sql和pl/sql的集合,比如向表中插入或者更新行.
*触发器:触发器是一种特殊的不能手动执行但当在表中执行某个特定动作时自动执行的存储过程.触发器可以通过某种诸如插入,更新,删除的动作和表联系起来,也可以通过登入,登出,或者数据库启动,关闭等系统事件来触发.
*函数:函数是一种必须且只能有一个返回值的存储程序.与存储过程不同的是,存储过程可以有参数传递但不需要返回任何值,但函数必须且只能有一个返回值.
*包:包是用统一的名称来把一些存储过程和函数集合起来.这就允许你通过一个统一的名称来将所有的程序元素逻辑的组合起来成为数据库的一个特定的部分来完成维护和执行操作.
*用户定义的数据类型:用户定义的数据类型是一种可以在任何表或者其他对象定义中使用的数据库对象.使用用户定义的数据类型可以保证表之间的一致性并同时允许应用方案(或者说对象可以执行的动作)作为定义的一部分.
*大对象:大对象是一种用来存储视频,图象,以及大量文本的大的二进制对象,大对象可以被定义为表中的一列,它可以是以下几个数据类型:blob,clob,nlob,以及bfile.
除了本书介绍的对象之外,oracle还包括了其他的对象类型,比如程度,方向,物化视图,等等,这些对象有着特殊的用途比如简化数据仓库等,但它们已经超出了本书的涵盖范围.
在oracle数据库中每一个对象都属于某个用户.但oracle数据库中定义的用户可以不拥有任何对象,拥有对象的用户被称为模式用户,模式是某个用户拥有的所有对象的集合,包括表,索引,视图,等等.

oracle数据字典
你可以设想一下,一个数据库可能包括成百上千个对象.oracle数据字典的任务就是保持跟踪所有这些对象的信息.在所有的数据库中数据字典包含着元数据的信息.元数据的意思是关于数据的数据,或者说是一个包含关于你所有的表和数据库对象的信息的表,以及其他数据对象的集合.
oracle中的数据字典是基表的集合,所谓基表指的是包含了绝大部分用户创建的数据库对象信息的表.这些基表是属于一个随着数据库的创建而创建出的叫做sys的用户的,基表永远无法直接访问,他们的名称也被设计成隐秘的以防止一些恶意的用户去查询和修改它们.为了能够方便的访问数据字典和获取数据库对象的信息,在数据库创建的时候产生了一系列视图.这些视图一般称做数据字典视图.
oracle有以下三种数据字典视图集:
*用户视图:这些视图允许用户获取他们自己模式下的对象(也就是他们自己所创建和拥有的对象)信息.
*全局视图:这些视图允许用户获取他们自己拥有的对象,以及他们拥有访问权限的对象的信息,用户视图中出现的所有内容都会在全局视图中出现,并且用户也可以在全局视图中找到那些允许他们访问或者操作的数据库对象的信息.
*DBA视图:DBA视图是被设计来提供给DBA使用的视图,提供数据库中所有对象的全部信息,或者说,任何用户创建的任何对象的信息.普通用户无权访问这些视图,对它们执行select操作也需要特殊的权限.
在你深入研究本书的时候,你将会接触到很多DBA视图,它们将协助你完成你作为数据库管理员的职责.但是,在oracle业界数据库管理员扮演一个怎样的角色呢?

数据库管理员的职责
我的一个同事喜欢评论那些他确信控制着数据库的用户.但事实上,他越是确定(以一种奇怪的方式),结果越不一样.作为DBA,他可在在自己负责的任何一个数据库上做任何事,所以他是一个统治者.数据库管理员有着巨大的权限,但是请牢记力量越大,责任越大.最终,数据库对于用户要求的响应,以及符合公司目标的成败取决于DBA.DBA必须为坏的数据库管理承担责任,同时也会因为好的数据库管理获得荣誉.
在oracle业界DBA负责下列任务:
*规划和鉴定服务器硬件,为了承担确保公司数据库平稳作业的个人责任,你将被指派提出配置用来运行oracle的服务器的建议.你的经验将在决定成本,硬盘,CPU,以及对其他用来支持目标数据库运行的资源要求上起关键作用.理解oracle的体系结构,以及数据的商业要求和应用将协助你完成这个任务.
*安装oracle软件或者升级,在你购买了软件之后,你第一个任务就是让他运行起来.在目标平台上安装oracle就是DBA的工作了.它的要求不仅仅是放入CD和回答提示那么简单,因为oracle是一个由一系列复杂的软件组成并且拥有许多接口和与操作系统的交互的非常强大的系统.确认软件的顺利安装,以及正常工作是成为一个成功DBA的关键之一.
*计划和设计数据库结构,一旦软件被安装上了,你必须确认它的物理数据结构和逻辑元素拥有一个最优化的布局.如果没有做到这些,性能将会下降而用户也会表示出他们的不满.如果你正确的规划了硬件,这将是一个简单的工作,因为你应该已经规划好了数据库的尺寸和结构了;如果是你接手了这个环境,你可能需要运用你的经验来确认最优化的设置.
*创建数据库,你在第3章将会了解到,这是一个预备工作.创建一个数据库是管理它的第一步.尽管相对简单,这一道工序仍然可能导致问题;根据经验,你必须有充足的准备来解决这些问题.
*备份,以及其他数据保护方式,一旦数据库处于生产线上并且用户已经连接上去,此时数据库不可用的话他们不会好过的.更糟糕的是,如果数据丢失了,可能意味着生产效率下降,失去薪水和客户.为了确保数据库对用户可用,最小化数据丢失,快速而完整的数据恢复可能是DBA最重要的职责之一.
*创建和维护数据库用户,一旦需要赋予一个新的用户访问数据库的权限或者一个用户的要求和权限发生更改,数据库管理员必须为保证适当的访问做出安全设置上的修改.在某些情况下,应用开发者可能没有完全保证数据库应用架构的安全性,所以能够确认以上状况并且采取恰当的措施也是必要的.
*数据库设计及实现应用,当公司内部缺乏相应技术的时候,公司可能会购买第三方软件应用或者雇佣数据库架构师来为一个特别的要求设计数据库.然而,实际上这些设计工作应该由DBA来完成,因为在第三方软件供应商或者数据库架构师离开之后,DBA必须保证数据库持续顺畅的运行.
*转储和恢复数据库,所有的东西都有出问题的时候.硬件失败,用户对数据不适当的修改或者删除,一场自然灾害或者其他不可抗力造成的灾难降临到数据中心头上,等等.提供一个有效的恢复方案非常关键.当上述的情况发生的时候,容灾恢复策略得到了验证,但它还需要在模拟策略中得到验证以确保其可用性.DBA就是那个对它们的成功或者失败负责的人.
*监控和优化数据库性能,在'星际旅行:下一代'中有一个场景描述的是帝国帮助一艘搁浅的太空船.太空船的船员是一群缺乏工程技术和沟通技巧的人,但他们要求Picard船长和Giordi去"让我们跑快点",你的用户可能经常抱怨数据库跑的不够快.把这些抱怨降到最低并且在问题发生的时候或者发生之前把它们解决掉将减轻你的工作压力并提高你的工作满意程度.
*如你所知,DBA的职责是广泛而多样的.这是一个令人激动的职位,它的职能目标大致可以归结为一点:设法减少你的电话量.如果你从管理部门或者用户那里接到大量的电话,这可能不是一个好兆头并且会让你这一天过的很郁闷.架设在一个适当硬件上的有着完善备份容灾策略的性能得到良好调整的数据库会减少你的电话量,并提高你工作的满意度.这听起来不难,不是吗?

oracle产品家族
作为一名oracle数据库管理员,你可能要对一个作为另一个oracle产品一部分或者依赖于另一个oracle产品的数据库负责.oracle长久以来已经发展成为一个不仅仅做数据库的公司,尽管oracle数据库仍然是oracle公司做的最出色的核心产业.oracle公司提供如下的数据库相关产品:
*oracle e-business suite(电子商务平台),作为一种oracle应用,EBS是业界首选的enterprise resource planning(企业资源管理ERP)平台.EBS包括了财政,人事,调配,生产,以及其他许多模块,在这些模块的作用下,EBS使得企业在oracle技术的协助下更流畅的进行商务运作并提高效益和客户满意度.EBS为我们提供了oracle数据库,应用服务,以及开发平台的运行和应用的强化.
*oracle collaboration suite(合作平台),oracle的一项新产品,合作平台包括电子邮件,传真,日程,网络会议,文件仓库,语音邮件,以及其他一些模块来为公司的交流和合作提供一个独立的整合平台.和EBS一样,合作平台也包含了oracle数据库和应用服务作为它的基础.
*oracle application server(应用服务),一种java2企业版(J2EE)服务平台,oracle应用服务整合了部署和开发基于网络的应用所需的一切,它包含了一个portal服务器,以及开发portlet所需要的工具,网络服务能力,内容管理,对使用oracle网格的基于网格的应用支持,使用oracle报告功能的报告,使用PL/SQL或者java的开发,以及许多其他的特性.它还包括配置和使用诸如microsoft的active directory,novell的NDS,以及sun的iplanet等第三方目录服务的单签证服务接口.
*oracle developer suite(开发平台),如果你需要为oracle数据库或者应用服务开发应用,oracle开发平台为java,pl/sql,商务智能,数据仓库,以及其他应用提供了开发工具.
*oracle consulting(技术支持),当你在你的oracle部署上需要帮助时,oracle技术支持将为你提供有针对性的专业信息以协助你取得项目的成功.
*oracle university(学院),为客户及合作伙伴提供oracle产品和技术方面的培训是oracle,以及它的合作伙伴的职责所在.我们为此提供了专门的培训和在线课程.
更多关于oracle公司产品的信息可以在oracle的官方网站'www.oracle.com'上找到.

本章小结
在这一章你学了一丁点关于关系型数据库管理系统的历史.你还学到了sql事实上是由三种语言整合成的:用来管理数据库对象权限的数据控制语言(DCL),用来创建和管理数据库对象的数据定义语言(DDL),以及用来增加,更新,删除数据库中的数据和控制事务的数据操作语言(DML).你了解了哪些数据库对象可能出现在oracle10g数据库中并阅读了每种对象的概要,并且了解了你作为一个数据库管理员的职责所在.最后,你了解到oracle不仅仅是一个数据库公司,它还有着丰富而广阔的产品和服务.由此,你已经为开始oracle工作做好准备了(在回答几个问题之后).

问题
1.你需要为你的用java写基于网络的应用部署推荐一个平台.你需要用动态目录结构安全整合,以及管理网页内容.哪种oracle产品满足你的要求?(选择一个最佳答案)
A.数据库
B.应用服务
C.合作平台
D.电子商务平台
E.开发平台

2.数据库中存储的哪种信息适合使用序列?(选择两个正确答案)
A.发票物品
B.发票号
C.员工名
D.化学元素
E.客户标识

3.什么是在oracle中使用用户定义数据类型的关键优势?(选择一个最佳答案)
A.为oracle内建的数据类型更名的能力
B.继承
C.多样化
D.保证多个表中类似的数据结构的一致性
E.简化数据库管理

4.你的公司的域名邮件系统过载了.你还需要开通网络会议.你的室内电话系统需要一个接口连接新的语音邮件平台.你的开发人员在linux平台下使用java工作.哪种产品最适合你的公司的要求?(选择一个最佳要求)
A.数据库
B.应用服务
C.合作平台
D.电子商务平台
E.开发平台

5.下列哪一项通常不是oracle数据库管理员的职责?(选择一个最佳答案)
A.创建新用户
B.创建数据库对象
C.安装oracle软件
D.为数据库的数据维护开发应用
E.备份数据库

答案:
1.B.oracle应用服务为你的基于网络的应用提供java2企业版(J2EE)支持服务.它还包括了一个portal服务器用来创建新的内容,以及一个内容管理服务器用来管理内容变更.最后,oracle网络目录组件允许整合第三方目录服务用来提供单签证函数应用.
2.B和E.序列是自动生成的顺序的数字,是理想的票据号码或者数据库中数据的唯一标识符,比如客户ID.因为序列是自然数,它不适合在象定单物品,员工名,化学元素这样的文本数据中使用.
3.D.使用用户定义数据类型,你可以保证同样的数据在所有的表中都是以同样的格式保存的.或者说,电话号码在任何一个表格中的格式都是一致的.它也可以简化数据库的维护工作,但这不是首选答案.
4.C.oracle合作平台提供电子邮件,传真,语音邮件函数应用,网络会议,日程,以及其他特性,因为它还包括了oracle应用服务,它是一个完美的为电话系统提供开发和部署自定义应用接口的产品.
5.D.DBA并不负责开发与数据库及其数据维护接口的应用.这是应用开发者的任务.其他所有选项中列出的任务都属于DBA的职责,包括数据库安全,软件安装,备份和恢复,以及创建和维护数据库对象.

第二章
安装oracle10g数据库
在这一章你将学到如何
*识别系统要求
*使用最佳强韧的结构
*使用oracle安装向导安装软件
*识别和设置常用的环境变量

了解数据库的工作原理是一个好的起点,但事实上你必须先把软件安装起来以便在实际操作中看到真实的现象.但安装软件并不意味着创建数据库.安装10g数据库软件意味着你有按照自己的意愿创建和管理数据库的工具了.

oracle系统要求
为了把oracle10g数据库软件安装到主机上,你必须满足所有的准备条件.oracle,由于它运行在如此多的平台上,所以需要配置各种其他软件来使它顺利的运行.这包括在linux系统上附加的软件包,在windows下的特殊服务和软件,在基于unixs平台的系统上内核参数的设置或者以上这些的任意组合,以及其他的一些注意事项,不同平台的环境设置,以及准备条件.
表2-1列出了在大多数平台上最低的和推荐的系统要求.注意CPU类型和速度并没有被列出.这是因为你所运行的操作系统已经决定了支持哪些CPU.oracle将在你决定运行软件的操作系统所支持的CPU下工作.如果需要更多特定的系统要求列表,你需要参照安装光盘或者oracle官方技术站点'www.oracle.com/technology/documentation/database10g.html'上对于特定操作系统的安装指南.
众所周知,主机的内存越大对oracle越有好处.扩大内存是在提高oracle数据库性能上性价比最高的选择.如果你打算在同一台服务器上运行多个数据库,最好扩大内存以保证所有实例的平稳运行.
系统要求  最低  推荐
内存   512M  1G
交换/分页文件空间 1G  内存的2倍
临时空间(/tmp或者\TEMP) 400M  1G
软件磁盘空间  1.5G  1.5G
数据库磁盘空间  1.5G  1.5G
操作系统,以及版本 参照安装文档 参照安装文档

考点提示:oracle总是建议提供比系统要求中列出的更多的内存.这会避免由于系统资源缺乏引起的交换和分页而造成的性能下降.

在磁盘空间方面,如果你打算增长你的数据库,你需要预分配额外的磁盘空间.目前磁盘很便宜,所以把空间扩大到支持你计划运行的数据库所需要的尺寸吧.增加更多的磁盘空间还能使你更有效的为oracle分配磁盘空间,有利于长远发展中的剥夺和其他技术性能.
oracle10g数据库被许多不同的操作系统和硬件平台所支持.linux和windows可能是这其中近年来最救星的两个选择,此外oracle还支持solaris,IBM AIX,HP-UX,HP(formerly compaq)tru64,和IBM z/os(os/390),以及64位(AMD和itanium)和32位的各种windows和linux.当决定了特定的操作系统版本之后,很重要的一点是参考oracle的metalink技术支持站点'http://metalink.oracle.com'来确保你的操作系统版本及平台在oracle的保证列表中.oracle只支持保证列表中的操作系统版本.例如,oracle官方并不支持Red Hat’s Fedora Project Linux操作系统但是却支持Red Hat企业版的AS和ES系列.可以确定的是,无论通过官方的安装文档还是通过检查metalink上的担保可用链接,你必须确认你要把oracle安装到一个它所支持的平台上.

考点提示:最新的操作系统版本支持列表可以在oracle的metalink支持站点找到

最佳强韧的结构
随着oracle8的面世,oracle介绍了Optimal Flexible Architecture(最佳强韧结构OFA),OFA是一个命名挂载点和路径,以及组织数据文件和数据库组件以便于DBA定位文件和管理数据库,oracle安装向导在创建默认启动数据库时将遵循OFA.进一步来说,oracle安装向导将创建一个文件,以及路径结构来使得用数据库配置助手来创建新增数据库时易于遵从OFA.
最佳强韧结构是由oracle技术支持服务所开发用来简化oracle数据库调优和监控的.OFA指出必须至少指定三条路径来减少争用,以及提供良好的性能.一条路径用来存储诸如oracle执行文件等二进制文件,以及相关联的一般不会改变的支持文件.第二条路径是用来存储控制文件,重做日志文件,以及其他管理文件诸如主机上每个数据库的参数文件.最后,第三条路径将被用来存储所有的数据文件.每条路径最好分放在不同的物理磁盘上,可能还需要进一步手动调优来确保良好的性能.
尽管OFA并不是完美的,但它为提高性能和简化管理提供了以下的基础:
*为定位oracle需要及使用的各种文件提供了结构化的方案.遵从这种结构化方案可以让DBA们更快的掌握那些要求他们去管理的数据库和服务器.
*诸如备份恢复之类的的数据库管理操作由于文件和路径结构的标准化而变的简单.如果你需要添加数据文件,你也可以依照OFA结构而不必为他们的路径发愁.
*由于OFA配置需要使用主机上的多个物理磁盘,这将使得数据文件,二进制文件,以及重做日志文件的磁盘争用得到减轻,如果仅仅依照OFA规则还是无法满足你的数据库和服务器对性能优化的要求,这时就需要开始进一步的性能监控和调优了.
*如果你在同一台主机上有多个oracle产品目录(ORACLE_HOME)或者在同一台主机上运行了多个oracle版本,可以让每一个版本都遵从OFA规则从而使得他们不容易混淆并且一个版本的软件或包也不会覆盖另一个版本的软件或包.OFA还会把存在潜在冲突的文件隔离开从而减少了争用并简化了管理工作.

路径和挂载点规则
OFA规则的其中一项是要求一个通用的挂载点及路径(目录)命名模式.使用通用的命名模式简化了资源的组织和定位.在使用oracle数据库配置工具(DBCA)来创建oracle10g数据库时它将创建许多OFA组件.用来安装oracle软件的oracle安装向导也会在创建挂载点和你在安装oracle时指定的oracle产品根目录(ORACLE_BASE)时遵从OFA结构.
下面是linux/unix平台下的OFA规则命名模式建议:
*在命名所有挂载点的时候都依照/pm的格式来使用通用字符串和变量值的组合,这里p代表字符串而m代表变量值.例如/u01,/u02,/u03等等,/ora01,/ora02,/ora03会是一个不错的选择,使用这种命名规则可以简化依照它的挂载点的增加.
*在这些挂载点下,依照/pm/h/u/product/v的格式命名oracle软件的安装目录,这里/pm指的是前面提到的挂载点,h是一个标准的路径名指出路径的作用,比如app,db或者home,u是这个目录属主的用户名(因为多用户操作系统里不同的用户可以安装和拥有自己的oracle软件),product是一个固定格式,v代表安装在这个路径下的软件版本.例如,一个名叫oracle的系统用户拥有的oracle10g数据库的路径可以是/u03/db/oracle/product/10.1.0,他的oracle9i应用服务安装路径可以是/u02/app/oracle/product/9.0.4,他的oracle8i数据库可以在/u01/db/oracle/product/8.1.7下.
*在这个目录结构下你可以创建一个admin目录,以及相关的子目录来存放oracle所使用的特定的文件.完整的路径名应该是/pm/h/admin/d/a,这里admin是一个固定格式,d指该数据库的SID(系统标识符或者实例名),a是一个为特定管理文件类型准备的子目录.表2-2给出了普遍的管理目录类型.
子目录名 作用      示例
adhoc  adhoc的SQL,以及PL/SQL脚本   /u02/db/admin/ocp10g/adhoc 
arch  归档日志文件位置    /u02/db/admin/ocp10g/arch
adump  审计文件位置     /u02/db/admin/ocp10g/adump
bdump  后台进程跟踪文件,以及告警日志文件位置  /u02/db/admin/ocp10g/bdump
cdump  内核生成文件位置    /u02/db/admin/ocp10g/cdump
create  DBCA建库脚本存放位置    /u02/db/admin/ocp10g/create
exp  导出工具或者数据泵创建的数据库导出文件建议位置 /u02/db/admin/ocp10g/exp
logbook  数据库历史和状态日志文件位置   /u02/db/admin/ocp10g/logbook
pfile  用来启动数据库的参数文件位置   /u02/db/admin/ocp10g/pfile
udump  用户进程跟踪文件位置    /u02/db/admin/ocp10g/udump

考点提示:OFA的管理目录结构对oracle的有效管理举足轻重,oracle强烈推荐使用它.DBA们必须知道如何设置这些参数以便把要求的文件定位在OFA目录结构中适当的位置.

挂载点和目录的命名并非oracle强制的,但是我们强烈建议你遵守OFA以便于轻松的确认主机硬件上安装了哪些软件.在windows环境中,规则是类似的,然而你可以使用盘符作为挂载点或者挂载支撑你的oracle数据库安装的空的NTFS文件夹分区.

文件命名规则
命名策略的最后一部分是解决文件在目录中的定位.oracle的数据文件,重做日志文件和控制文件等存放在你命名策略中的一个组件-你的数据库文件结构根目录中(与前面列出的admin文件相对).数据文件结构的根目录格式是/pm/q/d,q是一个固定格式指出这个路径包含oracle数据库文件(或者'oradata','oracle'),d是数据库名,它可以来自参数文件中的DB_NAME参数(推荐)也可以来自环境变量中设置的ORACLE_SID,例如/u03/oradata/ocp10g和/u01/ORACLE/mydb.
把一个数据库中的数据由多个磁盘分散在多个挂载点上来分布I/O以获取更好的性能是可行而普遍的.出于这一点,你可能会看见几个挂载点有着对应同一个数据库的相同的目录名,例如/u02/oradata/ocp10g和/u03/oradata/ocp10g.这个方法还可以用来分离不同的数据库文件类型.表2-3给出了这些文件类型推荐的命名习惯
文件类型  作用     命名习惯
控制文件  用来存放数据库及其文件和状态的信息 control.ctl或者control[序号].ctl
重做日志文件  用来在数据库数据发生改变时记录改变 redo[序号].log
数据文件  存储数据库文件    [表空间名][序号].dbf
牢记只有表2-3中列出的oracle数据库文件适合存放在OFA数据库文件位置中,这点很重要.把其他文件放在这里会使你难以跟踪文件的具体位置.管理目录结构是用来存放oracle数据库和实例使用到的其他文件的,数据库文件位置是用来存放所有与oracle日常操作有关的文件-控制文件,重做日志文件,以及数据文件.

使用oracle安装向导来安装oracle
现在你已经熟悉了OFA,并且决定了oracle安装中使用的目录结构,你可以把CD拿出来准备在你的主机上安装oracle了.因为oracle是一款在许多不同操作系统上运行的复合软件系统,需要确认CPU结构,存储系统,附加要求等以及完成准备工作来保证安装的成功.

操作系统准备
在安装数据库软件之前必须要做的第一件事就是阅读适合你操作系统和平台的安装指南.这些可以在oracle官方技术网站的oracle10g数据库产品文档章节找到(www.oracle.com/technology/documentation/database10g.html).最好在安装前参阅在你的环境下所需的特定准备工作因为在不同的平台下内核参数,其他系统设置,以及需要准备的软件都是不同的.然而,有些东西在所有平台都是类似的.

标注:如果你正在linux平台上安装oracle,OTN网站地址为'www.oracle.com/technology/tech/linux/install/index html'的一个特定章节解决了在linux上的oracle安装问题.另一个很好的linux资源是WernerPushitz在www.puschitz.com (也是OTN网站的链接)上的linux页面. Oracle-Base (www.oracle-base.com)是linux以及其他操作系统系统上的良好资源,以及为其他oracle产品的安装提供帮助.

建立oracle的用户和组
在安装oracle10g数据库之前要做的第一件事是创建一个用户和组作为oracle软件的拥有者.操作系统决定了所要使用的方案,但是你应该至少创建一个用户(这里把它称做oracle)以及两个组,一个用于安装(oinstall)另一个用于管理(通常叫做dba).

在基于linux的主机上,你可以使用root身份执行下列命令来创建组和用户,以及指定组ID和用户ID,用户的默认宿主目录(-d /home/oracle)以及该用户使用的shell(-s /bin/bash):

groupadd -g 500 oinstall
groupadd -g 501 dba
useradd -u 500 -g oinstall -G dba -d /home/oracle oracle -s /bin/bash

为了在linux上安装oracle你必须以oracle用户身份登陆.你还需要以root身份对操作系统进行一些设置,所以确认你知道root用户的密码或者在需要时可以有人帮你完成这些任务.你无法在不进行root级别操作的情况下完成在unix/linux上的安装.

标注:如果你想在linux上安装oracle但是需要一些关于linux命令的信息,你可以在oracle网站上的linux技术中心(www.oracle.com/technology/tech/linux/index.html)找到一些相关的技术参数.

在windows环境下DBA组需要是在安装oracle的主机上的一个本地组并且必须叫做ORA_DBA,值得注意的一点是在安装oracle之前并不需要创建这个组;它可以并且经常是在oracle安装完成以后才被创建出来.安装oracle对用户的唯一要求是软件的安装者必须以本地管理员组成员的身份登陆到主机上.

设置环境变量
为了确保oracle在安装以后运作正常,需要为oracle用户设置一些环境变量.在windows环境下这些环境变量在软件安装时自动由oracle产生的一些注册信息保管,但是在unix和linux下这些环境变量需要手动设置.然而安装oracle10g数据库软件时并不需要设置这些环境变量,oracle指出安装之前不需要做任何设置,安装时或者安装后设置它们可以保证oracle的正常运行.

考点提示:你必须非常熟悉这些环境变量以及它们的用途.

下面是一些你可能想要预先设置的环境变量:
*ORACLE_BASE,在主机上安装的所有遵从OFA目录结构的oracle产品的根目录.这个环境变量指定了该主机上安装的所有oracle产品存放的目录,例如/opt/oracle.
*ORACLE_HOME,当前oracle产品的安装目录.一般是在ORACLE_BASE下指定的一个子目录,例如在linux或者unix主机上的$ORACLE_BASE/product/10.1.0.
*ORACLE_SID,你将要连接或者创建的oracle实例的标识符.在多数环境下它必须是8个或者更少的字符,以字母打头由字母和数字组成.在RAC环境下它必须是5个或者更少的字符.默认的初始化实例名是ORCL,然而ORACLE_SID必须被设置来本地的连接一个实例.
*NLS_LANG,以[语言区域].[字符设置]的格式来指定oracle安装的的全局信息.在除windows以外所有的操作系统中NLS_LANG的值都是'American_America.US7ASCII',windows下这个值取决于操作系统中指定的区域设置以及键盘设置.

标注:如果windows下的键盘设置不是美式英语,这还会导致oracle将NLS_SORT的值设置为非二进制,从而降低了基于字符的索引的优化效果.在21章我们将了解更多关于NLS_LANG和其他NLS相关参数是如何工作的信息.

*DISPLAY,在unix环境下你需要为oracle安装向导指定将图形界面发送到哪里.默认的行为是继承操作系统环境变量中的DISPLAY值并把所有输出发送到那里.如果你想重定向图形界面显示到一个X window终端或者其他位置,你需要按照[主机名]:[显示器]的格式来设置DISPLAY环境变量,例如opus01.haunting.com:1.0.安装oracle的用户还必须有在显示端的写权限,这可以在基于unix的环境下使用xhost命令来设置.

标注:为了使所有用户得到指定显示端的写权限,root用户可以使用xhost +命令来解除该显示端的所有安全约束.这么做是存在安全风险的并且不应作为永久性解决方案.参阅linux/unix文档以获得更多关于xhost命令适用范围的细节信息.

考点提示:理解如何设置DISPLAY环境变量以及它在安装中的用法对考试是一个非常有价值的知识点.

在开始安装基于unix系统的oracle之前,最好至少先以oracle用户身份设置一下ORACLE_HOME环境变量的值来告诉oracle软件安装位置以及创建路径,象下面这样:

mkdir -p /opt/oracle/product/10.1.0
ORACLE_HOME=/opt/oracle/product/10.1.0 ; export ORACLE_HOME

安装oracle软件
oracle使用oracle安装向导来在各种平台上进行安装(OUI).当你把oracle10g数据库安装介质的第一张CD放入CD驱动器的时候这个程序会自动请求运行.你也可以通过执行基于unix平台下CD驱动器中的runInstaller或者windows平台下CD驱动器根目录下的setup.exe来运行这个程序.

oracle安装向导
oracle安装向导是一个基于java的应用,它在所有平台上看起来感觉都是一样的.它包含了以下特性来减轻安装和设置的难度:
*基于java的设计,oracle安装向导是用java写的在所有平台上看起来感觉都是一样的.
*附带检查,当你使用OUI来在你的电脑上安装产品的时候,它会自动检测哪些其他产品可能需要安装以保证你所选择的组件可以正常运行.然后安装向导将确认所需的组件是否已经安装并为安装选择所有需要的组件.
*多重oracle产品目录支持,OUI将对目标主机上存在的所有oracle产品目录保持跟踪.如果你想在同一台主机上安装oracle数据库,应用服务,以及其他oracle产品和版本,你就要用到多重oracle产品目录,oracle安装向导将保证为每一个需要独立oracle产品目录的产品都将创建它并对产品和版本的安装位置保持跟踪.
*国家语言/支持,在安装oracle软件的时候,安装向导将检查主机的区域/全球设置并依照它配置自己的设定.它也会为即将安装的软件做同样的设置来使得交互符合用户的意愿.
*基于网络的安装,当oracle安装向导提示你输入安装软件的位置时,你可以指定一个物理的或者网络的位置,或者一个可以找到这些文件的URL.这就允许你创建用来引用OUI的网页来为用户提供一台靠近他们的安装了应用所需的包文件的服务器.这使得大范围部署变的简单.
*隐式安装,oracle安装向导可以被命令行引用,通过指定记录了所有安装需要的参数的响应文件名来继续,例如:

runInstaller -responsefile respfile [-silent] [-nowelcome]

-nowelcome命令行参数通知oracle安装向导在启动时不要显示欢迎界面.默认情况下它是显示的.-silent参数通知oracle安装向导在安装过程中不要告诉用户正在发生什么,仅仅显示响应文件里指定的所有任务.
*智能的卸载,只要你使用安装向导来安装产品,它就会为所有的安装保存一份安装记录以允许你全部或者部分地卸载产品.当执行卸载的时候安装向导将提示你是否需要卸载附加组件,或者这个卸载是否会导致其他产品的失败,如果是那样的话它们也将被删除或者卸载中影响它们的特定部分将被取消.
*支持用户定义的包,当收到请求时,安装向导允许你把自己的组件增加到所要安装的包的列表中.这样你就可以一并安装oracle服务软件和你自己的软件了.进一步来说,如果特定的单元需要在安装过程中运行,安装向导允许你通过安装脚本来使它们自动运行.

安装oracle10g数据库
OUI做的第一件事是进行一系列的系统检查来保证你的电脑已经为oracle做了正确的配置以及确保你已经作为一个拥有进行安装所需的适当权限的用户登陆到系统中.
将要进行的这些测试被存放在第一张光盘的安装目录下的一个叫做oraparam.ini的文件中.如果你对编辑它的内容非常熟悉的话,你甚至可以把它拷贝到其他目录中然后对系统预检查或者其他行为做修改,但对oracle和OUI的新手来说是不推荐这么做的.然后你可以用如下带有指定应用参数文件位置的命令行来手动启动安装:

/mnt/cdrom/runInstaller -parameterFile /home/oracle/oraparam.ini

如果你希望oracle安装向导不进行任何系统检查,你可以用如下命令行来启动它:

/mnt/cdrom/runInstaller -ignoreSysPrereqs

在以上两个例子中/mnt/cdrom是红帽linux环境下光驱默认挂载点的根目录,所有的命令和参数都是区分大小写的.

考点提示:你至少需要这里介绍的两个runInstaller的参数以及它们的用途.

在系统检查通过之后(如果没有正确配置,OUI将报错并提供相应的纠正建议),将显示OUI的欢迎界面,点击next继续.

标注:windows下的oracle安装向导有一个基本安装选项,它将把所有的东西安装在默认路径下并创建一个标准的默认启动数据库.如果你选择了这个选项,你将不必参照其他下述文档中所提到的事项.选择高级安装选项时你将要参照这里描述的事项.

如果你是在一个基于unix的系统上安装oracle,你接下来将被要求提供oracle安装向导用来保持跟踪主机上安装的oracle产品的oracle安装记载目录,以及之前所提到的为安装oracle产品而建立的oinstall操作系统用户组.如果设置了ORACLE_BASE这个环境变量,那么默认的oracle安装记载目录就是$ORACLE_BASE/oraInventory,否则将指定另一个位置.指定oracle安装记载目录以及oracle安装组然后点击next继续.

考点提示:你需要熟悉基于unix平台下OUI的工作以及安装记载目录的位置及其文件的重要性.

在基于unix/linux平台下的安装会要求你以root身份运行一个你在前面指定了的oracle安装记载目录下的脚本'orainstRoot.sh'.任何oracle产品在服务器上首次安装的时候都要运行这个脚本.它将创建安装记载点文件'oraInst.loc',在linux系统下通常会在ORACLE_BASE下创建一个例如/opt/oracle/oraInst.loc的链接文件指向到/etc目录下的一个同名文件.你需要以root身份连接到服务器上(或者打开一个Xwindow会话终端并切换到root用户)并运行这个脚本来创建附加路径以及为文件设置恰当的属主和权限.这个脚本的内容类似于下列代码:

#!/bin/sh
INVPTR=/etc/oraInst.loc
INVLOC=/opt/oracle/oraInst.loc
GRP=oinstall
PTRDIR="`dirname $INVPTR1";
#Create the software inventory location pointer file
if [ ! -d "$PTRDIR" ] ; then
mkdir -p $PTRDIR
fi
echo "Creating the Oracle inventory pointer file ($INVPTR";
echo inventory_loc=$INVLOC > $INVPTR
echo inst_group=$GRP >\> $INVPTR
chmod 664 $INVPTR
# Create the Oracle inventory directory if it does not exist
if [ ! -d "$INVLOC" ] ; then
echo "Creating the Oracle inventory directory ($INVLOC)";
mkdir -p $INVLOC
chmod 775 $INVLOC
fi
echo "Changing groupname of $INVLOC to oinstall.";
chgrp oinstall $INVLOC
if [ $? != 0 ] ; then
echo "WARNING: chgrp of $INVLOC to oinstall failed!";
fi

在点击OK确认脚本已经被成功执行后,接下来你会被要求确认安装介质源以及目标oracle产品目录名和路径.如果你之前设置了ORACLE_HOME,目标路径将默认为ORACLE_HOME,并依据ORACLE_HOME给它一个推荐的名称.oracle产品目录名和位置会被OUI放在一个叫做'/etc/oratab'的文件中,这个文件列出了所有的通过OUI创建或者手动添加的所有oracle产品的所有安装目录.这就允许了OUI来确认这台主机上存在哪些oracle产品.

点击next就会来到产品选择界面,它允许你选择要安装在主机上的oracle10g数据库的版本.默认是企业版,它包含了一些诸如oracle data guard(oracle数据卫士,用来创建,管理,监视备用数据库,即standby数据库以实现快速失败切换的一个软件)等特性增加了oracle数据库的安全性(Oracle Advanced Security,Oracle Label Security, Enterprise User Security, Virtual Private Database, N-tierauthentication, Fine-Grained Auditing and Access Control)以及一些附加的特性来支持企业数据仓库(Oracle Partitioning, Oracle OLAP,
Transportable Tablespaces, 等等).你也可以通过选择custom来自定义组件和特性的安装.但是你只应选择你持有许可的数据库版本以及特性.选好了之后点击next继续.

标注:oracle个人版也是可用的.它包含了企业版的全部特性并且是为个人工作站上的软件开发而设计的.

考点提示:考试要求你很好的理解oracle10g数据库各个版本之间的区别.

你现在可以选择创建一个oracle默认启动数据库或者忽略这个选项.你可以以后再去创建数据库,但是在安装软件时创建会节省时间.这里有三个预设的数据库模版,包括已经设置好的数据文件来使得创建工作更加迅速.你也可以选择自定义创建数据库,这样你将花费较长的时间来按照自己要求的设置来创建数据文件.选好了之后点击next继续.

如果你决定创建一个默认启动数据库,你将被要求提供一个[数据库].[域名]格式的数据库名以及一个1到8个字符以字母开头的数据库实例名SID(或者系统标识符).它们以及数据库的字符集设置(第3章将提供为此作出良好选择的指导方针)都会被提供一个默认值.你也会被要求选择数据库中是否包括示例模式.选好了之后点击next继续.

如果你在之前安装oracle10g数据库软件的时候安装了oracle企业管理网格控制器(OEM),现在你就可以选择使用它来管理这个数据库,否则你可以选择数据库控制器来管理数据库和实例.你还可以指定一个SMTP电子邮件服务器来将通知发送到指定的管理员电子邮件地址.点击next继续.

标注:企业管理网格控制器提供企业级的oracle数据库管理,其他产品请参照'www.oracle.com/enterprise_manager/index.html'获取更多信息.本书和测试将对此不作进一步讨论.

下个界面将询问你所期望的数据库文件存储方式:在本地文件系统上,使用自动存储管理(ASM),这是一种oracle自己创建和管理数据文件的存储方式,或者使用为oracle分配的裸设备或者分区作为一种高级方案.最便捷的方式是本地文件系统,但ASM有利于优化资源分配,所以有必要回顾一下oracle数据库管理员手册中关于配置ASM的部分.你可以在其中一张产品CD或者OTN上找到它.

考点提示:oracle数据文件可以用三种方式存储:文件系统,ASM,以及裸设备,文件系统选项还包括了oracle集群文件系统和第三方磁盘存储阵列.

你可以选择打开自动备份.一般情况下最好在你已经完成数据库对象设置并按要求投入运行后再设置备份,所以在这个界面上点击next继续.

在这个界面上你将要为oracle初始化创建的用户设置密码.我们推荐你以默认的方式为每一个用户单独设置密码,但你也可以为所有列出的用户设置一个统一的密码,输入并确认适当的密码后点击next继续.

接下来出现的是概况界面,如果你没有选择创建数据库而只决定安装oracle软件后所要见到的界面.回顾这些将要被执行的动作,在确认他们正确后点击install.如果你在概况界面发现了错误的输入你也可以点击back按钮来做出更改.

oracle安装向导开始安装进程并出现一个安装进度条来显示这个安装将持续多久.在这个窗口的底部还会显示安装日志文件的位置以使得你可以查看到任何可能发生的错误信息.

当安装向导准备配置数据库的时候,并且只在你选择了默认启动数据库的时候,各种配置向导才会被单独启动,包括isqlplus配置向导(用来配置接口使得oracle的java-oc4j实例可以连接到数据库上),用来为oracle配置基本网络连接的oracle网络配置向导(NETCA),用来实际执行你在安装时选择的数据库配置的数据库配置向导(DBCA).将会有一个界面告诉你哪些向导将被运行以及它们的状态.在它们完成之后oracle将告诉你它们是否执行成功.这样你就可以重试那些失败的向导,接下来安装就完成了.

考点提示:熟悉每一个配置向导的作用.

一旦oracle数据库配置向导完成,它就会为你提供oracle企业管理器站点的URL以及可以选择解锁数据库中的其他用户合约.点击OK来完成数据库配置.

在unix/linux平台上你还将被要求以root身份运行一个叫做root.sh的脚本,这个脚本位于ORACLE_HOME目录下,它将向/etc/oratab文件中写入关于oracle产品目录以及主机上的数据库实例的信息.这些信息将被oracle企业管理器以及其他管理组件用来确认数据库的位置,以及当操作系统启动时它们是否随之自动启动.在windows环境下这些信息被存放在注册表中,所以不需要运行脚本.

考点提示:理解oratab文件的重要性,位置,以及内容.

最后一个界面将提供所有各种已安装oracle产品的URL概述,包括isqlplus,oracle企业管理器,以及极限搜索.留意这些信息然后点击exit来完成本次安装.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13750068/viewspace-501493/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-17

  • 博文量
    330
  • 访问量
    1030134