第2章ORACLE11g简介2.1Oracle11g产品版本概述•Oracle数据库是Oracle(中文名称叫甲骨文)公司的核心产品,Oracle数据库是一个适合于大中型企业的数据库管理系统。在所有的数据库管理系统中(比如:微软的SQLServer,IBM的DB2等),Oracle的主要用户涉及面非常广,包括:银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等。Oracle产品是免费的,可以在Oracle官方网站上下载到安装包,另一方面Oracle服务是收费的。•Oracle系统主要由Oracledatabase和Oracleapplicationserver两大拳头产品以及Oracle管理程序包等其他产品组成。2.1.1Oracle11g版本简介•针对不同的组织和个人对数据库性能、价格的不同需求,Oracle数据库11g提供了4个版本,即标准版1、标准版、企业版与个人版。–标准版1:最基础的版本,包括基本的数据库功能,仅许可在最高容量为两个处理器的服务器上使用。–标准版:除了包含标准版1的易用性、能力和性能外,还利用了RAC(真正应用集群)提供了对更大型的计算机和服务集群的支持。支持最多4个处理器的服务器集群。2.1.1Oracle11g版本简介•针对不同的组织和个人对数据库性能、价格的不同需求,Oracle数据库11g提供了4个版本,即标准版1、标准版、企业版与个人版。–企业版:为关键任务的应用程序提供高效、可靠、安全的数据管理,企业版可以运行在Windows、Linux和UNIX的集群服务器或单一服务器上,包含了Oracle数据库的所有组件。–个人版:只提供Oracle作为DBMS的基本数据管理服务,适用于单用户开发环境,对系统配置要求也较低,主要面向开发技术人员使用。2.1.2Oracle11g可选产品概述Oracle数据库11g的四个版本都具有相应的特性和功能,以满足应用程序不断变化的需求。此外,Oracle还提供了具有先进技术的可选产品,这些技术能够满足关键任务的OLTP(联机事务处理系统)、数据仓库和互联网应用程序环境最苛刻的开发和部署需求。•Oracle真正应用集群(RAC,RealApplicationCluster)RAC是通过集群技术来利用多个互连的计算机处理能力的计算环境。•Oracle分区它为大型的底层数据库表和索引增加了重要的可管理性、可用性和性能,从而为OLTP、数据中心和数据仓库应用程序增加了数据管理环境。2.1.2Oracle11g可选产品概述•Oracle高级安全性(ASO)它为Oracle数据库提供了网络加密的一整套功能强大的验证服务,验证包括Oracle数据库的单点登录服务。•OracleOLAP(联机分析处理)它是一个可伸缩、高性能的计算引擎,它为开发分析应用程序提供了完全集成的管理。•Oracle数据挖掘它允许公司构建高级商务智能应用程序,这些应用程序能够挖掘企业数据库,洞察新的问题,并将这些信息集成到商务应用程序用。2.1.2Oracle11g可选产品概述•Oracle空间数据库(Oraclespatial)它允许用户和应用程序开发人员将他们的空间数据紧密集成到企业应用程序中。•OracleProgrammer它是一个单独的Oracle产品,为构建访问和操作OracleDataBase11g的企业应用程序的开发人员提供了一组丰富的接口。2.2Oracle11g特性Oracle11g通过新的特性和数据库优化保持了它的数据库性能领先的记录。Oracle11g的新性能包括:•网格计算数据库–网格计算(GridComputing):是指将大量服务器和存储设备作为一台计算机进行协调使用。–网格计算的目的:提高或拓展企业内所有计算资源的效率和利用率,以更低的成本、更高质量的服务和更大的灵活性满足用户的需求。–网格计算的资源管理:•基础资源:构成数据存储和程序执行环境的软件和硬件。•应用程序:业务逻辑和处理流程的编码。•信息:用户需要的数据。2.2Oracle11g特性•网格计算数据库–网格计算能力包括:•服务器虚拟—RAC可以使一个数据库运行在网络的多个节点上,将资源集中使用。•存储虚拟—ASM提供了保证数据库在线的情况下,磁盘可以动态加载或删除。•网格管理—将多系统集成管理为一个逻辑组的控制台,可以管理网格中独立的节点,集中维护各组系统的配置和安全设置。2.2Oracle11g特性•可管理性–自动诊断知识库:当Oracle探测到系统发生错误时,会自动创建一个事件,并且捕捉到和这个事件相关的信息,同时进行自动化数据库检查并通知DBA。–事件打包服务:当用户需要进行进一步测试或保留信息时,用此服务与某一个事件的信息打包,并且还可以将打包的信息发给Oracle团队,得到相关技术支持。–自动地基于磁盘备份与恢复:简化了备份和恢复操作。备份调度成自动化操作,自动化优化调整。备份失败时可以自动重启,确保Oracle能够有一个一致的环境。2.2Oracle11g特性•可管理性–应用优化在Oracle11g中,用户可让Oracle自动将3倍于原有性能的Profile应用到SQL语句上。–计划管理允许用户将某一特定语句的查询计划固定下来,不管统计的数据变化或是数据库版本变化都不会影响、改变查询计划。–自动化内存调整Oracle11g数据库管理员只需要对内存参数进行配置就可实现全表的自动优化,用户只需要知道可用的总的内存数量和共享区的大小,就可以自动完成对PGA、SGA和操作系统的进程的内存分配。2.2Oracle11g特性•高可用性的加强–缩短应用和数据库升级的时间–闪回(FlashBack)错误能力•优化PL/SQL–SQL新语法–新的PL/SQL数据类型–Continue关键字2.3Oracle11g体系结构•从可观察的体系结构上讲,完整的Oracle数据库包括数据库(DB)及其专门用来管理它的数据库管理系统(DBMS)两大部分。分别与其对应的是存储结构和软件结构。体系结构存储结构软件结构物理存储结构逻辑存储结构进程结构内存结构既相互独立又相互联系图2-1:数据库的体系结构•数据库的主要功能是保存数据,换言之,数据库可以看作是保存数据的容器。•数据库的存储结构就是数据库存储数据的方式。•Oracle数据库把数据存储在文件中,这些保存数据库不同信息的文件组成了Oracle的物理结构。•为了便于用户对数据库进行访问,Oracle将数据库按照规定的结构划分为不同级别的逻辑单元。这里指的逻辑单元包括表、视图等常见的数据库组件。•逻辑存储结构和物理存储结构是分离的,对物理存储结构的管理可以不影响对逻辑存储结构的访问。2.3.1数据库的存储结构数据库数据文件物理结构控制文件重做日志文件物理块(OS块)数据块(DataBlock)表空间(Tablespace)逻辑结构区(Extent)段(Segment)大小存储粒度图2-2:Oracle11g的存储结构2.3.1.2数据库的逻辑结构•Oracle数据库的逻辑存储结构主要用于描述Oracle内部组织和管理数据的方式。它是Oracle数据库存储结构的核心内容,对Oracle数据库的所有操作都会涉及到其逻辑存储结构。•数据库的逻辑结构是从逻辑的角度分析数据库的组成。它包括方案(Schema)、数据块(DataBlock)、区间(Extent)、段(Segment)、表(Table)和表空间(Tablespace)等。•数据库由若干个表空间组成,表空间由又由多个段组成,段由区间组成,区间则由数据块组成。1.方案方案是用户使用的一系列数据库对象的集合。一个用户一般对应一个方案,该用户的方案名等于用户名,并作为该用户的默认方案。1.方案•方案对象直接处理数据库数据的逻辑结构,如:–表(Table)—数据库中最常用的数据存储单元,是包含数据库中所有数据的数据库对象。–视图(View)—虚拟的表,视图可以把表或其他视图的数据按照一定的条件组合起来。视图不包含数据,它只是从基表中读取数据。–索引(Index)—是一种可选的数据结构,在表中的某些字段建立索引,能够显著地提高对该表的查询速度,提高读取数据的效率,减少查询时的硬盘I/O操作。–聚簇(Clusters)—为了提高数据存取效率,把一些经常被同时访问的表共享公共列在物理上存储在一起得到的表的组合叫做簇。2.数据块•数据块是Oracle管理数据库存储空间的最小数据存储单位,又称逻辑块或Oracle块。•一个数据块对应磁盘上一定数量的数据库空间,标准的数据块大小由初始参数DB_BLOCK_SIZE指定,大小一般是操作系统块大小的整数倍。•因此,数据块既是逻辑单位,也是物理单位。2.数据块•数据块包括:公共的变长头、表目录、行目录、空闲空间、行数据。数据块头表目录区行目录区可用空间区行数据区图2-4:数据块的格式2.数据块•公共的变长头存放数据块的基本信息,如地址块的物理地址和块所属的段类型等。•表目录存放在此块中有行数据的表的信息。•行目录包含此块中实际行数据的信息,是已被数据行占用的空间。•空闲空间是一个块中未使用的区域。插入新行时需要存储空间,更新数据也可能造成存储空间的增加,这些存储空间都需要从空闲空间中分配。•行数据包含表或索引数据。行数据的存储可以跨越数据块。3.区间•区间是数据库存储空间中分配的一个逻辑单元,由一组相邻的数据块组成,它是Oracle分配磁盘空间的最小单位。•区间是为数据一次性预留的一个较大的存储空间,直到那个区间被用满,数据库会继续申请一个新的预留存储空间,即新区间,一直到段的最大区间数或者是没有可用的磁盘空间可以申请。4.段•一个表空间可以有多个段,而一个段只能属于一个表空间。•段是由许多个区间组成,它是一个独立的逻辑存储结构。如果段中的区间用完了,Oracle可以自动为它分配新的区间。段中的区间可以是连续的,也可以是不连续的。•Oracle11g数据库有4种类型的段,分别为:数据段、索引段、临时段和回滚段。4.段•数据段(DataSegment):存储表中所有的数据。用户创建表的同时Oracle将为表创建数据段。在表空间中创建多少个表,该表空间就有相同数量的数据段,并且数据段的名称与它对应的表名相同。•索引段(IndexSegment):存储表中最佳查询的所有索引数据。在使用CreateIndex语句创建索引时或在定义约束时自动创建索引,Oracle都将会为该索引创建它的索引段。•临时段(TemporarySegment):存储表查询排序操作期间建立的临时表中的数据。用户在执行查询数据操作时,Oracle会在专门为其分配临时段。•回滚段(RollbackSegment):存储修改之前的位置和值。利用这些信息,可以撤销未提交的操作。对于回滚段的管理是由Oracle自动完成的。5.表空间•数据库可以划分为若干的逻辑存储单元,这些存储单元被称为表空间。•每个数据库都至少有一个系统表空间(称为SYSTEM表空间)。•在创建表时,需要定义保存表的表空间。•表空间是最大的逻辑单位,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。5.表空间•Oracle11g包含以下几种表空间:(1)大文件表空间它只能放置一个数据文件但其数据文件可以包括4G个数据块,如果每个数据块的大小是8K,那么大文件表空间可以达到32T。(2)SYSTEM表空间又称字典表空间。当数据库创建时,SYSYEM表空间会自动创建。当数据库打开时,SYSTEM表空间始终存在。SYSTEM表空间中包含整个数据库的数据字典表、PL/SQL程序的源代码和解释代码、数据库对象的定义等内容。(3)SYSAUX表空间辅助系统表空间。数据库组件将SYSAUX表空间作为存储数据的默认位置,因此当数据库创建或升级时,它会自动创建。2.表空间•Oracle11g包含以下几种表空间:(4)Undo表空间在自动撤销管理模式中,存储撤销管理消息。(5)Temporary临时表空间保存SQL语句在执行过程中产生的临时数据,主要是在排序