《Oracle Database 11g应用与开发教程 教学课件 ppt 作者 978-7-302-31490-5 第3章 Oracle Database的体系结构》由会员分享,可在线阅读,更多相关《Oracle Database 11g应用与开发教程 教学课件 ppt 作者 978-7-302-31490-5 第3章 Oracle Database的体系结构(41页珍藏版)》请在金锄头文库上搜索。
1、第1页,授课教师:姚瑶 职务:讲师,Oracle 11g数据库应用教程,第2页,第3章 Oracle Database的体系结构,Oracle Database 11g具有丰富的、强大的体系结构。Oralce数据库的体系结构决定了Oracle如何使用网络、磁盘和内存。本章从四个方面介绍Oracle的体系结构,分别是数据库的物理存储结构、逻辑存储结构、进程结构和内存结构。最后简要的介绍了Oracle中的数据字典的相关内容。 本章的学习目标: 掌握Oracle Database的存储结构,包括物理存储结构和逻辑存储结构 掌握Oracle Database的进程结构 掌握Oracle Databas
2、e的内存结构 了解Oracle数据字典,第3页,3.1 存储结构,Oracle数据库的存储结构分为物理存储结构和逻辑存储结构,这两种存储结构既相互独立又相互联系(如图3-1所示)。对于DBA而言,必须对这两种存储结构有清晰的理解,并且要清楚在一个具体数据库应用系统中,这两种存储结构的具体对应关系,否则就不能进行正常的管理操作、数据库备份与恢复、性能优化等。本节重点介绍上述两种存储结构。,图3-1 物理存储结构和逻辑存储结构之间的联系,第4页,3.1.1 物理存储结构 物理存储结构主要描述Oracle数据库的外部存储结构,即在操作系统中如何组织、管理数据,它是数据库的物理载体。因此,物理存储结构
3、是和操作系统平台有关的。从物理上看,数据库由数据文件、控制文件、重做日志文件等操作系统文件组成。,1. 数据文件,Oracle数据库有一个或多个物理的数据文件。数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件其特点如下: 每一个数据文件只与一个数据库相联系。 一个表空间可包含一个或多个数据文件,一个数据文件只能属于一个表空间。 当数据库容量越界时,数据文件能够自动扩展。,第5页,进行数据库操作时,系统将从数据文件中读取数据,并存储在Oracle的内存缓冲区中。新建或更新的数据不必立即写入到数据文件中,而是把数据临时存放到内存中,由数
4、据库写入进程(DBWn)决定在适当的时间一次性写入到数据文件中。这样可以大大降低访问磁盘的次数,从而提高系统性能。 数据文件的扩展名是.dbf。数据文件和表空间是紧密联系在一起的。表空间是一个数据文件或多个数据文件在逻辑上的统一组织,离开了表空间,则数据文件就成了垃圾文件;而数据文件是表空间在物理上的存在形式,没有数据文件的存在表空间就失去了存在的物理基础。如果要了解数据文件的信息,可以查询数据字典“DBA_DATA_FILES”和数据字典“V$DATAFILE”。字典“DBA_DATA_FILES”描述了全部数据文件的名称、文件标识、大小、对应的表空间信息、自动扩展信息,而字典“V$DATA
5、FILE”描述了数据文件的同步信息。,第6页,数据文件的大小可以有两种方式:字节和数据块。数据块是Oracle数据库中数据读写的基本单位,一个数据块对应多个操作系统块。在数据中读写一个数据块时,在操作系统中对应着多个操作系统块的读写。 随着数据块的运行,数据文件中的数据可能越来越多,并最终耗尽数据文件的存储空间。为了存储更多的数据,数据文件的存储空间必须能够扩展。Oracle提供了三种扩展数据文件存储空间的方法。第一种方法是在当前表空间中增加新的数据文件,新数据将被存储在新的数据文件中。第二种方法是手工扩展表空间中的数据文件,在原来的存储空间的基础上,增加一定数量的存储空间。第三种方法是激活数
6、据文件的自动扩展功能,数据库服务器将自动为数据文件分配新的存储空间。,第7页,2. 控制文件,控制文件是数据库中另一种重要的文件,它的功能是记录数据库的结构和状态。它是一个很小的二进制文件,用户无法查看和修改文件的内容。控制文件维护着数 据库的全局物理结构,用以支持数据库成功的启动和运行。 数据库在启动时需要根据控制文件的内容,查找数据并打开它们。在启动数据库服务器时,首先启动实例,然后才能打开数据库。数据库服务器是通过控制文件在实例和数据库之间建立对应关系的。控制文件中记录了下列信息类型: 数据库名称 数据库数据文件和日志文件的名称和位置 数据库建立日期 表空间信息 数据文件脱机范围 日志历
7、史 归档日志信息 备份组和备份块信息 备份数据文件和重做日志信息 数据文件拷贝信息 当前日志序列数 检查点信息(CHECKPOINT),第8页,在数据库运行的过程中,对数据库结构所作的任何修改都将记录在控制文件中。所以,只要数据库是打开状态的,控制文件就必须处于可写状态。如果,由于某些原因控制文件不能被访问,那么数据库也就不能正常工作了。在一个数据库中至少需要一个控制文件,Oracle建议至少创建两个控制文件,并将它们分别存储在两个磁盘上,这两个文件互相镜像,如果一个文件损坏,数据库服务器可以使用另外一个文件。在正常情况下,这两个文件的内容是完全一样的,数据库服务器只需要从其中一个文件中读取信
8、息,但是对数据库结构所做的任何修改都必须同时写入两个控制文件。,3. 重做日志文件 重做日志文件用于记录对数据库的所有修改信息,包括用户对数据的修改,以及管理员对数据库结构的修改。重做日志文件保证了数据库的安全和数据库的备份与恢复。,第9页,重做日志文件帮助Oracle确保用户事务效果的持久性,即使出现计算机故障也不会改变。在更改数据文件中的任意数据之前,日志写入器(LGWR)进程在重做日志文件中存储旧数据(撤销信息)和新数据(重做信息)的一个副本。当计算机出现故障时,Oracle能根据重做日志文件撤销未完成事务(未提交事务)的效用,并检验已完成事务(已提交事务)的变更。 重做日志文件的大小由
9、数据库管理员决定。一般所有重做日志文件的大小相同,但这不是必须的。在每个Oracle数据库中,至少有两个重做日志文件组,每组有一个或多个重做日志成员,一个重做日志成员物理地对应一个重做日志文件。在现实作业系统中为确保日志的安全,通常要镜像每个重做日志文件。在同一个日志文件组中,其日志成员的镜像个数最多可达到5个。Oracle以循环方式使用重做日志文件:当一个重做日志文件写满时,Oracle填写下一个,如此循环。,第10页,4. 其他文件 Oracle系统运行时,除了必需的数据文件、控制文件和重做日志文件以外,还有一些其他文件,例如配置文件、临时文件、跟踪和警告文件、备份文件以及归档日志文件等。
10、 (1)配置文件 最重要的数据库配置文件是包含数据库启动需使用的设置的文件,用于存储SGA(系统全局区)、可选的Oracle特性和后台进程的配置参数。有两种版本,一种为文本文件,称为pfile;另一种为二进制文件spfile,称为服务器参数文件。前者可以使用文本编辑器进行编辑,后者不能直接用文本编辑器进行编辑。 (2)临时文件 每个Oracle服务器进程都使用内存中一个名为程序全局区(Program Global Area)的专门的工作区来保存中间结果(如需排序的数据)。临时文件用于内存不充足时的中间存储。,第11页,(3)跟踪文件和警告文件 每一个服务器和后台进程都可以写入一个相关的跟踪日志
11、文件。比如当系统发现某一个进程有问题的时候,相关的信息就会写到相应的跟踪文件中。可以从数据库的跟踪文件来发现和调试数据库的错误。 警告文件,也称警告日志,是一个特别的跟踪文件,它记录着数据库启动、运行中的相关信息,它是按时间顺序进行记录的。 (4)备份文件 还原一个文件的过程就是用一个备份文件(BACKUP FILE)来替换它。典型情况下,在介质失败或者用户失误导致原有文件损坏或删除的情况下,就需要对其进行恢复。 用户管理的备份和恢复实际上就是要求用户在试图恢复备份的时候先还原备份文件,服务器管理的备份和恢复功能管理备份过程。 (5)归档重做日志文件 归档重做日志文件(ARCHIVE LOG
12、FILE)是对写满的重做日志文件进行复制并保存生成的文件。可以通过设置数据库在归档后自动地保存日志文件。归档进程(ARCO)在后台负责把写满的重做日志文件复制到归档日志目标中。归档日志文件在数据库恢复时起决定性作用。,第12页,3.1.2 逻辑存储结构,逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库中如何组织、管理数据。因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和管理的。一般可以通过查询Oracle数据库的数据字典找到逻辑存储结构的描述。 从逻辑结构上来讲,一个数据库包含若干个表空间,不同类型的数据存储在不同的表空间中,如
13、系统数据、用户数据、临时数据和回滚数据等分别存储在不同的表空间中。表空间中包含若干个段,同一个表空间中的数据又可进一步根据类型不同而存储在不同的段中,如数据段、索引段、临时段等。一个段中又可以包含若干个区,区是Oracle分配存储空间和回收存储空间的基本单位。区是由连续的多个数据块组成的,数据块是Oracle读写数据库的基本单位。表空间、段、区和数据块组成了数据库的逻辑结构。(如图3-2所示),第13页,1. 表空间 表空间是数据库的逻辑划分,一个数据库在逻辑上由多个表空间组成。表空间相当于一个容器,用于将不同类型的数据组织在一起。表空间中的数据在物理上是存储在数据文件中的,一个表空间对应一个
14、或多个数据文件。如果表空间只包含一个数据文件,那么所有数据都将存储在这个数据文件中。如果表空间对应多个数据文件,那么数据将被划分为几部分,分别存放在这些数据文件中。表空间与数据文件的关系如图3-3所示。,图3-2 逻辑存储结构示意图,图3-3 表空间与数据文件,第14页,从图3-3可以看出: 一个表空间有一个或多个数据文件,数据文件用于在物理上存储表空间中所有逻辑结构的数据; 表空间中数据文件的大小之和就是表空间的存储容量; 数据库中表空间的存储容量之和就是数据库的存储容量。 在数据库中引入表空间的优点有以下几点: 将系统数据和用户数据分开,有利于保护重要数据; 可以限制用户对磁盘存储空间的使
15、用; 将临时数据与用户数据分开,从而减少用户数据存储区的碎片,提高数据库的性能; 能够将不同类型的数据分别存放在不同的磁盘上,以减少磁盘的读写冲突。可以将访问频繁的数据存储在速度相对较快的磁盘上,从而在整体上提高数据库的性能。 各个表空间可以被单独设置为联机或脱机状态,这样可以在数据库正常运行的情况下,将单个表空间置于脱机状态,并对其进行备份或恢复。,第15页,Oracle Database 11g包含以下几种类型的表空间: (1)系统表空间(SYSTEM Tablespace) 系统表空间(SYSTEM Tablespace)是Oracle数据库必须具备的部分。用于存放表空间名称、表空间所包
16、含的数据文件等管理数据库自身所需要的信息,如数据字典,数据库对象的定义、PL/SQL存储程序的代码、SYSTEM回滚段等。 (2)辅助表空间(SYSAUX Tablespace) 辅助表空间也是数据库中一个必需的表空间,它是在创建数据库时自动被创建的,是对SYSTEM表空间的辅助表空间,以前存储在SYSTEM表空间中的数据现在存储在SYSAUX表空间中,从而减轻了SYSTEM表空间的负担。另外,许多以前需要单独表空间的数据现在都可以存储在SYSAUX表空间中,从而减少了需要维护的表空间的数目。 (3)撤销表空间(UNDO Tablespace) 撤销表空间(UNDO Tablespace)用于事务的回滚和撤销的表空间。每个数据库可以包含多个UNDO表空间,在自动撤销管理模式中,每个Oracle实例都指定了一个(且只有一个)UNDO表空间。撤销的数据在UNDO表空间中使用UNDO区间来管理,UNDO区间由Oracle自动创建并维护。 在Oracle中,可以将对数据库的添加、修改和删除等操作定义在事务中。事务中的数据库操作是可以撤销的,当事务中的数据库操作运行