Oracle11G 体系结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章Oracle数据库系统结构授课教师:刘明洋主要内容Oracle数据库系统结构概述Oracle数据库存储结构Oracle数据库内存结构Oracle数据库后台进程提问回顾数据模型的三要素中哪一个要素用于描述数据模型的动态特征?说出数据库、数据库管理系统、数据库系统的区别。Oracle11g数据库能不能在Linux平台上运行?SQLServer能不能?引入从逻辑和物理的角度考虑,Oracle的组成如何?Oracle数据库如何保证成千上万用户的高性能并发访问?使用Oracle数据库如何构建数据库应用程序?本节课要讲解的内容Oracle11g的逻辑结构:表空间、段、区间、数据块、表、其他逻辑对象。Oracle11g的Oracle11g的物理结构:数据文件、控制文件、日志文件、初始化参数文件、其他文件。总体结构:内存结构、后台进程、Oracle例程。Oracle11g的应用架构:多磁盘结构、磁盘映像结构、客户/服务器系统、共享服务器系统、并行数据库系统、分布式数据库系统。Oracleserver的组成InstanceSGARedologbuffercacheSharedpoolDataDict.cacheLibrarycacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControlfilesDatafilesArchivedlogfilesParameterfilePasswordfileRedologfilesDatabaseDatabasebuffercache•1.Oracle实例的组成InstanceSGARedologbuffercacheSharedpoolDataDict.cacheLibrarycacheDBWRSMONPMONCKPTLGWROthersDatabasebuffercache用它来访问数据库只能打开一个数据库由内存和后台进程结构组成2.建立连接和建立会话3.物理存储结构ControlfilesDatafilesArchivedlogfilesParameterfilePasswordfileRedologfilesDatabase数据文件数据文件就是用来存放数据库数据的物理文件,文件后缀“.DBF”。数据文件存放的主要内容如下:(1)表中的数据;(2)索引数据;(3)数据字典定义;(4)回滚事务所需信息;(5)存储过程、函数和数据包的代码;(6)用来排序的临时数据。控制文件控制文件用于记录和维护整个数据库的全局物理结构,它是一个二进制文件,文件后缀为“.CTL”控制文件存放了与Oracle数据库物理文件有关的关键控制信息,如数据库名和创建时间,物理文件名、大小及存放位置等信息。控制文件在创建数据库时生成,以后当数据库发生任何物理变化都将被自动更新。每个数据库包含通常两个或多个控制文件。这几个控制文件的内容上保持一致。日志文件日志文件用于记录对数据库进行的修改操作和事务操作,文件后缀为“.LOG”。每个数据库至少包含两个重做日志组,这两个日志组是循环使用的。日志写入进程(LGWR)会将数据库发生的变化写入到日志组一,当日志组一写满后,即产生日志切换,LGWR会将数据库发生的变化写入到日志组二,当日志组二也写满后,产生日志切换,LGWR会将数据库发生的变化再写入日志组一,依次类推。日志文件分为联机重做日志文件和归档日志文件。归档日志,是当前非活动重做日志的备份,可以使用归档日志进行恢复。日志文件的模式归档模式Archivclog、非归档模式NoArchivelog归档模式,将保留所有的重做日志内容。这样数据库可以从所有类型的失败中恢复,是最安全的数据库工作方式。对于非常重要的Oracle数据库应用,比如银行系统等,必须采用归档模式。非归档模式,不保留以前的重做日志内容,适合于对数据库中数据要求不高的场合。初始化参数文件初始化参数文件INIT.ORA是一个文本文件,定义了要启动的数据库及内存结构的大约200多项参数信息。启动任何一个数据库之前,Oracle系统都要读取初始化参数文件中的各项参数。初始化参数文件的主要内容如下:设置内存大小;设置要使用的数据库和控制文件;设置检查点;设置数据库的控制结构;非强制性后台进程的初始化其他Oracle物理文件跟踪文件(Tracefile):存放着后台进程的警告和错误信息,每个后台进程都有相应的跟踪文件。警告文件(Alertfile):由连续的消息和错误组成,可以看到Oracle内部错误、块损坏错误等。备份文件(Backupfile):包含恢复数据库结构和数据文件所需的副本。口令文件(Passwordfile):存放用户口令的加密文件。各种物理文件关系图4.Oracle数据库的逻辑结构Oracle11g数据库数据库方案什么是方案?方案是用户使用的一系列数据库对象的集合。而用户是用来连接数据库并能够存取数据库对象的。一个用户一般对应一个方案,该用户的方案名和用户名相同,并作为该用户的缺省方案。这也就是在企业管理器的方案下看到方案名都为数据库用户名的原因。如果SCOTT用户创建了表EMP,那么SCOTT就是表EMP的属主,在SCOTT访问SCOTT用户下的EMP表时不用在表名前面加上表的属主:SELECT*FROMEMP;如果其他用户要访问表EMP,要在表名前面加上表的属主:SELECT*FROMscott.emp;否则会显示“没有此表”。表空间(TableSpace)表空间是Oracle数据库中数据的逻辑组织单位,通过表空间来组织数据库中的数据。数据库逻辑上由一个或多个表空间组成,表空间物理上是由一个或多个数据文件组成。默认表空间表空间名称说明CWMLITE用于联机分析处理(OLAP)DRSYS用于存放与工作空间设置有关的信息EXAMPLE用于存放例程(Instance)信息INDEX用于存放数据库中的索引信息SYSTEM是每个Oracle数据库都必须具备的部分TEMP用于存储临时表TOOLS用于存放数据库工具软件所需的数据库对象UNDOTBS用于保存回滚段(RollbackSegment)为RBSUSERS用于存放用户私有信息DatafileSegmentBlocksExtentSegmentDatafileSegmentBlocksExtentSegment表空间表空间/文件/段/区间/数据块的示意图段(Segment)、区间(Extent)和数据块段:数据段、索引段、临时段。段由若干个区间组成。区间:由连续分配的相邻数据块组成。数据块:是数据库中最小的、最基本的存储单位5.Oracle后台进程进程的概念进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程的类型用户进程服务器进程后台进程用户进程当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户所指定的任务。用户进程在用户方工作,它向服务器进程请求信息.-sqlplus服务器进程服务器进程由Oracle自身创建,用于处理连接到数据库实例的用户进程所提出的请求。用户进程只有通过服务器进程才能实现对数据库的访问和操作。后台进程为了保证Oracle数据库在任意一个时刻可以处理多用户的并发请求,进行复杂的数据操作,Oracle数据库起用了一些相互独立的附加进程,称为后台进程。服务器进程在执行用户进程请求时,调用后台进程来实现对数据库的操作。Oracle的后台进程主要包括:(1)SMON系统监控进程(systemmonitor)(2)PMON进程监控进程(processmonitor)(3)DBWR数据库写入进程(4)LGWR日志文件写入进程(5)ARCH归档进程(archiverprocess)(6)RECO恢复进程(7)CKPT检查点进程数据库写入进程(DBWR)负责将数据块缓冲区内变动过的数据块写回磁盘内的数据文件。DBWR可有多个.检查点发生脏数据块达到极限没有空间了对表空间的操作表的删除(释放也是写的一种)日志写入进程(LGWR)负责将重做日志缓冲区内变动记录循环写回磁盘内的重做日志文件,该进程会将所有数据从重做日志缓存中写入到现行的在线重做日志文件中。会在下面4种不同情况下执行写入操作:事务处理进行提交;重做日志缓存已经填充了1/3;重做日志缓存中的数据量达到了1MB;每3秒的时间。在DBWR写之前系统监视器(SMON)系统监视器(systemmonitor,SMON)的主要职责是重新启动系统。在出现故障实例的情况下,SMON负责重新启动系统,执行崩溃恢复。实例恢复,未完成的事务回滚进程监控器(PMON)PMON的主要职责是监控服务器进程和注册数据库服务。监控服务器进程,当某个使用者处理程序异常终止时,进程失败,释放这些进程占用的资源,如清除数据块缓冲区中不再使用的空间,回滚。使用Oracle监听器注册数据库服务。检查点进程(CKPT)在适当时候产生一个checkpoint事件,确保缓冲区内经常被变动的数据也要定期被写入数据文件。在checkpoint之后,万一需要恢复,不再需要写检查点之前的记录。---缩短数据库的重新激活时间.用checkpoint信息来更新数据文件头和控制文件。内存结构是Oracle存放常用信息和所有运行在该机器上的Oracle程序的内存区域。Oracle有两种类型的内存结构:系统全局区SystemGlobalArea,SGA程序全局区ProgramGlobalArea,PGA4.Oracle内存结构SGA区是由Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA区数据供多个用户共享,所以SGA区又称为共享全局区。实例启动时分配,实例关闭时释放。--查看VGA信息:showsgaselect*fromv$sgastat;系统全局区SGA•SGA分成5部分:SQL共享池、数据缓冲区、日志缓冲区、大池和Java池。SGARedologbuffercacheSharedpoolDataDict.cacheLibrarycacheDatabasebuffercache•大小由SGA-MAX-SIZE来指定数据库缓冲区为SGA的主要成员,用来存放读取自数据文件的数据块复本,或是使用者曾经处理过的数据。数据库缓冲区又称用户数据高速缓冲区,为所有与该实例相链接的用户进程所共享。采用最近最少使用算法(LRU)来管理可用空间。1.SGA---数据库缓冲区数据库缓存的大小可以由服务器文件spfile.ora文件中的DB_CACHE_SIZE参数指定,该参数可以直接以K字节或M字节为单位来设置数据库缓存的大小。数据库缓冲区的容量受物理容量限制联机重做日志文件用于记录数据库的更改,对数据库进行修改的事务(Transaction)在记录到重做日志之前都必须首先放到重做日志缓冲区(RedoLogBuffer)中。重做日志缓冲区是专为此开辟的一块内存区域,重做日志缓存中的内容将被LGWR后台进程写入重做日志文件。2.SGA---重做日志缓冲区SharedSQLPool用来存储:最近执行过的SQL声明,以便共享;最近使用过的数据定义3.SGA---SQL共享池大小取决于参数SHARED_POOL_SIZE,它是以字节为单位的。用户必须将这个值设得足够大,以确保有足够的可用空间来装载和存储PL/SQL块和SQL语句。SQL共享池有两个部分:库高速缓存(librarycache):系统解析SQL命令,保存解析后的结果,以备用。数据字典高速缓存(datadictionarycache)执行步骤1.parse解析2.bind绑定变量3.execute执行4.fetch返回结果从共享池的库缓冲区中搜索,该语句是否执行过如果是已经执行过的SQL语句,oracle会使用hash函数进行计算,产

1 / 60
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功