网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 体系架构 > Oracle体系结构:内存结构和进程结构-体系架构  

Oracle体系结构:内存结构和进程结构-体系架构

2007-04-28  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  2-1-2:日志缓冲区(Log Buffer Cache)
    日志缓冲区用来存储数据库的修改信息。该区对数据库性能的影响很小,有关日
   志后面还会有详细的介绍。
    查询日志缓冲区大小:
   SQL> show parameter log_buffer
   NAME            TYPE          VALUE
   ----------     -----------  -------
   log_buffer     integer       262144 

网管下载dl.bitscn.com

  2-1-3:共享池(Share Pool)
    共享池是对SQL,PL/SQL程序进行语法分析,编译,执行的内存区域。
    它包含三个部分:(都不可单独定义大小,必须通过share pool间接定义)。
    •库缓冲区(Library Cache)包含SQL,PL/SQL语句的分析码,执行计划。
    •数据字典缓冲区(Data Dictionary Cache)表,列定义,权限。
    •用户全局区(Usr Global Area)用户MTS会话信息。
   共享池的大小可以动态修改:
    ======================================
    SQL> show parameter shared_pool_size
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------ 网管朋友网www_bitscn_net
    __shared_pool_size                   big integer 80M
    shared_pool_size                     big integer 80M
    
    SQL> alter system set shared_pool_size=78m 
    System altered.
    ======================================
    #上面的__shared_pool_size一行奇怪? 网管朋友网www_bitscn_net

 2-2:程序全局区PGA(Programe Global Area)
   程序全局区是包含单个用户或服务器数据和控制信息的内存区域,它是在用户进程连
  接到Oracle并创建一个会话时由Oracle自动分配的,不可共享,主要用于用户在编程存
  储变量和数组。
   网管u家www.bitscn.net

 

网管朋友网www_bitscn_net


   如上图:
    •Stack Space是用来存储用户会话变量和数组的存储区域;
    •User Session Data是为用户会话使用的附加存储区。
     |--Session Information
     |--Sort Area
     |--Cursor Information   
   注意Session information(用户会话信息)在独占服务器中与在共享服务器中所处
  的内存区域是不同的。

中国网管联盟bitsCN.com


 2-3:排序区,大池,Java池
   排序区(Sort Area)为有排序要求的SQL语句提供内存空间。系统使用专用的内存区
  域进行数据排序,这部分空间就是排序区。在Oracle数据库中,用户数据的排序可使用
  两个区域,一个是内存排序区,一个是磁盘临时段,系统优先使用内存排序区进行排序。
  如果内存不够,Orcle自动使用磁盘临时表空间进行排序。为提高数据排序的速度,建议
  尽量使用内存排序区,而不要使用临时段。
   参数sort_area_size用来设置排序区大小。(好象不能动态修改?)

中国网管联盟bitsCN.com

   大池(Large Pool)用于数据库备份工具--恢复管理器(RMAN:Recovery Manager)。
  Large Pool的大小由large_pool_size确定,可用下面语句查询和修改:
  =========================================
  SQL> show parameter large_pool_size
  NAME                  TYPE        VALUE
  -----------------   ----------- -------
  large_pool_size     big integer      8M

网管联盟bitsCN_com

  SQL> alter system set large_pool_size=7m;
  System altered. 
  =========================================
   
   Java池主要用于Java语言开发,一般来说不低于20M。其大小由java_pool_size来
  确定,可以动态调整。 网管下载dl.bitscn.com

 2-4:Oracle自动共享内存管理(Automatic Shared Memory(SGA) Management)
  在Oracle 8i/9i中数据库管理员必须手动调整SGA各区的各个参数取值,每个区要根据
 负荷轻重分别设置,如果设置不当,比如当某个区负荷增大时,没有调整该区内存大小,则
 可能出现ORA-4031:unable to allocate ...bytes of shared memory错误。
  在Oracle 10g中,将参数STATISTICS_LEVEL设置为TYPICAL/ALL,使用SGA_TARGET指
 定SGA区总大小,数据库会根据需要在各个组件之间自动分配内存大小。
 下面是系统自动调整的区域:
  •固定SGA区及其他•共享池•数据缓冲区• Java池•大池。
  注意:如果不设置SGA_TARGET,则自动共享内存管理功能被禁止。
  ==========================================
  SQL> show parameter statistics_level
  NAME                     TYPE        VALUE
  --------------------- ----------- ------------ 网管论坛bbs_bitsCN_com
  statistics_level      string      TYPICAL
  
  SQL> alter system set statistics_level=all;
  System altered.

网管朋友网www_bitscn_net

  #typical和all有什么区别?
  
  SQL> alter system set statistics_level=typical;
  System altered. 网管u家bitscn.net

  SQL> show parameter sga_target
  NAME            TYPE        VALUE
  ------------- ----------- ----------
  sga_target    big integer 0

网管网www.bitscn.com

  SQL> alter system set sga_target=170m;
  alter system set sga_target=170m
  *
  ERROR at line 1:
  ORA-02097: parameter cannot be modified because specified value is invalid
  ORA-00823: Specified value of sga_target greater than sga_max_size 网管联盟bitsCN@com

  SQL> alter system set sga_target=20m;
  System altered. 网管联盟bitsCN_com

  #不过后来又发现sga_target的值变成了140M? 下面是语句执行情况。
  SQL> show parameter sga_target
  NAME          TYPE        VALUE
  ------------- ----------- -------
  sga_target    big integer 140M
  
  SQL> alter system set sga_target=0;
  System altered. 网管下载dl.bitscn.com

  SQL> show parameter sga_target
  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ------
  sga_target                           big integer 0 中国网管论坛bbs.bitsCN.com

  #改为20M
  SQL> alter system set sga_target=20m;
  System altered. 网管u家www.bitscn.net

  #显示的是140M
  SQL> show parameter sga_target
  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ------
  sga_target                           big integer 140M

网管u家www.bitscn.net

  #不可缩减?
  SQL> alter system set sga_target=130m;
  alter system set sga_target=130m
  *
  ERROR at line 1:
  ORA-02097: parameter cannot be modified because specified value is invalid
  ORA-00827: could not shrink sga_target to specified value
  
  #不可增加
  SQL> alter system set sga_target=141m;
  alter system set sga_target=141m
  *
  ERROR at line 1:
  ORA-02097: parameter cannot be modified because specified value is invalid
  ORA-00823: Specified value of sga_target greater than sga_max_size
  
3:Oracle实例的进程结构(Process Structure)
 Oracle包含三类进程:
 •用户进程(User Process)
 •服务器进程(Server Process)
 •后台进程(Background Process)
 
 3-1:用户进程和服务器进程
  当数据库用户请求连接到Oracle的服务时启动用户进程(比如启动SQLPlus时)。

网管网www.bitscn.com


  •用户进程首先必须建立一个连接。
  •用户不能直接与Oracle服务器,必须通过服务器进程交互。
  •服务器进程是用户进程与服务器交互的桥梁,它可以与Oracle Server直接交互。
  •服务器进程可以有共享和独占两种形式。
               
 
网管bitscn_com


  网管u家bitscn.net

网管u家bitscn.net

TAGs   结构   体系   架构   进程   内存       数据     数据库      
 上一篇:使用Oracle内建功能构建ETL流程-体系架构   下一篇:Oracle数据库安全性管理基本措施简介-体系架构
Oracle体系结构:内存结构和进程结构-体系架构 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: