使用手动共享内存管理(MSMM)

使用手动共享内存管理(MSMM)


如果决定不使用自动内存管理或自动共享内存管理,则必须手动配置多个SGA组件大小,然后在数据库工作负载更改时持续监视和调整这些大小。 本节提供有关设置控制这些SGA组件大小的参数的指导。


如果使用DBCA创建数据库并选择手动共享内存管理,则DBCA将提供必须输入缓冲区高速缓存,共享池,大型池和Java池大小的字段。 然后在它创建的服务器参数文件(SPFILE)中设置相应的初始化参数。 如果使用CREATE DATABASE SQL语句和文本初始化参数文件创建数据库,则可以执行以下操作之一:
为设置SGA组件大小的初始化参数提供值。
从文本初始化文件中省略SGA组件大小参数。 Oracle数据库为您没有设置大小的任何组件选择合理的默认值。


启用手动共享内存管理
没有初始化参数本身可以启用手动共享内存管理。 通过禁用自动内存管理和自动共享内存管理,可以有效地启用手动共享内存管理。


要启用手动共享内存管理:
将MEMORY_TARGET初始化参数设置为0。
将SGA_TARGET初始化参数设置为0。
然后,您必须为各种SGA组件设置值,如以下各节所述。

1、设置缓冲区缓存初始化参数
缓冲区高速缓存初始化参数确定SGA的缓冲区高速缓存组件的大小。您可以使用它们为数据库使用的各种块大小指定高速缓存的大小。这些初始化参数都是动态的。
缓冲区高速缓存的大小影响性能。较大的缓存大小通常会减少磁盘读取和写入的次数。但是,大容量缓存可能占用太多的内存并导致内存分页或交换。
Oracle数据库支持多个块大小。如果使用非标准块大小创建表空间,则必须配置非标准块大小缓冲区以适应这些表空间。标准块大小用于SYSTEM表空间。您可以通过设置初始化参数DB_BLOCK_SIZE来指定标准块大小。合法值从2K到32K。
如果您打算在数据库中使用多个块大小,则必须具有DB_CACHE_SIZE和至少一个DB_nK_CACHE_SIZE参数集。 Oracle数据库为DB_CACHE_SIZE参数分配一个适当的默认值,但DB_nK_CACHE_SIZE参数默认为0,并且没有配置额外的块大小缓存。
非标准块大小缓冲区的大小和数量由以下参数指定:
DB_2K_CACHE_SIZE
DB_4K_CACHE_SIZE
DB_8K_CACHE_SIZE
DB_16K_CACHE_SIZE
DB_32K_CACHE_SIZE
每个参数指定相应块大小的高速缓存大小。
注意:有关最大块大小的特定于平台的限制适用,因此某些平台可能不支持这些大小。
示例:
DB_BLOCK_SIZE=4096
DB_CACHE_SIZE=1024M
DB_2K_CACHE_SIZE=256M
DB_8K_CACHE_SIZE=512M
注意:DB_nK_CACHE_SIZE参数不能用于调整标准块大小的缓存大小。 如果DB_BLOCK_SIZE的值是nK,则设置DB_nK_CACHE_SIZE是无效的。 标准块大小的缓存大小始终由DB_CACHE_SIZE的值确定。
缓存的大小是有限的,所以并不是磁盘上的所有数据都可以放入缓存中。缓存满时,后续的缓存未命中导致Oracle数据库将已存在缓存中的脏数据写入磁盘,以便为新数据腾出空间。 (如果缓冲区不是脏的,在将新块读入缓冲区之前不需要写入磁盘。)随后访问任何写入磁盘然后被覆盖的数据会导致额外的缓存未命中。
高速缓存的大小影响数据请求导致高速缓存命中的可能性。如果缓存很大,则更可能包含请求的数据。增加缓存的大小会增加导致缓存命中的数据请求的百分比。
您可以在实例运行时更改缓冲区高速缓存的大小,而不必关闭数据库。用ALTER SYSTEM语句来做到这一点。
使用固定视图V$BUFFER_POOL来跟踪不同缓存组件的大小以及任何未决的调整大小操作。
多个缓冲池
您可以使用单独的缓冲池来配置数据库缓冲区缓存,这些缓冲池可以将数据保留在缓冲区缓存中,或者在使用数据块后立即使缓冲区可用于新数据。 然后可以将特定的模式对象(表,群集,索引和分区)分配给相应的缓冲池,以控制其数据块超时的方式。
KEEP缓冲池将架构对象的数据块保留在内存中。
RECYCLE缓冲池在不再需要时立即从内存中消除数据块。
DEFAULT缓冲池包含未分配给任何缓冲池的模式对象的数据块以及明确分配给DEFAULT池的模式对象。
配置KEEP和RECYCLE缓冲池的初始化参数是DB_KEEP_CACHE_SIZE和DB_RECYCLE_CACHE_SIZE。
注意:多个缓冲池仅适用于标准块大小。 非标准块大小缓存具有一个DEFAULT池。


