ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle Memory Structures

Oracle Memory Structures

原创 Linux操作系统 作者:guo_li_yuan 时间:2008-01-04 14:02:30 0 删除 编辑

Oracle 在内存中存储以下信息:
         1.程序代码
         2.已连接的会话(session)信息,包括当前活动的(active)及非活动的会话
         3.程序执行过程中所需的信息( 例如,某个查询的状态) 
         4.需要在 Oracle 进程间共享并进行通信的信息(例如,锁信息)
         5.数据文件内数据的缓存(例如 数据块 data block 及重做日志条目(redo log entry)

ORACLE 基本内存结构 包括: 
                                                      1.系统全局区    (system global area)             server 进程 和  后台进程 共享

                                  java池               large 池        buffer cache           shared_pool          redo buffer          stream pool          数据字典缓冲区///////

在 SGA 之外,存在服务进程,后台进程,及 Oracle 进程,她们能够和 SGA 交换信息。同时每个进程还需与其 PGA 通信
                                
                                                      2 .程序全局区   pga                     每个进程自己私有pga 

                                                      3. code area   软件代码区

系统全局区 sga 是一组包含ORACLE数据实例控制信息共享内存结构。多个用户并发连接到同一实例,用户共享SGA数据 
                      用户关闭实例时由操作系统负责内存回收。    sga 可读写      fixed sga :sga中包含数据库实例状态信息,后台使用 ,  用户数据不存储在这里。

sga_target  非静态参数可直接修改   sga_max_size 静态参数   sga_max_size 会根据sga_target 调整

             看

SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- -----
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 252M
sga_target                           big integer 252M

SQL> alter system set sga_target=240m;
SQL> show parameter sga_target

NAME                                 TYPE        VALUE
------------------------------------ ----------- -----
sga_target                           big integer 240M
SQL> show parameter sga_max

NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
sga_max_size                         big integer 252M
SQL> shutdown immediate
SQL> startup
SQL> show parameter sga
sga_max_size                         big integer 240M
sga_target                                big integer 240M
SQL> alter system set sga_target=250m;
alter system set sga_target=250m
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-00823: 指定的 sga_target 的值大于 sga_max_size

 

实例监控自动调整的内存组件性能 。  根据内部视图和各种统计信息来决定内存分配使用。
少量sga内存组件不能自动调整 1.保留/回收缓冲区  keep/Recycle buffer cache   db_keep_cache_sizedb_recycle_cache_size 参数设置  2.非标准容量数据块使用的缓存 db_nk_cache_size   3. log_buffer   4. streams_pool_size

使用spfile    oracle shutdown 能够记录各个自动调整内存组件的容量。后启动评估负载特性

待续 ////////

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/377444/viewspace-90055/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 2008.1.8 suspend
请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    11
  • 访问量
    18490