Oracle数据库的体系结构经典课件_第1页
Oracle数据库的体系结构经典课件_第2页
Oracle数据库的体系结构经典课件_第3页
Oracle数据库的体系结构经典课件_第4页
Oracle数据库的体系结构经典课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章Oracle数据库的体系结构本章要点:了解Oracle的物理存储结构。了解Oracle的逻辑存储结构。了解Oracle进程结构。了解Oracle内存结构。熟悉Oracle中的数据字典。理解数据字典的作用。22.1物理存储结构Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。一般Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。32.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:数据文件是否可扩展。42.1.1数据文件另一个数据字典v$datafile则记录了数据文件的动态信息,它主要有如下字段。file#:存放数据文件的编号。status:数据文件的状态。checkpoint_change#:数据文件的同步号,随着系统的运行自动修改,以维持所有数据文件的同步。bytes:数据文件的大小。blocks:数据文件所占用的数据块数。name:数据文件的名称以及存放路径。52.1.2控制文件控制文件(ControlFile)是一个很小的二进制文件,用于描述和维护数据库的物理结构。在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。【例2.3】使用数据字典v$controlfile,查看当前数据库的控制文件的名称与路径,具体如下:SQL>COLUMNnameFORMATA50;SQL>SELECTnameFROMv$controlfile;NAME-------------------------------------------------E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTLE:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTLE:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL62.1.3重做日志文件重做日志文件(RedoLogFile)是记录数据库中所有修改信息的文件,简称日志文件。日志文件是数据库系统的最重要的文件之一,它可以保证数据库安全,是进行数据库备份与恢复的重要手段。如果日志文件受损,数据库同样可能会无法正常运行。Oracle中的日志文件组是循环使用的,当所有日志文件组的空间都被填满后,系统将重新切换到第一个日志文件组。发生日志切换时,日志文件组中已有的日志信息是否被覆盖,取决于数据库的运行模式。72.1.4其他文件1.参数文件参数文件用于记录Oracle数据库的基本参数信息,主要包括数据库名和控制文件所在路径等。参数文件分为文本参数文件和服务器参数文件。2.备份文件文件受损时,可以借助于备份文件对受损文件进行恢复。对文件进行还原的过程,就是用备份文件替换该文件的过程。3.归档重做日志文件归档重做日志文件用于对写满的日志文件进行复制并保存,具体功能由归档进程ARCn实现,该进程负责将写满的重做日志文件复制到归档日志目标中。4.警告、跟踪日志文件当一个进程发现了一个内部错误时,它可以将关于错误的信息存储到它的跟踪文件中。而警告文件则是一种特殊的跟踪文件,它包含错误事件的说明,而随之产生的跟踪文件则记录该错误的详细信息。82.2逻辑存储结构Oracle数据库的逻辑存储结构如图2-1所示。92.2.1表空间(Tablespace)表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,表空间的大小等于构成该表空间的所有数据文件大小的总和。在安装Oracle时,Oracle数据库系统一般会自动创建一系列表空间(如system)。可以通过数据字典dba_tablespaces查看表空间的信息。10表表空空间(Tablespace)表

间说

