Oracle数据库的体系结构经典课件

上传人:花****园 文档编号:243648564 上传时间:2024-09-28 格式:PPT 页数:33 大小:160.50KB
返回 下载 相关 举报
Oracle数据库的体系结构经典课件_第1页
第1页 / 共33页
Oracle数据库的体系结构经典课件_第2页
第2页 / 共33页
Oracle数据库的体系结构经典课件_第3页
第3页 / 共33页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第2章 Oracle数据库的体系结构,本章要点:,了解Oracle的物理存储结构。,了解Oracle的逻辑存储结构。,了解Oracle进程结构。,了解Oracle内存结构。,熟悉Oracle中的数据字典。,理解数据字典的作用。,2,2.1 物理存储结构,Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。,一般Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。,3,2.1.1 数据文件,数据文件(Data File)是指存储数据库数据的文件。,数据文件一般有以下几个特点。,(1)一个表空间由一个或多个数据文件组成。,(2),一个数据文件只对应一个数据库。而一个数据库通常包含多个数据文件。,(3),数据文件可以通过设置其自动扩展参数,实现其自动扩展的功能。,如果想要了解数据文件的信息,可以查询数据字典,dba_data_files,和,v$datafile,。其中,,dba_data_files,主要有如下字段。,file_name,:数据文件的名称以及存放路径。,file_id,:数据文件在数据库中的,ID,号。,tablespace_name,:数据文件对应的表空间名。,bytes,:数据文件的大小。,blocks,:数据文件所占用的数据块数。,status,:数据文件的状态。,autoextensible,:数据文件是否可扩展。,4,2.1.1 数据文件,另一个数据字典,v$datafile,则记录了数据文件的动态信息,它主要有如下字段。,file#,:存放数据文件的编号。,status,:数据文件的状态。,checkpoint_change#,:数据文件的同步号,随着系统的运行自动修改,以维持所有数据文件的同步。,bytes,:数据文件的大小。,blocks,:数据文件所占用的数据块数。,name,:数据文件的名称以及存放路径。,5,2.1.2 控制文件,控制文件,(Control File)是一个很小的二进制文件,,用于描述和维护数据库的物理结构。在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。,【,例2.3,】,使用数据字典,v$controlfile,,查看当前数据库的控制文件的名称与路径,具体如下:,SQL COLUMN name FORMAT A50;,SQL SELECT name FROM v$controlfile;,NAME,-,E:APPADMINISTRATORORADATAORCLCONTROL01.CTL,E:APPADMINISTRATORORADATAORCLCONTROL02.CTL,E:APPADMINISTRATORORADATAORCLCONTROL03.CTL,6,2.1.3 重做日志文件,重做日志文件,(,Redo Log File,)是记录数据库中所有修改信息的文件,简称日志文件。,日志文件是数据库系统的最重要的文件之一,它可以保证数据库安全,是进行数据库备份与恢复的重要手段。如果日志文件受损,数据库同样可能会无法正常运行。,Oracle中的日志文件组是循环使用的,当所有日志文件组的空间都被填满后,系统将重新切换到第一个日志文件组。发生日志切换时,日志文件组中已有的日志信息是否被覆盖,取决于数据库的运行模式。,7,2.1.4 其他文件,1参数文件,参数文件用于记录Oracle数据库的基本参数信息,主要包括数据库名和控制文件所在路径等。参数文件分为文本参数文件和服务器参数文件。,2备份文件,文件受损时,可以借助于备份文件对受损文件进行恢复。对文件进行还原的过程,就是用备份文件替换该文件的过程。,3归档重做日志文件,归档重做日志文件用于对写满的日志文件进行复制并保存,具体功能由归档进程ARCn实现,该进程负责将写满的重做日志文件复制到归档日志目标中。,4警告、跟踪日志文件,当一个进程发现了一个内部错误时,它可以将关于错误的信息存储到它的跟踪文件中。而警告文件则是一种特殊的跟踪文件,它包含错误事件的说明,而随之产生的跟踪文件则记录该错误的详细信息。,8,2.2 逻辑存储结构,Oracle数据库的逻辑存储结构如图2-1所示。,9,2.2.1 表空间(Tablespace),表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,表空间的大小等于构成该表空间的所有数据文件大小的总和。,在安装Oracle时,Oracle数据库系统一般会自动创建一系列表空间(如system)。可以通过数据字典dba_tablespaces查看表空间的信息。,10,2.2.1 表空间(Tablespace),表,空,间,说,明,sysaux,辅助系统表空间。用于减少系统表空间的负荷,提高系统的作业效率。该表空间由Oracle系统内部自动维护,一般不用于存储用户数据,system,系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等,temp,临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp作为默认的临时表空间。临时表空间本身不是临时存在的,而是永久存在的,只是保存在临时表空间中的段是临时的。临时表空间的存在,可以减少临时段与存储在其他表空间中的永久段之间的磁盘I/O争用,undotbs1,撤消表空间。用于在自动撤消管理方式下存储撤消信息。在撤消表空间中,除了回退段以外,不能建立任何其他类型的段。所以,用户不可以在撤消表空间中创建任何数据库对象,users,用户表空间。用于存储永久性用户对象和私有信息,11,2.2.2 段(Segment),按照段中所存储数据的特征,可以将段分为4种类型,1数据段,2索引段,3临时段,4回退段,12,2.2.3 区(Extent),在Oracle数据库中,区是磁盘空间分配的最小单位,由一个或多个数据块组成。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的区。,一个或多个区组成一个段,所以段的大小由区的个数决定。不过,一个数据段可以包含的区的个数并不是无限制的,它由如下两个参数决定。,minextents:定义段初始分配的区的个数,也就是段最少可分配的区的个数。,maxextents:定义一个段最多可以分配的区的个数。,13,2.2.4 数据块(Block),数据块(也可以简称为块)是用来管理存储空间的最基本单位,也是最小的逻辑存储单位。Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。,数据块都具有相同的结构,其结构如图2-2所示。,块的默认大小,由初始化参数,db_block_size,指定,数据库创建完成之后,该参数值无法再修改。通过,SHOW PARAMETER,语句可以查看该参数的信息,如下:,SQL SHOW PARAMETER db_block_size;,NAME TYPE VALUE,-,db_block_size integer 8192,14,2.3 Oracle进程结构,Oracle数据库启动时,会启动多个Oracle后台进程,后台进程是用于执行特定任务的可执行代码块,在系统启动后异步地为所有数据库用户执行不同的任务。,通过查询数据字典v$bgprocess,可以了解数据库中启动的后台进程信息。,15,2.3.1 DBWn进程,DBWn(Database Writer,数据库写入)进程,是Oracle中采用LRU(Least Recently Used,最近最少使用)算法将数据缓冲区中的数据写入数据文件的进程。,DBWn进程主要有如下几个作用:,管理数据缓冲区,以便用户进程总能找到空闲的缓冲区。,将所有修改后的缓冲区数据写入数据文件。,使用LRU算法将最近使用过的块保留在内存中。,通过延迟写来优化磁盘I/O读写。,16,2.3.1 DBWn进程,其工作过程如下。,(1)当一个用户进程产生后,服务器进程查找内存缓冲区中是否存在用户进程所需要的数据。,(2)如果内存中没有需要的数据,则服务器进程从数据文件中读取数据。这时,服务器进程会首先从LRU中查找是否有存放数据的空闲块。,(3)如果LRU中没有空闲块,则将LRU中的DIRTY数据块移入DIRTY LIST(弄脏表)。,(4)如果DIRTY LIST超长,服务器进程将会通知DBWn进程将数据写入磁盘,刷新缓冲区。,(5)当LRU中有空闲块后,服务器进程从磁盘的数据文件中读取数据并存放到数据缓冲区中。,17,2.3.2 LGWR进程,LGWR(Log Writer,日志写入)进程,是负责管理日志缓冲区的一个后台进程,用于将日志缓冲区中的日志数据写入磁盘的日志文件中。,LGWR进程将日志信息同步地写入在线日志文件组的多个日志成员文件中,如果日志文件组中的某个成员文件被删除或者不可使用,则LGWR进程可以将日志信息写入该组的其他文件中,从而不影响数据库正常运行,但会在警告日志文件中记录错误。,18,2.3.3 CKPT进程,CKPT(Check Point,检查点或检验点)进程,一般在发生日志切换时自动产生,用于缩短实例恢复所需的时间。在检查点期间,CKPT进程更新控制文件与数据文件的标题,从而反映最近成功的SCN(System Change Number,系统更改号)。,在Oracle数据库中,控制检查点产生的参数有如下两种。,log_checkpoint_timeout,log_checkpoint_interval,19,2.3.4 SMON进程,SMON(System Monitor,系统监控)进程,用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件中的条目应用于数据文件,执行崩溃恢复。,SMON进程一般用于定期合并字典管理的表空间中的空闲空间,此外,它还用于在系统重新启动期间清理所有表空间中的临时段。,20,2.3.5 PMON进程,PMON(Process Monitor,进程监控)进程,用于在用户进程出现故障时执行进程恢复操作,负责清理内存存储区和释放该进程所使用的资源。,PMON进程周期性检查调度进程和服务器进程的状态,如果发现进程已死,则重新启动它。PMON进程被有规律地唤醒,检查是否需要使用,或者其他进程发现需要时也可以调用此进程。,21,2.3.6 ARCn进程,ARCn(Archive Process,归档)进程,用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。,一个Oracle数据库实例中,允许启动的ARCn进程的个数由参数log_archive_max_ processes决定。,22,2.3.7 RECO进程,RECO(Recovery,恢复)进程存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。,当一个数据库服务器的RECO进程试图与一个远程服务器建立通信时,如果远程服务器不可用或者无法建立网络连接,则RECO进程将自动在一个时间间隔之后再次连接。,23,2.4 Oracle内存结构,Oracle内存结构是影响数据库性能的主要因素之一,其结构如图2-3所示。,24,2.4.1 系统全局区(SGA),系统全局区(System Global Area,SGA)是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。,1数据缓冲区,数据缓冲区用于存储从磁盘数据文件中读取的数据,供所有用户共享。由于系统读取内存的速度要比读取磁盘快得多,所以数据缓冲区的存在可以提高数据库的整体效率。,2日志缓冲区,日志缓冲区用于存储数据库的修改操作信息。,3共享池,共享池用于保存最近执行的SQL语句、PL/SQL程序的数据字典信息,它是对SQL语句和PL/SQL程序进行语法分析、编译和执行的内存区域。共享池主要包括如下两种子缓存。,库缓存(Library Cache),数据字典缓存(Data Dictionary Cache),4大型池,大型池,用于提供一个大的缓冲区供数据库的备份与恢复操作使用,它是SGA的可选区域。,5Java池,Java池,用于在数据库中支持Java的运行。,25,2.4.2 程序全局区(PGA),程序全局区(Program Global Area,PGA)是Oracle系统分配给一个进程的私有内存区域。,程序全局区的大小由参数pga_aggregate_target决定,可以通过SHOW PARAMETER语句查看该参数的信息,如下:,SQL SHOW PARAMETER pga_aggregate_target;,NAME TYPE VALUE,-,pga_aggregate_target big integer 20M,26,2.5 数 据 字 典,数据字典是由Oracle自动创建并更新的一组表,它是Oracle数据库的重要组成部分,提供了数据库结构、数据库对象空间分配和数据库用户等有关的信息。,数据字典的所有者为sys用户,而数据字典表和数据字典视图都被保存在system表空间中。,27,2.5.1 Oracle数据字典介绍,Oracle数据字典(Data Dictionary)是存储在数据库中的所有对象信息的知识库,Oracle数据库管理系统使用数据字典获取对象信息和安全信息,而用户和数据库系统管理员则用数据字典来查询数据库信息。,Oracle数据字典保存有数据库中对象和段的信息,例如表、视图、索引、包、存储过程以及与用户、权限、角色、审计和约束等相关的信息。,28,2.5.1 Oracle数据字典介绍,视图类型,说,明,USER视图,USER视图的名称以user_为前缀,用来记录用户对象的信息。,例如user_tables视图,它记录用户的表信息,ALL视图,ALL视图的名称以all_为前缀,用来记录用户对象的信息以及被授权访问的对象信息。例如all_synonyms视图,它记录用户可以存取的所有同义词信息,DBA视图,DBA视图的名称以dba_为前缀,用来记录数据库实例的所有对象的信息。,例如dba_tables视图,通过它可以访问所有用户的表信息,V$视图,V$视图的名称以v$为前缀,用来记录与数据库活动相关的性能统计动态信息。,例如v$datafile视图,它记录有关数据文件的统计信息,GV$视图,GV$视图的名称以gv$为前缀,用来记录分布式环境下所有实例的动态信息。,例如gv$lock视图,它记录出现锁的数据库实例的信息,29,2.5.2 Oracle常用数据字典,1基本的数据字典,Oracle中基本的数据字典如表2-3所示。,字典名称,说,明,dba_tables,所有用户的所有表的信息,dba_tab_columns,所有用户的表的字段信息,dba_views,所有用户的所有视图信息,dba_synonyms,所有用户的同义词信息,dba_sequences,所有用户的序列信息,dba_constraints,所有用户的表的约束信息,dba_indexes,所有用户的表的索引简要信息,dba_ind_columns,所有用户的索引的字段信息,dba_triggers,所有用户的触发器信息,dba_sources,所有用户的存储过程信息,dba_segments,所有用户的段的使用空间信息,dba_extents,所有用户的段的扩展信息,dba_objects,所有用户对象的基本信息,cat,当前用户可以访问的所有基表,tab,当前用户创建的所有基表、视图和同义词等,dict,构成数据字典的所有表的信息,30,2.5.2 Oracle常用数据字典,2与数据库组件相关的数据字典,Oracle中与数据库组件相关的数据字典如表2-4所示。,数据库组件,数据字典中的表或视图,说,明,数据库,v$datafile,记录系统的运行情况,表空间,dba_tablespaces,记录系统表空间的基本信息,dba_free_space,记录系统表空间的空闲空间的信息,控制文件,v$controlfile,记录系统控制文件的基本信息,v$controlfile_record_section,记录系统控制文件中记录文档段的信息,v$parameter,记录系统各参数的基本信息,数据文件,dba_data_files,记录系统数据文件以及表空间的基本信息,v$filestat,记录来自控制文件的数据文件信息,v$datafile_header,记录数据文件头部分的基本信息,段,dba_segments,记录段的基本信息,数据区,dba_extents,记录数据区的基本信息,日志,v$thread,记录日志线程的基本信息,v$log,记录日志文件的基本信息,v$logfile,记录日志文件的概要信息,归档,v$archived_log,记录归档日志文件的基本信息,v$archive_dest,记录归档日志文件的路径信息,数据库实例,v$instance,记录实例的基本信息,v$system_parameter,记录实例当前有效的参数信息,内存结构,v$sga,记录SGA区的大小信息,v$sgastat,记录SGA的使用统计信息,v$db_object_cache,记录对象缓存的大小信息,v$sql,记录SQL语句的详细信息,v$sqltext,记录SQL语句的语句信息,v$sqlarea,记录SQL区的SQL基本信息,后台进程,v$bgprocess,显示后台进程信息,v$session,显示当前会话信息,31,2.5.2 Oracle常用数据字典,3常用动态性能视图,Oracle中常用的动态性能视图如表2-5所示。,视图名称,说,明,v$fixed_table,显示当前发行的固定对象的说明,v$instance,显示当前实例的信息,v$latch,显示锁存器的统计数据,v$librarycache,显示有关库缓存性能的统计数据,v$rollstat,显示联机的回滚段的名字,v$rowcache,显示活动数据字典的统计,v$sga,显示有关系统全局区的总结信息,v$sgastat,显示有关系统全局区的详细信息,v$sort_usage,显示临时段的大小及会话,v$sqlarea,显示SQL区的SQL信息,v$sqltext,显示在SGA中属于共享游标的SQL语句内容,v$stsstat,显示基本的实例统计数据,v$system_event,显示一个事件的总计等待时间,v$waitstat,显示块竞争统计数据,32,2.6 习 题,参见教材P35,33,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!