2、指定共享池大小
SHARED_POOL_SIZE初始化参数是一个动态参数,可让您指定或调整SGA的共享池组件的大小。 Oracle数据库选择一个适当的默认值。
在Oracle数据库10g第1版之前的版本中,分配的共享池内存量等于SHARED_POOL_SIZE初始化参数的值加上实例启动期间计算的内部SGA开销量。内部SGA开销是指Oracle数据库在启动期间根据其他几个初始化参数的值分配的内存。该内存用于维护SGA中不同服务器组件的状态。例如,如果SHARED_POOL_SIZE参数设置为64 MB,并将内部SGA开销计算为12 MB,则共享池的实际大小为64 + 12 = 76 MB,但SHARED_POOL_SIZE参数的值仍显示为64 MB。开始对于Oracle数据库10g第1版,内部SGA开销的大小包含在用户指定的值SHARED_POOL_SIZE中。如果您没有使用自动内存管理或自动共享内存管理,则启动时分配的共享池内存量等于初始化参数SHARED_POOL_SIZE的值(四舍五入为颗粒大小的倍数)。因此,您必须设置此参数,使其包含内部SGA开销以及共享池大小的所需值。在前面的示例中,如果SHARED_POOL_SIZE参数在启动时设置为64MB,则启动后可用的共享池为64-12 = 52MB,假定内部SGA开销值保持不变。为了在启动后保持共享池内存的有效值为64MB,您必须将SHARED_POOL_SIZE参数设置为64 + 12 = 76MB。
从早于Oracle数据库10g第1版的版本进行迁移时,Oracle数据库11g迁移实用程序根据升级前环境中的内部SGA开销的值并基于此值的旧值为此参数推荐一个新值 参数。 从Oracle数据库10g开始,可以从V $ SGAINFO视图中查询内部SGA开销(也称为共享池中的启动开销)的确切值。 另外,在手动共享内存管理模式下,如果用户指定的SHARED_POOL_SIZE值太小,甚至不能满足内部SGA开销的要求,那么Oracle数据库在启动过程中会生成一个ORA-371错误,并提供用于 SHARED_POOL_SIZE参数。当您在Oracle数据库11g中使用自动共享内存管理时,将自动调整共享池,并且不会生成ORA-371错误。
结果缓存和共享池大小
结果缓存从共享池中获取内存。 因此,如果您希望增加结果缓存的最大大小,请在调整共享池大小时考虑这一点。


3、指定Large Pool大小
LARGE_POOL_SIZE初始化参数是一个动态参数,可让您指定或调整SGA的大型池组件的大小。 大池是SGA的可选组件。 如果要创建大型池,则必须专门设置LARGE_POOL_SIZE参数。


4、指定Java池大小
JAVA_POOL_SIZE初始化参数是一个动态参数,可让您指定或调整SGA的Java池组件大小。


5、指定Java池大小
JAVA_POOL_SIZE初始化参数是一个动态参数,可让您指定或调整SGA的Java池组件大小。