明sysaux辅助系统表空间。用于减少系统表空间的负荷,提高系统的作业效率。该表空间由Oracle系统内部自动维护,一般不用于存储用户数据system系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等temp临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp作为默认的临时表空间。临时表空间本身不是临时存在的,而是永久存在的,只是保存在临时表空间中的段是临时的。临时表空间的存在,可以减少临时段与存储在其他表空间中的永久段之间的磁盘I/O争用undotbs1撤消表空间。用于在自动撤消管理方式下存储撤消信息。在撤消表空间中,除了回退段以外,不能建立任何其他类型的段。所以,用户不可以在撤消表空间中创建任何数据库对象users用户表空间。用于存储永久性用户对象和私有信息11段段(Segment)按照段段中所所存储储数据据的特特征,,可以以将段段分为为4种种类型型1.数数据段段2.索索引段段3.临临时段段4.回回退段段12区区(Extent)在Oracle数据据库中中,区区是磁磁盘空空间分分配的的最小小单位位,由由一个个或多多个数数据块块组成成。当当一个个段中中的所所有空空间被被使用用完后后,系系统将将自动动为该该段分分配一一个新新的区区。一个或或多个个区组组成一一个段段,所所以段段的大大小由由区的的个数数决定定。不不过,,一个个数据据段可可以包包含的的区的的个数数并不不是无无限制制的,,它由由如下下两个个参数数决定定。minextents::定义义段初初始分分配的的区的的个数数,也也就是是段最最少可可分配配的区区的个个数。。maxextents::定义义一个个段最最多可可以分分配的的区的的个数数。13数数据据块(Block)数据块块(也也可以以简称称为块块)是是用来来管理理存储储空间间的最最基本本单位位,也也是最最小的的逻辑辑存储储单位位。Oracle数数据库库在进进行输输入输输出操操作时时,都都是以以块为为单位位进行行逻辑辑读写写操作作的。。数据块块都具具有相相同的的结构构,其其结构构如图图2-2所所示。。块的默默认大大小,,由初初始化化参数数db_block_size指定,,数据据库创创建完完成之之后,,该参参数值值无法法再修修改。。通过过SHOWPARAMETER语句可可以查查看该该参数数的信信息,,如下下:SQL>SHOWPARAMETERdb_block_size;NAMETYPEVALUE------------------------------------------------------------db_block_sizeinteger8192142.3Oracle进程程结构构Oracle数数据库库启动动时,,会启启动多多个Oracle后后台进进程,,后台台进程程是用用于执执行特特定任任务的的可执执行代代码块块,在在系统统启动动后异异步地地为所所有数数据库库用户户执行行不同同的任任务。。通过查查询数数据字字典v$bgprocess,可可以了了解数数据库库中启启动的的后台台进程程信息息。152.3.1DBWn进程程DBWn(DatabaseWriter,,数据据库写写入)进程程,是是Oracle中采采用LRU(LeastRecentlyUsed,最最近最最少使使用)算法法将数数据缓缓冲区区中的的数据据写入入数据据文件件的进进程。。DBWn进进程主主要有有如下下几个个作用用:管理数数据缓缓冲区区,以以便用用户进进程总总能找找到空空闲的的缓冲冲区。。将所有有修改改后的的缓冲冲区数数据写写入数数据文文件。。使用LRU算法法将最最近使使用过过的块块保留留在内内存中中。通过延延迟写写来优优化磁磁盘I/O读写写。162.3.1DBWn进程程其工作作过程程如下下。(1)当当一个个用户户进程程产生生后,,服务务器进进程查查找内内存缓缓冲区区中是是否存存在用用户进进程所所需要要的数数据。。(2)如如果内内存中中没有有需要要的数数据,,则服服务器器进程程从数数据文文件中中读取取数据据。这这时,,服务务器进进程会会首先先从LRU中查查找是是否有有存放放数据据的空空闲块块。(3)如如果LRU中没没有空空闲块块,则则将LRU中的的DIRTY数数据块块移入入DIRTYLIST(弄弄脏表表)。。(4)如如果DIRTYLIST超超长,,服务务器进进程将将会通通知DBWn进进程将将数据据写入入磁盘盘,刷刷新缓缓冲区区。(5)当当LRU中中有空空闲块块后,,服务务器进进程从从磁盘盘的数数据文文件中中读取取数据据并存存放到到数据据缓冲冲区中中。172.3.2LGWR进程程LGWR(LogWriter,日日志写写入)进程程,是是负责责管理理日志志缓冲冲区的的一个个后台台进程程,用用于将将日志志缓冲冲区中中的日日志数数据写写入磁磁盘的的日志志文件件中。。LGWR进进程将将日志志信息息同步步地写写入在在线日日志文文件组组的多多个日日志成成员文文件中中,如如果日日志文文件组组中的的某个个成员员文件件被删删除或或者不不可使使用,,则LGWR进进程可可以将将日志志信息息写入入该组组的其其他文文件中中,从从而不不影响响数据据库正正常运运行,,但会会在警警告日日志文文件中中记录录错误误。182.3.3CKPT进程程CKPT(CheckPoint,,检查查点或或检验验点)进程程,一一般在在发生生日志志切换换时自自动产产生,,用于于缩短短实例例恢复复所需需的时时间。。在检检查点点期间间,CKPT进进程更更新控控制文文件与与数据据文件件的标标题,,从而而反映映最近近成功功的SCN(SystemChangeNumber,,系统统更改改号)。在Oracle数据据库中中,控控制检检查点点产生生的参参数有有如下下两种种。log_checkpoint_timeoutlog_checkpoint_interval192.3.4SMON进程程SMON(SystemMonitor,系系统监监控)进程程,用用于数数据库库实例例出现现故障障或系系统崩崩溃时时,通通过将将联机机重做做日志志文件件中的的条目目应用用于数数据文文件,,执行行崩溃溃恢复复。SMON进进程一一般用用于定定期合合并字字典管管理的的表空空间中中的空空闲空空间,,此外外,它它还用用于在在系统统重新新启动动期间间清理理所有有表空空间中中的临临时段段。202.3.5PMON进程程PMON(ProcessMonitor,,进程程监控控)进进程,,用于于在用用户进进程出出现故故障时时执行行进程程恢复复操作作,负负责清清理内内存存存储区区和释释放该该进程程所使使用的的资源源。PMON进进程周周期性性检查查调度度进程程和服服务器器进程程的状状态,,如果果发现现进程程已死死,则则重新新启动动它。。PMON进程程被有有规律律地唤唤醒,,检查查是否否需要要使用用,或或者其其他进进程发发现需需要时时也可可以调调用此此进程程。212.3.6ARCn进程程ARCn(ArchiveProcess,,归档档)进进程,,用于于将写写满的的日志志文件件复制制到归归档日日志文文件中中,防防止日日志文文件组组中的的日志志信息息由于于日志志文件件组的的循环环使用用而被被覆盖盖。一个Oracle数数据库库实例例中,,允许许启动动的ARCn进进程的的个数数由参参数log_archive_max_processes决决定。。222.3.7RECO进程程RECO(Recovery,恢恢复)进程程存在在于分分布式式数据据库系系统中中,用用于自自动解解决在在分布布式数数据库库中出出现的的事务务故障障。当一个个数据据库服服务器器的RECO进进程试试图与与一个个远程程服务务器建建立通通信时时,如如果远远程服服务器器不可可用或或者无无法建建立网网络连连接,,则RECO进进程将将自动动在一一个时时间间间隔之之后再再次连连接。。232.4Oracle内存存结构构Oracle内内存结结构是是影响响数据据库性性能的的主要要因素素之一一,其其结构构如图图2-3所所示。。24系系统统全局局区(SGA)系统全全局区区(SystemGlobalArea,,SGA)是Oracle为为系统统分配配的一一组共共享的的内存存结构构,可可以包包含一一个数数据库库实例例的数数据或或控制制信息息。1.数数据缓缓冲区区数据缓缓冲区区用于于存储储从磁磁盘数数据文文件中中读取取的数数据,,供所所有用用户共共享。。由于于系统统读取取内存存的速速度要要比读读取磁磁盘快快得多多,所所以数数据缓缓冲区区的存存在可可以提提高数数据库库的整整体效效率。。2.日日志缓缓冲区区日志缓缓冲区区用于于存储储数据据库的的修改改操作作信息息。3.共共享池池共享池池用于于保存存最近近执行行的SQL语句句、PL/SQL程程序的的数据据字典典信息息,它它是对对SQL语语句和和PL/SQL程序序进行行语法法分析析、编编译和和执行行的内内存区区域。。共享享池主主要包包括如如下两两种子子缓存存。库缓存存(LibraryCache)数据字字典缓缓存(DataDictionaryCache)4.大大型池池大型池池,用用于提提供一一个大大的缓缓冲区区供数数据库库的备备份与与恢复复操作作使用用,它它是SGA的可可选区区域。。5.Java池池Java池池,用用于在在数据据库中中支持持Java的运运行。。25程程序序全局局区(PGA)程序全全局区区(ProgramGlobalArea,PGA)是是Oracle系统统分配配给一一个进进程的的私有有内存存区域域。程序全全局区区的大大小由由参数数pga_aggregate_target决定定,可可以通通过SHOWPARAMETER语语句查查看该该参数数的信信息,,如下下:SQL>SHOWPARAMETERpga_aggregate_target;NAMETYPEVALUE-------------------------------------------------------pga_aggregate_targetbiginteger20M262.5数数据据字字典典数据字字典是是由Oracle自自动创创建并并更新新的一一组表表,它它是Oracle数数据库库的重重要组组成部部分,,提供供了数数据库库结构构、数数据库库对象象空间间分配配和数数据库库用户户等有有关的的信息息。数据字字典的的所有有者为为sys用用户,,而数数据字字典表表和数数据字字典视视图都都被保保存在在system表空空间中中。272.5.1Oracle数据据字典典介绍绍Oracle数数据字字典(DataDictionary)是存存储在在数据据库中中的所所有对对象信信息的的知识识库,,Oracle数据据库管管理系系统使使用数数据字字典获获取对对象信信息和和安全全信息息,而而用户户和数数据库库系统统管理理员则则用数数据字字典来来查询询数据据库信信息。。Oracle数数据字字典保保存有有数据据库中中对象象和段段的信信息,,例如如表、、视图图、索索引、、包、、存储储过程程以及及与用用户、、权限限、角角色、、审计计和约约束等等相关关的信信息。。282.5.1Oracle数据据字典典介绍绍视图类型说

明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视图,它记录出现锁的数据库实例的信息292.5.2Oracle常用用数据据字典典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构成数据字典的所有表的信息302.5.2Oracle常用用数据据字典典2.与与数据据库组组件相相关的的数据据字典典Oracle中中与数数据库库组件件相关关的数数据字字典如如表2-4所示示。数据库组件数据字典中的表或视图说

明数据库v$datafile记录系统的运行情况表空间dba_tablespaces记录系统表空间的基本信息dba_free_space记录系统表空间的空闲空间的信息控制文件v$con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论