设为首页 收藏本站
查看: 335|回复: 0

[经验分享] oracle 内存结构

[复制链接]

尚未签到

发表于 2015-12-18 09:37:34 | 显示全部楼层 |阅读模式
  1.基础结构
   oracle内存结构主要包括四部分:SGA(系统全局区)PGA(程序全局区)UGA(用户全局区)和软件代码区域。
   其中,
SGA:主要存放oracle的共享数据和控制信息。该区域被所有的服务器进程和后台进程共享。
PGA:存放某一个oracle进程的数据和控制信息,这些进程可以是服务器进程,也可以是后台进程。
UGA:存放与用户会话信息有关的内容,例如用户登录信息等。UGA由两部分组成:session variable OLAP POOL
   在共享服务器模式下,UGASGA中存在,而在专用服务器模式下,UGAPGA中存在。原因是UGA存放着用户会话的信息,该区域需要在会话的整个生命周期内都是可用的。共享服务器模式下,UGA需要记录多个用户的信息,而PGA是每个进程专有区域,无法实现记录多用户会话信息功能,而SGA是所有进程共享的,所以共享模式下,UGA存在于SGA中。
   软件代码区域:主要存放oracle软件运行所需要的代码,该内存区域和其他内存区域分开,单独存在。
 
  2.内存管理方式
   主要包括:自动内存管理、自动共享内存管理和手工内存管理
   其中,
自动内存管理:指定实例将用到的内存总大小,实例将会自动在SGAPGA之间进行分配。
自动共享内存管理:该管理方式为部分自动化,即设置SGA大小,并可选的设置PGA大小。让SGA内存自动管理的同时单独对PGA进行管理。
手工内存管理:通过初始化参数,手工管理SGAPGA
   
  3.PGA
   PGA理解:打个比喻,PGA就像是文档管理员的临时工作空间。而文档管理员就代表着替客户端进程(client process)干活的服务器进程(server process)。服务器进程创建后,在PGA中分配一块内存,用于存放用户请求的具体信息,并将用户请求的结果进行排序,结果返回后,释放工作空间。
   PGA的内容:SQL WORK AREA(排序区、HASH区、位图合并区)、session memoryprivate SQL areapersistent arearuntime area
   其中,
private SQL area:存放已经解析的SQL语句和会话相关的信息。当一个服务器进程执行SQL或者PL/SQL代码的时候,服务器进程使用private SQL area来存储绑定变量的值(persistent area,只有当游标关闭,才释放该区域),查询执行的状态信息和查询执行工作区域(runtime areaDML中,语句结束,则该区域释放)。
SQL work area:该区域主要存放内存密集型的操作,比如排序,hash连接,位图连接等。
当启用PGA自动内存管理时,数据库会自动调整SQL work area的大小。
   共享服务器模式和专用服务器模式下的PGA内存分配:
  Memory area
  Dedicated server
  Shared server
  Nature of session
  Private
  Shared
  Location of the persistentarea
  PGA
  SGA
  Location of the run-time areafor DML/DDL statements
  PGA
  PGA
   
  4.SGA
   SGA是随着数据库实例后台进程启动而启动的。当然,服务器进程也可以访问SGA,其只是在数据库操作时,可以往里面写内容。
   每个实例都有自己的SGARAC环境具有多个实例,多个SGA)。
   SGA的主要组件:database buffer cache/ redo log buffer/ shared pool/ large pool/java pool/ stream pool/ fixed SGA
  5.软件代码区域
   软件代码区域是存储正在运行或准备运行的代码的一块内存区域,这块区域比较特殊,被oracle区别于用户程序单独存放并保存起来。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-152802-1-1.html 上篇帖子: 删除安装失败的CRS for oracle 10g or 11.1 下篇帖子: 在64位机上PLSQL连oracle11g问题:SQL*Net not properly installed
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表