6、指定流池大小
STREAMS_POOL_SIZE初始化参数是一个动态参数,可用于指定或调整SGA的Streams Pool组件的大小。 如果STREAMS_POOL_SIZE设置为0,则在需要时,Oracle Streams产品将内存从缓冲区高速缓存传输到Streams池。


7、指定结果缓存最大大小
RESULT_CACHE_MAX_SIZE初始化参数是一个动态参数,使您可以指定SGA的结果缓存组件的最大大小。通常,不需要指定此参数,因为缺省最大大小是由数据库根据SGA可用的总内存和当前使用的内存管理方法选择的。您可以通过显示RESULT_CACHE_MAX_SIZE参数的值来查看当前的默认最大大小。如果要更改此最大大小,可以使用ALTER SYSTEM语句设置RESULT_CACHE_MAX_SIZE,也可以在文本初始化参数文件中指定此参数。在每种情况下,该值都向上舍入到最接近32K的倍数。
如果实例启动时RESULT_CACHE_MAX_SIZE为0,则结果缓存被禁用。要重新启用它,您必须将RESULT_CACHE_MAX_SIZE设置为非零值(或从文本初始化参数文件中除去此参数以获取默认最大大小),然后重新启动数据库。
请注意,在禁用结果缓存的情况下启动数据库后,如果使用ALTER SYSTEM语句将RESULT_CACHE_MAX_SIZE设置为非零值,但不重新启动数据库,则查询RESULT_CACHE_MAX_SIZE参数的值将返回非零值,即使结果缓存为仍然不可用。因此,RESULT_CACHE_MAX_SIZE的值不是确定结果缓存是否被启用的最可靠的方式。您可以改为使用以下查询:
SELECT dbms_result_cache.status() FROM dual;
结果缓存从共享池中获取内存,因此如果增加最大结果缓存大小,则还应考虑增加共享池大小。
视图V$RESULT_CACHE_STATISTICS和PL/SQL包过程DBMS_RESULT_CACHE.MEMORY_REPORT显示信息可帮助您确定当前分配给结果缓存的内存量。
PL/SQL包函数DBMS_RESULT_CACHE.FLUSH清除结果缓存并将所有内存释放回共享池。


8、指定其他SGA初始化参数
您可以设置一些额外的初始化参数来控制SGA如何使用内存。


物理内存
LOCK_SGA参数设置为TRUE时,会将整个SGA锁定到物理内存中。此参数不能与自动内存管理或自动共享内存管理结合使用。


SGA起始地址
SHARED_MEMORY_ADDRESS和HI_SHARED_MEMORY_ADDRESS参数指定运行时的SGA起始地址。这些参数很少使用。对于64位平台,HI_SHARED_MEMORY_ADDRESS指定64位地址的高位32位。


