《Oracle数据库教程第01章.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库教程第01章.ppt(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle 10gOracle 10g数据库基础教程数据库基础教程数据库基础教程数据库基础教程 Oracle 简介简介pOracleOracle的原义是的原义是“神喻神喻”,即神说的话。,即神说的话。在中国商代,出现了刻在龟壳上的文字,在中国商代,出现了刻在龟壳上的文字,被称为神的指示。所以,在中国,被称为神的指示。所以,在中国,Oracle Oracle 被翻译成被翻译成“甲骨文甲骨文”。p在数据库领域,在数据库领域,OracleOracle代表两个含义:代表两个含义:一是一是OracleOracle(甲骨文)公司;另一是指(甲骨文)公司;另一是指该公司的数据库系统产品该公司的数据库系统产
2、品OracleOracle数据库管数据库管理系统。理系统。第第1章章 Oracle 10g简介简介 课程描述课程描述课程描述课程描述Oracle 10gOracle 10gOracle 10gOracle 10g是当前最是当前最是当前最是当前最流行的大型关系数据流行的大型关系数据流行的大型关系数据流行的大型关系数据库之一,支持包括库之一,支持包括库之一,支持包括库之一,支持包括32323232位位位位WindowsWindowsWindowsWindows、64646464位位位位WindowsWindowsWindowsWindows、OSOSOSOS、HP-UXHP-UXHP-UXHP-U
3、X、AIX5LAIX5LAIX5LAIX5L、SolarisSolarisSolarisSolaris和和和和LinuxLinuxLinuxLinux等多种操作系统,等多种操作系统,等多种操作系统,等多种操作系统,拥有广泛的用户和大拥有广泛的用户和大拥有广泛的用户和大拥有广泛的用户和大量的应用案例。量的应用案例。量的应用案例。量的应用案例。本章知识点本章知识点pOracle 10gOracle 10g数据库的版本数据库的版本pOracle 10gOracle 10g体系结构体系结构 Oracle 10g的四个版本的四个版本pOracleOracle数据库数据库10g10g标准版标准版1 1pO
4、racleOracle数据库数据库10g10g标准版标准版pOracleOracle数据库数据库10g10g企业版企业版pOracleOracle数据库数据库10g10g个人版个人版1.1 Oracle 10g产品概述产品概述 pOracleOracle数据库数据库10g10g标准版标准版1 1(Oracle Oracle Database 10gDatabase 10g Standard Edition Standard Edition OneOne)1 1、为工作组、部门级和互联网、为工作组、部门级和互联网/内联网应用程序提供了前内联网应用程序提供了前所未有的易用性和很高的性价比。所未有的
5、易用性和很高的性价比。2 2、从针对小型商务的单服务器环境到大型的分布式部门、从针对小型商务的单服务器环境到大型的分布式部门环境,包含了构建关键商务的应用程序所必需的全部环境,包含了构建关键商务的应用程序所必需的全部工具。工具。3 3、Standard Edition One Standard Edition One 仅许可在最高容量为两个处理仅许可在最高容量为两个处理器的服务器上使用。器的服务器上使用。Oracle 10g产品概述产品概述pOracleOracle数据库数据库10g10g标准版(标准版(Oracle Oracle Database 10gDatabase 10g Standa
6、rd EditionStandard Edition)1 1、该版本提供了标准版、该版本提供了标准版1 1的前所未有的易用性、能力和性的前所未有的易用性、能力和性能,并且利用真正应用集群提供了对更大型的计算机能,并且利用真正应用集群提供了对更大型的计算机和服务集群的支持。和服务集群的支持。2 2、它可以在最高容量为、它可以在最高容量为4 4个处理器的单台服务器、或者在个处理器的单台服务器、或者在一个支持最多一个支持最多4 4个处理器的服务器的集群上使用。个处理器的服务器的集群上使用。Oracle 10g产品概述产品概述pOracleOracle数据库数据库10g10g企业版(企业版(Oracl
7、e Oracle Database 10gDatabase 10g Enterprise EditionEnterprise Edition)1 1、为关键任务的应用程序提供了高效、可靠、安全的数、为关键任务的应用程序提供了高效、可靠、安全的数据管理。据管理。2 2、为企业提供了满足当今关键任务应用程序的可用性和、为企业提供了满足当今关键任务应用程序的可用性和可伸缩性需求的工具和功能。可伸缩性需求的工具和功能。3 3、包含了、包含了OracleOracle数据库的所有组件,并且能够通过购买数据库的所有组件,并且能够通过购买选项和程序包得到进一步增强。选项和程序包得到进一步增强。支持支持OLTP
8、OLTP(联机事务处理),有大规模的实时生产(联机事务处理),有大规模的实时生产数据产生的企业环境中。数据产生的企业环境中。Oracle 10g产品概述产品概述pOracleOracle数据库数据库10g10g个人版(个人版(Oracle Oracle Database 10gDatabase 10g Personal EditionPersonal Edition)需要与需要与OracleOracle数据库数据库10g10g标准版标准版1 1、Oracle Oracle 数据库标数据库标准版和准版和 Oracle Oracle 数据库企业版完全兼容的单用户开发数据库企业版完全兼容的单用户开发
9、和部署。和部署。1.2 Oracle 10g数据库系统的体系结构数据库系统的体系结构 Oracle 10gOracle 10g数据库系统的体系结构数据库系统的体系结构 数据库服务器是信息管理的关键数据库服务器是信息管理的关键Oracle 10g体系结构概述体系结构概述 p一个服务器可以实现以下功能:一个服务器可以实现以下功能:1.1.在多用户网络环境中管理大量的数据,从而保证在多用户网络环境中管理大量的数据,从而保证许多用户同时访问相同的数据。许多用户同时访问相同的数据。2.2.防止没有授权的访问。防止没有授权的访问。3.3.提供有效的故障恢复解决方案。提供有效的故障恢复解决方案。Oracle
10、 10g体系结构概述体系结构概述pOracleOracle数据库是按照规定的单位进行管理数据库是按照规定的单位进行管理的数据集合,用于存储并获取相关信息。的数据集合,用于存储并获取相关信息。pOracleOracle数据库是第一个为企业网格计算数据库是第一个为企业网格计算(grid computinggrid computing)而设计的数据库系)而设计的数据库系统,统,Oracle 10gOracle 10g的的g g就代表就代表grid grid computingcomputing。pOracleOracle数据库把数据存储在文件中,这些数据库把数据存储在文件中,这些保存数据库不同信息的
11、文件组成了保存数据库不同信息的文件组成了OracleOracle的物理结构。的物理结构。Oracle 10g体系结构概述体系结构概述数据库的体系结构可以按照逻辑结构和物理结数据库的体系结构可以按照逻辑结构和物理结构来划分构来划分:Oracle 10g体系结构概述体系结构概述pOracleOracle将数据库按照规定的结构划分为不将数据库按照规定的结构划分为不同级别的逻辑单元。这里指的逻辑单元包同级别的逻辑单元。这里指的逻辑单元包括表、视图等常见的数据库组件。括表、视图等常见的数据库组件。p逻辑结构和物理结构是分离的,对物理结逻辑结构和物理结构是分离的,对物理结构的管理可以不影响对逻辑存储结构的
12、访构的管理可以不影响对逻辑存储结构的访问。问。网格结构网格结构 p网格计算是一种新的网格计算是一种新的ITIT结构,它可以开结构,它可以开发出高效低耗的企业信息系统。发出高效低耗的企业信息系统。p使用网格计算,连接并重组许多独立的、使用网格计算,连接并重组许多独立的、模块化的硬件和软件组件。模块化的硬件和软件组件。p网格计算的目的是解决企业信息技术中网格计算的目的是解决企业信息技术中的一些常见问题。与其他计算模型相比,的一些常见问题。与其他计算模型相比,以网格形式设计和实现的系统可以提供以网格形式设计和实现的系统可以提供更高质量的服务、更低的成本和更大的更高质量的服务、更低的成本和更大的灵活性
13、。灵活性。网格结构网格结构 区分网格计算和其他计算方式区分网格计算和其他计算方式:p虚拟(虚拟(VirtualizationVirtualization)相互独立的资源(例如计相互独立的资源(例如计算机、磁盘、应用程序组件和信息资源等)按照类型算机、磁盘、应用程序组件和信息资源等)按照类型组织在一个池中,供用户使用。这种方式打破了资源组织在一个池中,供用户使用。这种方式打破了资源提供者和用户之间的硬编码联系,系统可以根据特定提供者和用户之间的硬编码联系,系统可以根据特定的需要自动准备资源,而用户不需要了解整个过程。的需要自动准备资源,而用户不需要了解整个过程。p提供(提供(Provisioni
14、ngProvisioning)用户通过虚拟层申请资源,用户通过虚拟层申请资源,由系统来决定如何满足用户的特定需求,从而对系统由系统来决定如何满足用户的特定需求,从而对系统进行整体的优化。进行整体的优化。网格结构网格结构 p网络资源管理包括以下内容:网络资源管理包括以下内容:1.1.基础资源基础资源 构成数据存储和程序执行环境的软件和构成数据存储和程序执行环境的软件和硬件。硬件资源包括磁盘、处理器、内存和网络等,硬件。硬件资源包括磁盘、处理器、内存和网络等,软件则包括数据库、存储管理、系统管理、应用服软件则包括数据库、存储管理、系统管理、应用服务器和操作系统等。通过扩展多个计算机的计算能务器和操
15、作系统等。通过扩展多个计算机的计算能力以及多个磁盘或磁盘组的存储能力,可以排除单力以及多个磁盘或磁盘组的存储能力,可以排除单个资源故障所造成的影响,保障系统安全有效地运个资源故障所造成的影响,保障系统安全有效地运行。行。2.2.应用程序应用程序 业务逻辑和处理流程的编码。业务逻辑和处理流程的编码。3.3.信息信息 用户需要的数据。信息可能保存在数据库或用户需要的数据。信息可能保存在数据库或文件系统中,也可能以邮件格式或应用程序自定义文件系统中,也可能以邮件格式或应用程序自定义格式保存。格式保存。网格结构网格结构 pOracle 10gOracle 10g的网格计算能力如下:的网格计算能力如下:
16、1.1.服务器虚拟(服务器虚拟(Server VirtualizationServer Virtualization)OracleOracle实时应用集实时应用集群(群(RACRAC)可以使一个数据库运行在网格的多个节点上,将多可以使一个数据库运行在网格的多个节点上,将多个普通计算机的处理资源集中使用。个普通计算机的处理资源集中使用。OracleOracle在跨计算机分配工在跨计算机分配工作负载的能力方面具有独特的灵活性,因为它是唯一不需要随作负载的能力方面具有独特的灵活性,因为它是唯一不需要随工作进程一起对数据进行分区和分配的数据库技术。工作进程一起对数据进行分区和分配的数据库技术。2.2.
17、存储虚拟(存储虚拟(Storage VirtualizationStorage Virtualization)Oracle 10gOracle 10g的自动存的自动存储管理(储管理(ASMASM)特性提供了数据库和存储之间的一个虚拟层,特性提供了数据库和存储之间的一个虚拟层,这样多个磁盘可以被看作是一个单独的磁盘组,在保证数据库这样多个磁盘可以被看作是一个单独的磁盘组,在保证数据库在线的情况下,磁盘可以动态地加载或移除。在线的情况下,磁盘可以动态地加载或移除。3.3.网格管理网格管理 网格计算将多服务器和多磁盘集成在一起,并且对网格计算将多服务器和多磁盘集成在一起,并且对它们实现动态分配,因此
18、独立的资源可以实现自我管理和集中它们实现动态分配,因此独立的资源可以实现自我管理和集中管理就变得非常重要。管理就变得非常重要。Oracle 10gOracle 10g的网格控制特性提供了将多的网格控制特性提供了将多系统集成管理为一个逻辑组的控制台,可以管理网格中独立的系统集成管理为一个逻辑组的控制台,可以管理网格中独立的节点,集中维护各组系统的配置和安全设置。节点,集中维护各组系统的配置和安全设置。数据库逻辑结构数据库逻辑结构 pOracle Oracle 数据库的逻辑结构包括方案数据库的逻辑结构包括方案(schemaschema)对象、数据块()对象、数据块(data blockdata b
19、lock)、)、区间(区间(extentextent)、段()、段(segmentsegment)和表空)和表空间(间(tablespacetablespace)等。数据库由若干个表)等。数据库由若干个表空间组成,表空间由表组成,表由段组成,空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成。段由区间组成,区间则由数据块组成。数据库逻辑结构数据库逻辑结构 p表空间和表、段、区间、数据块的关系表空间和表、段、区间、数据块的关系 方案方案 p方案是一组数据库对象的集合。在创建方案是一组数据库对象的集合。在创建用户的时候,会同时生成一个与用户同用户的时候,会同时生成一个与用户同名
20、的方案,此方案归同名用户所有。名的方案,此方案归同名用户所有。p方案对象直接处理数据库数据的逻辑结方案对象直接处理数据库数据的逻辑结构,例如表(构,例如表(tabletable)、视图()、视图(viewview)、)、索引(索引(indexindex)和簇()和簇(ClustersClusters)等。)等。方案方案p表表 数据库中最常用的数据存储单元,它包数据库中最常用的数据存储单元,它包括所有用户可以访问的数据。作为关系型数括所有用户可以访问的数据。作为关系型数据库,据库,OracleOracle表由行和列组成。表由行和列组成。列行列名方案方案 p视图视图 虚拟的表,它在物理上并不存在。
21、视图可虚拟的表,它在物理上并不存在。视图可以把表或其他视图的数据按照一定的条件组合起来,以把表或其他视图的数据按照一定的条件组合起来,所以也可以把它看成是一个存储的查询。视图并不所以也可以把它看成是一个存储的查询。视图并不包含数据,它只是从基表中读取数据。包含数据,它只是从基表中读取数据。方案方案p索引索引 与表相关联的可选结构。创建索引与表相关联的可选结构。创建索引可以提高读取数据的效率。索引的功能类可以提高读取数据的效率。索引的功能类似于书的目录一样,读者可以通过目录很似于书的目录一样,读者可以通过目录很快地在书中找到需要的内容,快地在书中找到需要的内容,OracleOracle索引索引提
22、供对表数据的访问路径,从而使用户能提供对表数据的访问路径,从而使用户能够快速定位指定的信息。够快速定位指定的信息。p在图书中,索引就是内容和相应页号的清在图书中,索引就是内容和相应页号的清单。在数据库中,索引就是表中数据和相单。在数据库中,索引就是表中数据和相应存储位置的列表。对于包含了大量数据应存储位置的列表。对于包含了大量数据的表来说,如果没有索引,那么对表中的的表来说,如果没有索引,那么对表中的数据检索时速度可能慢得令人难以忍受。数据检索时速度可能慢得令人难以忍受。p索引是一种可选的数据结构,在一个表上是否索引是一种可选的数据结构,在一个表上是否建立索引,不会对表的使用方式产生任何影响。
23、建立索引,不会对表的使用方式产生任何影响。但是如果在表中的某些字段上建立了索引,能但是如果在表中的某些字段上建立了索引,能够显著地提高对该表的查询速度,并且可以在够显著地提高对该表的查询速度,并且可以在很大程度上减少查询时的硬盘很大程度上减少查询时的硬盘I/OI/O操作。操作。p如果一个表中包含有很多条记录,当对表执行如果一个表中包含有很多条记录,当对表执行查询时,必须将所有的记录一一取出,以便将查询时,必须将所有的记录一一取出,以便将每一条记录与查询条件进行比较,然后再返回每一条记录与查询条件进行比较,然后再返回满足条件的记录。这样进行操作的时间开销和满足条件的记录。这样进行操作的时间开销和
24、I/OI/O开销都是很巨大的,这时可以考虑通过索开销都是很巨大的,这时可以考虑通过索引来减小开销。引来减小开销。p簇簇 有些表共享公共的列,并经常被有些表共享公共的列,并经常被同时访问,为了提高数据存取的效率,把同时访问,为了提高数据存取的效率,把这些表在物理上存储在一起,得到的表的这些表在物理上存储在一起,得到的表的组合就是簇。与索引相似,簇并不影响应组合就是簇。与索引相似,簇并不影响应用程序的设计。用户和应用程序并不关心用程序的设计。用户和应用程序并不关心表是否是簇的一部分,因为无论表在不在表是否是簇的一部分,因为无论表在不在簇中,访问表的簇中,访问表的SQLSQL语句都是一样的。语句都是
25、一样的。数据块数据块 p数据块是数据块是OracleOracle管理数管理数据库存储空间的最小数据库存储空间的最小数据存储单位。据存储单位。p一个数据块对应磁盘上一个数据块对应磁盘上一定数量的数据库空间,一定数量的数据库空间,标准的数据块大小由初标准的数据块大小由初始参数始参数DB_BLOCK_SIZEDB_BLOCK_SIZE指指定。定。p数据块既是逻辑单位,数据块既是逻辑单位,也是物理单位。也是物理单位。数据块的格式数据块的格式p公共的变长头:包含数据块的通用信息,如地公共的变长头:包含数据块的通用信息,如地址块和段类型等。址块和段类型等。p表目录:包含在此块中有行数据的表的信息。表目录:
26、包含在此块中有行数据的表的信息。p行目录:包含此块中实际行数据的信息(包括行目录:包含此块中实际行数据的信息(包括在行数据区中每个行数据片的地址)。在行数据区中每个行数据片的地址)。p空闲空间空闲空间p行数据:包含表或索引数据。行数据的存储可行数据:包含表或索引数据。行数据的存储可以跨越数据块,也即,一行数据可以分别存储以跨越数据块,也即,一行数据可以分别存储在不同的数据块中。在不同的数据块中。区间区间 p区间是数据库存储空间中分配的区间是数据库存储空间中分配的一个逻辑单元,由一组相邻的数一个逻辑单元,由一组相邻的数据块组成,它是据块组成,它是OracleOracle分配磁盘分配磁盘空间的最小
27、单位。空间的最小单位。pMINEXTENTSMINEXTENTS定义了段所能包含的定义了段所能包含的最小区间数量,在创建段时,它最小区间数量,在创建段时,它所包含的区间数量只能为所包含的区间数量只能为MINEXTENTSMINEXTENTS。段段 p段由一组区间组成。段类型说明数据段每个不在簇中的表都有一个数据段。表中的所有数据都存储在数据段的区间中。每个簇都有一个数据段。簇中每个表的数据都存储在簇的数据段中索引段每个索引都有一个索引段,存储所有的索引数据临时段当执行SQL语句需要临时工作区时,Oracle 将创建临时段。执行完毕后,临时段的区间将被系统回收,以备需要时分配使用回滚段如果当前系
28、统处于自动重做管理模式,则数据库服务器使用表空间来管理重做空间。这是Oracle公司推荐使用的模式。但是,如果使用手动重做管理模式,则数据库管理员需要创建一个或多个回滚段,用于临时存储重做信息。回滚段中的信息将在数据库恢复过程中使用到表空间表空间 p数据库可以划分数据库可以划分为若干的逻辑存储为若干的逻辑存储单元,这些存储单单元,这些存储单元被称为表空间。元被称为表空间。p每个数据库都至每个数据库都至少有一个系统表空少有一个系统表空间(称为间(称为SYSTEMSYSTEM表表空间)。空间)。p在创建表时,需在创建表时,需要定义保存表的表要定义保存表的表空间。空间。表空间说明大文件表空间(Big
29、file Tablespaces)Oracle 10g提供的一种新的表空间,它只能包含一个大文件,但文件大小可以达到4G个数据块系统表空间(SYSTEM Tablespace)Oracle数据库必须具备的部分。用于存放表空间名称、表空间所包含的数据文件等管理数据库自身所需要的信息辅助表空间(SYSAUX Tablespace)系统表空间的辅助表空间,很多数据库组件把系统表空间作为存储数据的默认位置撤消表空间(Undo Tablespace)用于事务的回滚和撤销的表空间临时表空间(Temporary Tablespace)用于存储数据库的临时表用户表空间(Users Tablespace)用于存
30、储用户的私有数据表空间表空间p大文件表空间:是大文件表空间:是oracle 10goracle 10g中一种新的中一种新的表空间类型。只能包含一个单独的大文件,表空间类型。只能包含一个单独的大文件,而不是若干个小文件,所以不需要考虑增而不是若干个小文件,所以不需要考虑增加数据文件和处理多个文件的开销。加数据文件和处理多个文件的开销。在创建表空间时,系统默认创建小文件在创建表空间时,系统默认创建小文件表空间表空间(smallfile tablespace),(smallfile tablespace),这是传这是传统的统的oracleoracle表空间类型。系统表空间和辅表空间类型。系统表空间和
31、辅助表空间只能使用小文件表空间创建。助表空间只能使用小文件表空间创建。p系统表空间:每个系统表空间:每个oracleoracle数据库都包含一数据库都包含一个个SYSTEMSYSTEM表空间,当数据库创建时,它会表空间,当数据库创建时,它会自动创建;当数据库打开时,它始终在线。自动创建;当数据库打开时,它始终在线。包含整个数据库的数据字典表。包含整个数据库的数据字典表。p辅助表空间:数据库组件将辅助表空间:数据库组件将SYSAUXSYSAUX表空间表空间作为存储数据的默认位置,当数据库创建作为存储数据的默认位置,当数据库创建或升级时,它会自动创建。在进行普通的或升级时,它会自动创建。在进行普通
32、的数据库操作时,数据库操作时,OracleOracle数据库服务器不允数据库服务器不允许删除许删除SYSAUXSYSAUX表空间,也不能对其进行改表空间,也不能对其进行改名操作。名操作。p撤销表空间:每个数据库中都可以包含多撤销表空间:每个数据库中都可以包含多个个undoundo表空间,在自动撤销管理模式中,表空间,在自动撤销管理模式中,每个每个OracleOracle实例都指定了唯一一个实例都指定了唯一一个undoundo表表空间。空间。UndoUndo区间由区间由OracleOracle自动创建并维护。自动创建并维护。p临时表空间:如果系统表空间是本地的,临时表空间:如果系统表空间是本地的
33、,则在创建数据库时至少要创建一个默认的则在创建数据库时至少要创建一个默认的临时表空间。如果删除所有的临时表空间,临时表空间。如果删除所有的临时表空间,则则SYSTEMSYSTEM表空间被用作临时表空间。表空间被用作临时表空间。p在线和离线表空间:除了在线和离线表空间:除了SYSTEMSYSTEM表空间外,表空间外,数据库管理员可以将其他任何表空间设置数据库管理员可以将其他任何表空间设置为在线和离线状态。为在线和离线状态。p表空间和方案的关系:表空间和方案的关系:同一方案中的对象可以存储在不同的同一方案中的对象可以存储在不同的 表空间中。表空间中。表空间可以存储不同方案中的对象。表空间可以存储不
34、同方案中的对象。表空间表空间p数据库、表空间和数据文件的关系数据库、表空间和数据文件的关系p每个表空间由一个或多个数据文件组成。数据文件用于在每个表空间由一个或多个数据文件组成。数据文件用于在物理上存储表空间中所有逻辑结构的数据。物理上存储表空间中所有逻辑结构的数据。p表空间中数据文件的大小之和就是表空间的存储容量(图表空间中数据文件的大小之和就是表空间的存储容量(图中系统表空间存储容量为中系统表空间存储容量为2MB2MB,用户表空间的存储容量为,用户表空间的存储容量为4MB4MB)。)。p数据库中表空间的存储容量之和就是数据库的存储容量。数据库中表空间的存储容量之和就是数据库的存储容量。数据
35、库物理结构数据库物理结构 p物理结构由构成数据库的操作系统文物理结构由构成数据库的操作系统文件所决定。件所决定。p每个每个OracleOracle数据库都由数据库都由3 3种类型的文件种类型的文件组成:数据文件、日志文件和控制文组成:数据文件、日志文件和控制文件。件。数据文件数据文件 pOracleOracle数据库有一个或多个物理的数数据库有一个或多个物理的数据文件。数据库的数据文件包含全部据文件。数据库的数据文件包含全部数据库数据。逻辑数据物理地存储在数据库数据。逻辑数据物理地存储在数据文件中。数据文件有下列特征:数据文件中。数据文件有下列特征:1.1.一个数据文件仅与一个数据库联系。一个
36、数据文件仅与一个数据库联系。2.2.当数据库容量越界时,数据文件能够自动扩展。当数据库容量越界时,数据文件能够自动扩展。3.3.一个或多个数据文件组成一个表空间。一个或多个数据文件组成一个表空间。日志文件日志文件 p每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。p日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改记录在日志中。p为了防止日志文件本身的故障,Oracle允许镜像日志,在不同磁盘上维护两个或多个日志副本。控制文件控制文件 p 每每个个OracleOracle数数据据库库有有一一个个控控制制文文件,记录数据库的物理结构。件,记录数据库的物理结构。p 控控
37、制制文文件件包包含含数数据据库库名名、数数据据库库数数据据文文件件和和日日志志文文件件的的名名字字、位位置置和数据库建立日期等信息。和数据库建立日期等信息。控制文件控制文件 控制文件控制文件(Control FileControl File)是一个较小的二进制文是一个较小的二进制文件,用于描述数据库结构。件,用于描述数据库结构。描述信息如下:描述信息如下:p数据库建立的日期。数据库建立的日期。p数据库名。数据库名。p数据库中所有数据数据库中所有数据文件和日志文件的文件和日志文件的文件名及路径。文件名及路径。p恢复数据库时所需恢复数据库时所需的同步信息。的同步信息。要点注意:要点注意:p在打开和
38、存取数据库时在打开和存取数据库时都要访问该文件。都要访问该文件。p记录控制文件名及路径记录控制文件名及路径的参数为:的参数为:CONTROL_FILES数据库例程数据库例程 p每个运行的每个运行的OracleOracle数据库都对应一个数据库都对应一个OracleOracle例程(例程(InstanceInstance),也可以称为),也可以称为实例。实例。p当数据库服务器上的一个数据库启动时,当数据库服务器上的一个数据库启动时,OracleOracle将分配一块内存区间,叫做系统将分配一块内存区间,叫做系统全局区(全局区(SGASGA),并启动一个或多个),并启动一个或多个OracleOra
39、cle进程。进程。pSGASGA和和OracleOracle进程结合在一起,就是一个进程结合在一起,就是一个OracleOracle例程。例程。例程例程(instance)(instance)p Oracle Oracle数据库结构又称为例程结构数据库结构又称为例程结构.p 数据库启动时:数据库启动时:Oracle首先要在内存中获取、划分、保留各种用途的区域,运行各种用途的后台,即:创建一个例程(instance);然后由该例程装载(mount)、打开(open)数据库;最后由这个例程来访问和控制数据库的各种物理结构p如果把如果把OracleOracle数据库比作一部汽车,数据库比作一部汽车,
40、instanceinstance相当于汽车的发动机一样相当于汽车的发动机一样,启动启动oracleoracle数据库前数据库前提应先启动提应先启动instance.instance.p当用户连接到数据库并使用数据库时,实际当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连上是连接到该数据库的例程,通过例程来连接、使用数据库。接、使用数据库。p所以例程是用户和数据库之间的中间层。所以例程是用户和数据库之间的中间层。p例程与数据库的区别:例程与数据库的区别:数据库指的是存储数据的物理结构,总是实际存在的;例程则是由内存结构和一系列进程组成,可以启动和关闭。内部存储结构内部
41、存储结构 p内存结构是内存结构是OracleOracle数据库体系中最为重要数据库体系中最为重要的一部分,内存也是影响数据库性能的第的一部分,内存也是影响数据库性能的第一因素一因素.p按照内存的使用方法的不同按照内存的使用方法的不同,Oracle,Oracle数据库数据库的内存又可以分为的内存又可以分为SGA(System Global SGA(System Global Area)Area)和和PGA(Program Global Area).PGA(Program Global Area).内存结构内存结构p系统全局区(系统全局区(System Global AreaSystem Glob
42、al Area,SGASGA)p程序全局区(程序全局区(Program Global AreaProgram Global Area,PGAPGA)系统全局区系统全局区(SGA)(SGA)SGA是是ORACLEORACLE系统为实例分配的一组共享缓系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。以实现对数据库数据的管理和操作。每个例程都只有一个每个例程都只有一个SGA.SGA.它是不同用户进程与服务进程进行通信的它是不同用户进程与服务进程进行通信的中心中心,数据库的各种操作主要在数据库的各种操作主要在SG
43、ASGA中进行中进行,所所以称其为系统全局区以称其为系统全局区.创建例程时创建例程时,Oracle,Oracle为为SGASGA分配内存分配内存;终止例程时终止例程时,释放释放SGASGA所占用的内存所占用的内存.数据库缓冲区数据库缓冲区(Database Buffer Cache)(Database Buffer Cache)p保存最近从数据文件中读取的数据块保存最近从数据文件中读取的数据块,其其中的数据被所有用户共享中的数据被所有用户共享.p两个参数影响两个参数影响DBCDBC:DB_BLOCK_SIZE 缓冲区数据块大小 DB_BLOCK_BUFFERS 缓冲区数据块个数重做日志缓冲区重
44、做日志缓冲区p当执行当执行DML(Data Manipulation Language,DML(Data Manipulation Language,数据操纵语言数据操纵语言)如如:update:update、deletedelete、insertinsert或或者者createcreate、alteralter、drop drop 等语句时等语句时,Oracle,Oracle都会都会为这些操作生成重做记录为这些操作生成重做记录.p重做日志高速缓冲区就是用于存储重做记重做日志高速缓冲区就是用于存储重做记录的缓存录的缓存.重做日志缓存工作原理重做日志缓存工作原理日志写进程日志写进程归档进程归档进
45、程p为提高效率为提高效率,重做记录并不直接写入磁盘的重做日志文件重做记录并不直接写入磁盘的重做日志文件,而而是先写入重做日志缓存是先写入重做日志缓存;p当重做日志缓存中的重做记录达到一定数量时当重做日志缓存中的重做记录达到一定数量时,由由LGWRLGWR进进程写入重做日志程写入重做日志.(.(先内存后磁盘先内存后磁盘)共享池共享池(Shared Pool)(Shared Pool)共享池保存了最近执行的共享池保存了最近执行的SQLSQL语句、语句、PL/SQLPL/SQL程序和数据字典信息程序和数据字典信息,是对是对SQLSQL语语句和句和PL/SQLPL/SQL程序进行语法分析、编译、程序进
46、行语法分析、编译、执行的内存区执行的内存区.JavaJava池池 8i 8i以后提供的对以后提供的对JavaJava的支持的支持,用于存放用于存放JavaJava代代码、码、JavaJava程序等程序等.一般不小于一般不小于20M,20M,以便虚拟机运行以便虚拟机运行.大池大池大池用于需要大内存操作提供相对独立的内存空间,大池用于需要大内存操作提供相对独立的内存空间,以便提高性能。以便提高性能。大池是可选的内存结构。大池是可选的内存结构。DBA DBA可以决定是否需要在可以决定是否需要在SGASGA中创建大池。中创建大池。需要大池的操作需要大池的操作:数据库备份和恢复数据库备份和恢复 大量排序
47、的大量排序的SQLSQL语句语句 并行化的数据库操作并行化的数据库操作数据字典缓冲区数据字典缓冲区在在OracleOracle运行过程中运行过程中,Oracle,Oracle会频繁的对数据字典中会频繁的对数据字典中的表、视图进行访问,以便确定操作的数据对的表、视图进行访问,以便确定操作的数据对象是否存在、是否具有合适的权限等信息。象是否存在、是否具有合适的权限等信息。数据字典缓冲区保存了最常用的数据字典信数据字典缓冲区保存了最常用的数据字典信息。息。数据字典缓存中存放的记录是一条一条的数据字典缓存中存放的记录是一条一条的,而其他缓存区中保存的是数据块而其他缓存区中保存的是数据块.PGA(Pro
48、gram Global Area)PGA(Program Global Area)PGA PGA是用户进程连接到数据库是用户进程连接到数据库,并创建一个对并创建一个对应的会话时,由应的会话时,由OracleOracle为服务进程分配的,专为服务进程分配的,专门用于当前用户会话的内存区。门用于当前用户会话的内存区。PGA PGA是非共享的,而是非共享的,而SGASGA是共享的。是共享的。PGA PGA大小由操作系统决定,并且分配后保持大小由操作系统决定,并且分配后保持不变;不变;会话终止时,自动释放会话终止时,自动释放PGAPGA所占的内存。所占的内存。1.2.7 进程结构进程结构进程是操作系统
49、中的一个概念,是一个可进程是操作系统中的一个概念,是一个可以独立调用的活动,用于完成指定的任务。以独立调用的活动,用于完成指定的任务。进程与程序的区别是:进程与程序的区别是:进程是动态创建的,完成后销毁;程序是静态的实体,可以复制、编辑。进程强调执行过程,程序仅仅是指令的有序集合。进程在内存中,程序在外存中。进程结构进程结构 p用户进程用户进程 运行应用程序或运行应用程序或OracleOracle工具。工具。pOracleOracle进程进程 运行运行OracleOracle服务服务器代码。器代码。OracleOracle进程包括服务器进程包括服务器进程和后台进程。进程和后台进程。用户进程用户
50、进程 当用户运行一个应用程序时,就建立当用户运行一个应用程序时,就建立一个用户进程。一个用户进程。服务进程服务进程服务进程 处理用户进程的请求。处理用户进程的请求。处理过程分析SQL命令并生成执行方案。从数据缓冲存储区中读取数据。将执行结果返回给用户。后台进程后台进程后台进程 为所有数据库用为所有数据库用户异步完成各种户异步完成各种任务。任务。主要的后台进程有主要的后台进程有 DBWn 数据库写进程 LGWR 日志写进程 CKPT 检查点写进程 SMON 系统监控进程 PMON 进程监控进程 ARCH 归档进程 RECO 恢复进程 LCKn 封锁进程应用程序结构应用程序结构 p客户客户/服务器