Oracle数据库的体系结构.ppt

上传人:b****1 文档编号:1400898 上传时间:2022-10-22 格式:PPT 页数:33 大小:388.50KB
下载 相关 举报
Oracle数据库的体系结构.ppt_第1页
第1页 / 共33页
Oracle数据库的体系结构.ppt_第2页
第2页 / 共33页
Oracle数据库的体系结构.ppt_第3页
第3页 / 共33页
Oracle数据库的体系结构.ppt_第4页
第4页 / 共33页
Oracle数据库的体系结构.ppt_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

Oracle数据库的体系结构.ppt

《Oracle数据库的体系结构.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库的体系结构.ppt(33页珍藏版)》请在冰豆网上搜索。

Oracle数据库的体系结构.ppt

2,第2章Oracle数据库的体系结构,本章要点:

了解Oracle的物理存储结构。

了解Oracle的逻辑存储结构。

了解Oracle进程结构。

了解Oracle内存结构。

熟悉Oracle中的数据字典。

理解数据字典的作用。

3,2.1物理存储结构,Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。

一般Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。

4,2.1.1数据文件,数据文件(DataFile)是指存储数据库数据的文件。

数据文件一般有以下几个特点。

(1)一个表空间由一个或多个数据文件组成。

(2)一个数据文件只对应一个数据库。

而一个数据库通常包含多个数据文件。

(3)数据文件可以通过设置其自动扩展参数,实现其自动扩展的功能。

如果想要了解数据文件的信息,可以查询数据字典dba_data_files和v$datafile。

其中,dba_data_files主要有如下字段。

file_name:

数据文件的名称以及存放路径。

file_id:

数据文件在数据库中的ID号。

tablespace_name:

数据文件对应的表空间名。

bytes:

数据文件的大小。

blocks:

数据文件所占用的数据块数。

status:

数据文件的状态。

autoextensible:

数据文件是否可扩展。

5,2.1.1数据文件,另一个数据字典v$datafile则记录了数据文件的动态信息,它主要有如下字段。

file#:

存放数据文件的编号。

status:

数据文件的状态。

checkpoint_change#:

数据文件的同步号,随着系统的运行自动修改,以维持所有数据文件的同步。

bytes:

数据文件的大小。

blocks:

数据文件所占用的数据块数。

name:

数据文件的名称以及存放路径。

6,2.1.2控制文件,控制文件(ControlFile)是一个很小的二进制文件,用于描述和维护数据库的物理结构。

在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。

【例2.3】使用数据字典v$controlfile,查看当前数据库的控制文件的名称与路径,具体如下:

SQLCOLUMNnameFORMATA50;SQLSELECTnameFROMv$controlfile;NAME-E:

APPADMINISTRATORORADATAORCLCONTROL01.CTLE:

APPADMINISTRATORORADATAORCLCONTROL02.CTLE:

APPADMINISTRATORORADATAORCLCONTROL03.CTL,7,2.1.3重做日志文件,重做日志文件(RedoLogFile)是记录数据库中所有修改信息的文件,简称日志文件。

日志文件是数据库系统的最重要的文件之一,它可以保证数据库安全,是进行数据库备份与恢复的重要手段。

如果日志文件受损,数据库同样可能会无法正常运行。

Oracle中的日志文件组是循环使用的,当所有日志文件组的空间都被填满后,系统将重新切换到第一个日志文件组。

发生日志切换时,日志文件组中已有的日志信息是否被覆盖,取决于数据库的运行模式。

8,2.1.4其他文件,1参数文件参数文件用于记录Oracle数据库的基本参数信息,主要包括数据库名和控制文件所在路径等。

参数文件分为文本参数文件和服务器参数文件。

2备份文件文件受损时,可以借助于备份文件对受损文件进行恢复。

对文件进行还原的过程,就是用备份文件替换该文件的过程。

3归档重做日志文件归档重做日志文件用于对写满的日志文件进行复制并保存,具体功能由归档进程ARCn实现,该进程负责将写满的重做日志文件复制到归档日志目标中。

4警告、跟踪日志文件当一个进程发现了一个内部错误时,它可以将关于错误的信息存储到它的跟踪文件中。

而警告文件则是一种特殊的跟踪文件,它包含错误事件的说明,而随之产生的跟踪文件则记录该错误的详细信息。

9,2.2逻辑存储结构,Oracle数据库的逻辑存储结构如图2-1所示。

10,2.2.1表空间(Tablespace),表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,表空间的大小等于构成该表空间的所有数据文件大小的总和。

在安装Oracle时,Oracle数据库系统一般会自动创建一系列表空间(如system)。

可以通过数据字典dba_tablespaces查看表空间的信息。

11,2.2.1表空间(Tablespace),12,2.2.2段(Segment),按照段中所存储数据的特征,可以将段分为4种类型1数据段2索引段3临时段4回退段,13,2.2.3区(Extent),在Oracle数据库中,区是磁盘空间分配的最小单位,由一个或多个数据块组成。

当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的区。

一个或多个区组成一个段,所以段的大小由区的个数决定。

不过,一个数据段可以包含的区的个数并不是无限制的,它由如下两个参数决定。

minextents:

定义段初始分配的区的个数,也就是段最少可分配的区的个数。

maxextents:

定义一个段最多可以分配的区的个数。

14,2.2.4数据块(Block),数据块(也可以简称为块)是用来管理存储空间的最基本单位,也是最小的逻辑存储单位。

Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。

数据块都具有相同的结构,其结构如图2-2所示。

块的默认大小,由初始化参数db_block_size指定,数据库创建完成之后,该参数值无法再修改。

