当前位置:  数据库>oracle

Oracle 10g 自动共享内存管理

    来源: 互联网  发布时间:2017-04-07

    本文导语: 从Oracle 10g开始,Oracle提供了(简称ASMM,即)新特性。所谓ASMM,就是指我们不再需要手工设置shared pool、buffer pool等若干内存池的大小,而是即可。Oracle 10g数据库会根据的变化,的大小,从而使得内存始终能够流向最需要它的...

从Oracle 10g开始,Oracle提供了(简称ASMM,即)新特性。所谓ASMM,就是指我们不再需要手工设置shared pool、buffer pool等若干内存池的大小,而是即可。Oracle 10g数据库会根据的变化,的大小,从而使得内存始终能够流向最需要它的地方。

比如,假设某个系统,白天属于OLTP应用,因此会需要较多的。而该系统在晚上属于DSS应用。对于DSS应用,很多的SQL语句由于都是进行全表扫描,因此都会完成。我们知道,并行时需要靠若干的从属进程完成工作,而从属进程会从中进行分配。于是,晚上会需要较多的large pool。如果我们启用了ASMM,则数据库会根据负载的变化而自动的对内存大小进行调整,就不需要DBA进行手工调整了。

Oracle 10g提供了一个新的初始化参数:,该参数定义了整个SGA的总容量。同时,初始化参数必须设置为或才能启动ASMM,否则如果设置为basic,则关闭ASMM。

我们不再需要设置shared_pool_size、db_cache_size、large_pool_size、 java_pool_size、streams_pool_size这五个初始化参数。而其他的内存池,比如。

举例来说,假设我们将sga_target设置为500MB,表示SGA总容量为 500MB。但是如果我们需要配置100MB的keep buffer cache,则必须手工设置参数db_keep_cache_size为100MB。同时如果设置参数log_buffer为3MB,那么shared pool、buffer cache等可以调整的5个部分的总容量就是397MB(500-100-3=397)。

Oracle 10g还提供了另一个初始化参数sga_max_size。

为了实现ASMM,Oracle新引入了一个名为的后台进程。于是,MMAN进程就会根据该返回的值,来设置各个内存池。同时,如果我们使用了spfile,还会将这些顾问得出的建议值里。这样,下次启动实例时,就可以直接把顾问得出的建议值拿来作为启动内存池的依据了。

如果,比如设置了参数 shared_pool_size为一个非0值的时候,会怎么样?对于Oracle 10g来说,我们为自动调整大小的内存组件设置了值,则会。也就是说,假设sga_target为4GB,而我们将 shared_pool_size设置为600MB,则MMAN在进行自动调整时,永远不会将shared pool设置为600MB以下。

实际上,为了使用ASMM,Oracle为这5个可自动调整的组件又提供了5个控制它们大小尺寸的参数,以。我们把当前的spfile导出到pfile里。

SQL> create pfile='/u01/init.ora' from spfile;
SQL> !vi /u01/init.ora

 

打开该pfile以后,我们会发现文件的前5行,会显示如下的内容(具体值可能不一样):

 

可以看到,这5个初始化参数都以开头,后面的部分与我们手工设置内存池大小的参数相同。等。这种以开头的参数我们叫做隐藏参数。这种参数会根据版本的不同而发生改变。因此,当我们启动数据库时,数据库内核会在初始化参数__shared_pool_size与 shared_pool_size之间进行比较。如果shared_pool_size没有设定,或设定为0,或设定的值比 __shared_pool_size小,则以MMAN自动调整的值来设置内存池的尺寸。否则,以DBA设定的值来设置内存池的尺寸。

如果我们在数据库运行过程中,修改了某个可自动调整的内存池的大小,这时会怎么样?比如,当前MMAN自动调整出来的shared pool大小为150MB,也就是__shared_pool_size为150MB,同时shared_pool_size为60MB。这时,如果我们将参数shared_pool_size从60MB设置为100MB的话,则shared pool的大小仍然为150MB,但是新设置的100MB将作为自动调整时的下限;如果我们将参数shared_pool_size从60MB设置为 200MB,则shared pool立即扩张,从150MB扩张到200MB,同时200MB也将作为自动调整的新的下限。

我们来验证一下。视图里记录了能够动态调整的各个内存池的大小。

SQL> 
2  
COMPONENT                                       SIZE_MB
------------------------------------      ------------
shared pool                                             80

当前MMAN自动调整出来的shared pool大小为80MB。

SQL> 
SQL> 
2  
COMPONENT                                       SIZE_MB
------------------------------------      ------------
shared pool                                     80

 

我们将shared_pool_size设定为70MB,小于自动调整出来的值。我们再将其从80MB扩大到100MB。

SQL> 
SQL> 
2  


COMPONENT                                       SIZE_MB
------------------------------------      ------------
shared pool                                     100

 


    
 
 

您可能感兴趣的文章:

  • Oracle 监听内存泄露问题
  • fedora10安装oracle11g提示物理内存不足怎么办?
  • 通过进程id号知道一个Oracle会话所占用的内存
  • ■帮一个朋友维护网站,oracle运行半小时就自动锁死,用top发现是其狂吃内存,直到吃完为止。怎么办啊
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • 我准备装linux 7.3,大家能给点意见吗,我1GB的内存,那么交换区设多大? oracle9i能在7.3上通过吗?
  • Oracle安装过程中物理内存检查及临时temp空间不足问题解决
  • 读一个10M的txt文件到Oracle数据库中,用C实现,请问有什么好的方法吗?即不怎么占内存,又不怎么占Cpu!
  • 甲骨文宣布推出Oracle内存数据库11g
  • Oracle内存数据库11g和高速缓存11g上市
  • 技术文章 iis7站长之家
  • Oracle专用服务器的内存结构分布原则
  • 请问:谁在linux下安装过oracle?详细安装步骤共享一下吧!我有急用。谢谢了!
  • Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除
  • Oracle 共享服务器(Shared Server/MTS)的配置简析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助:oracle9在redhat9上安装好后,oracle管理工具会在菜单工具栏上显示吗?
  • Oracle自动存储管理支持库 ASMLib
  • Oracle ASM自动管理存储管理简介
  • windows上要装什么软件才能管理到linux上的oracle?
  • 在HP Unix 下Oracle的控制和管理
  • 用Oracle管理服务器将数据导入与导出
  • Oracle管理工具 phpOraAdmin
  • Linux上管理本机Oracle的时候出现找不到ServiceName的错误
  • 有谁知道Oracle8的数据库管理工具是用什么开发工具编写的?
  • 甲骨文新推Oracle Linux管理软件包
  • oracle区管理和段空间管理详细介绍
  • Oracle 管理Undo数据
  • 关于Oracle数据库管理员认证方法简述
  • Oracle 权限管理入门
  • Oracle使用配置文件创建口令管理策略
  • Oracle中Datafiles的管理
  • Oracle 9i中自动撤销管理的优点分析
  • Oracle帐户管理
  • Oracle数据库安全性管理基本措施实例解析
  • Oracle 数据库管理脚本命名规范
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3