• 欢迎访问ByWei.Cn,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,加入百味博客 QQ群
  • 已升级为最新版主题,并将持续优化改造中,支持说说碎语功能,可像添加文章一样直接添加说说,博客主题升级啦
  • 感谢您百度求点赞啊!百度网址
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏百味博客吧
  • 博主热烈欢迎 软件定制开发 联系:http://www.bywei.cn

Oracle体系结构:SGA和五个必须的ORACLE后台进程

数据库 bywei 7年前 (2012-11-15) 1554次浏览 0个评论 扫描二维码

系统全局区又称 SGA(SGA)等一定的内存和 ORACLE 后台进程组成了 ORACLE 实例(Instance) ,而数据库(Database)指的是数据库物理文件。oracle 五个必须的 ORACLE 后台进程有是什么?以及什么是 SGA?下面做如下详细介绍。

(1)五个必须的 ORACLE 后台进程:SMON、PMON、DBWn、CKPT、LGWR

系统监控进程(System Monitor SMON) 在数据库系统启动时执行恢复工作的强制性进程
进程监控进程(Process Monitor PMON) 用于恢复失败的数据库用户的强制性进程,它先获取失败用户的标识,释放该用户占有的所有数据库资源。
数据库写入进程(Database Writer, DBWn) 它将修改后的数据块写回数据库文件。日志写入进程(Log Writer , LGWR) 一个专门用于将重做项写入重做日志的进程。
校验点进程(Checkpoint Process CKPT ) ORACLE 把内存中脏数据块中的信息写回磁盘的判断进程。

(2)什么是 SGA?

系统全局区又称 SGA (System Global Area 也称 Shared Global Area) 是 Oracle Instance 的 基本组成部分,在实例启动时分配。是一组包含一个 Oracle 实例的数据和控制信息的共享内存结构。主要是用于存储数据库信息的内存区,该信息为数据库进程所共享(PGA 不能共享的)。它包含 Oracle 服务器的数据和控制信息,它是在 Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

SGA 重要组成的三部分

共享池(Shared Pool) 主要用来存储最近执行过的 SQL 语句和最近使用过的数据字典的数据;它主要通过 INIT.ORA 文件中的 shared_pool_size 和 shared_pool_reserved_size 两个参数来设置。

数据高速缓存区(Data Buffer Cache) 主要用来存储最近使用过的数据,可能是要写到数据文件的,也可能是从数据文件读取的;它主要通过 INIT.ORA 文件中 db_block_buffers 参数来设置;Data Buffer 的大小=db_block_buffers* db_block_size;

重做日志缓存区(Redo Log Buffer) 主要存储服务进程和后台进程的变化信息;它主要通过 INIT.ORA 文件中的 log_buffer 参数来设置; Redo Log Buffer 的大小=log_buffer* db_block_size;

当然,SGA 不仅仅只是上面的三部分,还包括如 Java pool(用来存储 java 代码)、Large pool(供不是和 SQL 直接相关的进程使用,如:当数据备份或恢复操作时,RMAN backup 用作磁盘 I/O 缓存器;Parallel 时用作消息缓存器;MTS 回话内存)等部分,我们可以通过 v$sysstat、v$rowcache、v$librarycache 等系统视图来监控 SGA。


百味博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle 体系结构:SGA 和五个必须的 ORACLE 后台进程
喜欢 (0)
[微信扫一扫]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址