通过SHOWPARAMETER语句可以查看该参数的信息,如下:

SQLSHOWPARAMETERdb_block_size;NAMETYPEVALUE-db_block_sizeinteger8192,15,2.3Oracle进程结构,Oracle数据库启动时,会启动多个Oracle后台进程,后台进程是用于执行特定任务的可执行代码块,在系统启动后异步地为所有数据库用户执行不同的任务。

通过查询数据字典v$bgprocess,可以了解数据库中启动的后台进程信息。

16,2.3.1DBWn进程,DBWn(DatabaseWriter,数据库写入)进程,是Oracle中采用LRU(LeastRecentlyUsed,最近最少使用)算法将数据缓冲区中的数据写入数据文件的进程。

DBWn进程主要有如下几个作用:

管理数据缓冲区,以便用户进程总能找到空闲的缓冲区。

将所有修改后的缓冲区数据写入数据文件。

使用LRU算法将最近使用过的块保留在内存中。

通过延迟写来优化磁盘I/O读写。

17,2.3.1DBWn进程,其工作过程如下。

(1)当一个用户进程产生后,服务器进程查找内存缓冲区中是否存在用户进程所需要的数据。

(2)如果内存中没有需要的数据,则服务器进程从数据文件中读取数据。

这时,服务器进程会首先从LRU中查找是否有存放数据的空闲块。

(3)如果LRU中没有空闲块,则将LRU中的DIRTY数据块移入DIRTYLIST(弄脏表)。

(4)如果DIRTYLIST超长,服务器进程将会通知DBWn进程将数据写入磁盘,刷新缓冲区。

(5)当LRU中有空闲块后,服务器进程从磁盘的数据文件中读取数据并存放到数据缓冲区中。

18,2.3.2LGWR进程,LGWR(LogWriter,日志写入)进程,是负责管理日志缓冲区的一个后台进程,用于将日志缓冲区中的日志数据写入磁盘的日志文件中。

LGWR进程将日志信息同步地写入在线日志文件组的多个日志成员文件中,如果日志文件组中的某个成员文件被删除或者不可使用,则LGWR进程可以将日志信息写入该组的其他文件中,从而不影响数据库正常运行,但会在警告日志文件中记录错误。

19,2.3.3CKPT进程,CKPT(CheckPoint,检查点或检验点)进程,一般在发生日志切换时自动产生,用于缩短实例恢复所需的时间。

在检查点期间,CKPT进程更新控制文件与数据文件的标题,从而反映最近成功的SCN(SystemChangeNumber,系统更改号)。

在Oracle数据库中,控制检查点产生的参数有如下两种。

log_checkpoint_timeoutlog_checkpoint_interval,20,2.3.4SMON进程,SMON(SystemMonitor,系统监控)进程,用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件中的条目应用于数据文件,执行崩溃恢复。

SMON进程一般用于定期合并字典管理的表空间中的空闲空间,此外,它还用于在系统重新启动期间清理所有表空间中的临时段。

21,2.3.5PMON进程,PMON(ProcessMonitor,进程监控)进程,用于在用户进程出现故障时执行进程恢复操作,负责清理内存存储区和释放该进程所使用的资源。

PMON进程周期性检查调度进程和服务器进程的状态,如果发现进程已死,则重新启动它。

PMON进程被有规律地唤醒,检查是否需要使用,或者其他进程发现需要时也可以调用此进程。

22,2.3.6ARCn进程,ARCn(ArchiveProcess,归档)进程,用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。

一个Oracle数据库实例中,允许启动的ARCn进程的个数由参数log_archive_max_processes决定。

23,2.3.7RECO进程,RECO(Recovery,恢复)进程存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。

当一个数据库服务器的RECO进程试图与一个远程服务器建立通信时,如果远程服务器不可用或者无法建立网络连接,则RECO进程将自动在一个时间间隔之后再次连接。

24,2.4Oracle内存结构,Oracle内存结构是影响数据库性能的主要因素之一,其结构如图2-3所示。

25,2.4.1系统全局区(SGA),系统全局区(SystemGlobalArea,SGA)是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。

1数据缓冲区数据缓冲区用于存储从磁盘数据文件中读取的数据,供所有用户共享。

由于系统读取内存的速度要比读取磁盘快得多,所以数据缓冲区的存在可以提高数据库的整体效率。

2日志缓冲区日志缓冲区用于存储数据库的修改操作信息。

3共享池共享池用于保存最近执行的SQL语句、PL/SQL程序的数据字典信息,它是对SQL语句和PL/SQL程序进行语法分析、编译和执行的内存区域。

共享池主要包括如下两种子缓存。

库缓存(LibraryCache)数据字典缓存(DataDictionaryCache)4大型池大型池,用于提供一个大的缓冲区供数据库的备份与恢复操作使用,它是SGA的可选区域。

5Java池Java池,用于在数据库中支持Java的运行。

26,2.4.2程序全局区(PGA),程序全局区(ProgramGlobalArea,PGA)是Oracle系统分配给一个进程的私有内存区域。

程序全局区的大小由参数pga_aggregate_target决定,可以通过SHOWPARAMETER语句查看该参数的信息,如下:

SQLSHOWPARAMETERpga_aggregate_target;NAMETYPEVALUE-pga_aggregate_targetbiginteger20M,27,2.5数据字典,数据字典是由Oracle自动创建并更新的一组表,它是Oracle数据库的重要组成部分,提供了数据库结构、数据库对象空间分配和数据库用户等有关的信息。

数据字典的所有者为sys用户,而数据字典表和数据字典视图都被保存在system表空间中。

28,2.5.1Oracle数据字典

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1