Oracle数据库体系结构详解.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle数据库体系结构详解要点

?Oracle体系结构就是围绕这张图展开的,要想深入了解oracle,就必须把这张图搞明白。 如图: ? 一、基本组成: Oracle server: ???一般情况下是一个instance和一个database组成 ?? 1个instance只能对应一个数据库。 ??? 特殊:1个数据库可以有多个instance(rac) ??????? 一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个instance,也可以理解成每个数据库只有一个SID 。 ?????????利用DBCA建出的每个库都是相对独立的,在同一服务器上如果创建多库必须将环境变量的参数文件做区分,并且在对实例切换时需如下操作: ?????????????????????????????????????????????????????????????????????????connect?? 用户名/密码@实例的服务名 ? ? Oracle Instance: 是由内存(SGA)和后台进程(backupground Process)组成 通过instance来访问database 一个实例只能打开一个数据库 ? Oracle database: 数据文件(Data files): ????数据文件永远存储数据库的数据,包括数据字典、用户数据(表、索引、簇)、undo数据等 重做日志(Redo log): “先记后写” 重做日志用于记录数据库的变化,当进行例程恢复或介质恢复时需要使用重做日志 执行DDL或DML操作时,事物变化会被写到重做日志缓冲区,而在特定的时刻LGWR会将重做日志缓冲区中的内容写入重做日志。 控制文件(Control file) 控制文件用于记录和维护数据库的物理结构,并且每个Oracle数据库至少要包含一个控制文件。 归档日志(Archive log): 是非活动(Inactive)重做日志的备份。 口令文件(Password file): 用于验证特权用户(具有SYSDBA、SYSOPER权限的特殊数据库用户) 参数文件(Parameter file): 用于定义启动实例所需要的初始化参数,包括文本参数文件(pfile)和服务器参数文件(spfile) ? User and Server process : 在执行sql语句时产生的进程,每一个连接,oracle server创建一个session,产生一个server process,在client发起一个connection时就产生了一个user process。 ? ? 体系结构可以分为,database结构和instance结构 如下结构: ? ? ?二、instance结构详解 ?? 1、? 内存结构 ? 主要包括sga(system global area)和pga(program global area) ? Pga是当程序起来时,给server process用(不包含在instance里面,这里不做重点讨论) ? SGA(System Global Area)由一组内存结构组成,它是由所有用户进程共享的一块内存区域。启动例程时,Oracle自动分配SGA,关闭例程时,oracle自动释放SGA所占用的内存空间。 ? SGA动态尺寸总计不能超过初始化参数SGA_MAX_SIZE的值。 如果sga_target超过了sga_max_size的大小,在Instance重新启动后,sga_max_size会调整成和sga_target一样大小的值。 Oracle将自动为其添加容量,以帮助其优化操作,直到内存使用达到SGA_TARGET所表明的上限。 ? share pool: Share Pool)用于存放最近执行的SQL语句和数据字典信息。 共享池主要有库高速缓存(Library Cache)和数据字典高速缓存(Dictionary cache)两部分组成 1)库高速缓存(Library Cache) 库高速缓存用于存放最近执行的sql语句信息,包括sql语句文本,解析代码值及执行计划。 ?假设执行一条sql语句 ???? -select ename,job from emp where empno=7788; ???????????如果最近(还没有被lru淘汰)执行过这条语句,他就会直接从cache里面读结果;如果没有执行过,就需要读数据文件,这个过程就比较复杂,效率差距很大。 /yujin2010good/article/details/7235864 ? 这里还有两个概念: 物理i/o和逻辑i/o---------1:1000 物理i/o:从数据缓冲区找不到所需要的数据,就要从硬盘里面读取。 逻辑i/o:从数据缓冲区能找到所需要

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档