扩展缓冲区缓存机制
USE_INDIRECT_DATA_BUFFERS参数允许使用可支持超过4 GB物理内存的32位平台的扩展缓冲区高速缓存机制。在不支持这么多物理内存的平台上,该参数将被忽略。此参数不能与自动内存管理或自动共享内存管理结合使用。







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了监督,控制业务中的各种流程,以建立有效的制造系统,例如卖方-制造商关系,客户制造商关系,商品或服务生产中的车间管理,运营管理起着重要的作用。 运营管理基本上是在管理过程,该过程将原材料,人力和能源形式的输入转换为商品和/或服务等输出。 它是对制造系统的反馈,该制造系统会纠正操作并保持系统正常运行。 因此,本文的目的是建立更强大的制造系统,以实现制造企业的业务可持续性。制造系统由生产机器,物料搬运系统,用于调度和控制活动的计算机系统以及执行不同任务的人员组成。 多年来,已经发展出各种类型的制造系统,以在动态和竞争的市场中满足客户的需求。 专用制造系统(DMS),其次是柔性制造系统(FMS)和蜂窝制造系统(CMS)是上世纪以来发展起来的不同制造系统。 随着时间的流逝,中型和大批量制造商出现了新的市场条件,其特征是:新产品的机会期较短,产品需求的波动较大。 通过使用多种工程方法(例如同步工程和计算机辅助设计),可以大大缩短产品开发时间,以满足对新产品的需求。 加速时间以及设计和构建生产系统的时间是当今高质量生产的瓶颈。 通过减少制造系统的交货时间,对多变的市场进行开发和生产新产品既经济又有益。 柔性制造系统(FMS),可以生产各种类型的产品,但当变化很大时,不能满足产品的需求。 由于FMS的平均性能,大多数工业家都不满意,因此没有考虑这种类型的系统。 由于许多硬件和软件组件(如计算机,驱动器,控制器和软件)的产品生命周期较短,因此柔性制造系统(FMS)变得效率低下且过时。 效率低下的生产系统增加了产品制造的成本和时间。 除此之外,即使这种类型的系统也充分利用了它的资源,它们也不被快速变化和增长的市场所接受。 “由于这些不利因素和不断发展的新市场条件,需要一种新的制造方法,该方法应能够:很快地推出新产品模型,随着市场的增长增加制造能力的增加,并在生产中利用制造技术的新发展”。 为了使大规模生产受益并允许生产任何数量的高度定制产品,可重构制造系统(RMS)被视为未来几年的制造系统.RMS被定义为旨在满足零件族要求的系统通过Swift调整其硬件和软件组件以响应市场的突然变化。 RMS是最有前途的技术,它的功能具有内置功能,可以进行容量调整,产品多样化和缩短重新配置时间。 RMS需要在某些关键领域进行研发:与系统级别的设计相关的研发问题,与机器级别的设计相关的研发问题以及与缩短时间相关的研发问题。对于分析制造系统的行为非常重要。 实施改进计划和有效执行制造决策,绩效指标有助于研究制造状况,监督和控制运营效率。 尽管文献中发现了许多性能指标,但要在RMS环境中选择这些指标以实现其目标并非易事。工业界的目标是通过使用最佳方法在适当的时间制造所需数量的产品,但仍有一些工作要做。在基于高响应度的制造系统中需要改进。 为了响应,机器充当独立的模块,其中一个组件的停止/故障不会迫使整个机器及其生产停止/发生故障。 所考虑的系统是可以同时操作不同对象的多状态制造系统(MSMS),并且它们允许在每个生产阶段并行使用类似的多状态模块化机器(MSMM)。 MSMS的机器通常被视为一个整体,考虑可靠性,系统性能的预期生产率。可重新配置的制造系统是使用可以快速可靠地组合的软件和硬件模块设计的。 为此,系统设计需要具有以下关键特征的RMS:模块化,可集成性,可伸缩性,可转换性,定制性和可诊断性。 这些特征与生产系统,机器及其控制器的设计有关。 它们也可能适用于人力资源以及整个企业。 可重构制造系统中的模块化方法是一种自然的方法,已在人类努力的许多不同情况下使用。 可重配置制造系统中的所有重要组件(例如软件,轴,工具和控制器)本质上都是模块化的。 可以根据需要调整或替换这些组件,以更好地适应新的应用程序。 由于易于维护模块,因此这些类型的制造系统的生命周期成本非常低。 通过集成在机器控制器中,新的补偿和校准算法可提高准确性。 系统重新配置和设置需要快速执行才能有效。 零件程序,固定装置,工具的更改,自由度(手动调整)属于可转换性。 为了达到这个目的,RMS包含了新的和先进的机制,这些机制允许轻松地进行重新配置,以及感测和可诊断的属性,从而使重新配置后的机器易于校准。 基本模块及其综合方法的选择使系统易于集成,诊断,转换和定制。 在本工作中,已经讨论了模块化和可转换性的特征。 给出了一个插图,以了解模块化和可转换特性在可重配置制造系统中用于人性化工作和工作环境的适用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值