内存管理包括根据数据库的变化,维护Oracle内存结构的最佳大小。必须被管理的内存是SGA和PGA内存。实例PGA内存是各个PGA内存分配的集合。从Oracle 11g开始可以让数据库完全管理SGA和PGA内存。你只需指定数据库实例使用的总内存,Oracle数据库自动在SGA和PGA的使用量上进行调整,来满足进程的需要。这就叫做自动内存管理。在这种内存管理模式下,数据库也自动调整每一个SGA组成部分和每个PGA的大小。
为了更为直接地控制SGA和实例PGA的大小,可以使用DC的内存指导页面。在页面中禁用自动内存管理,启用自动共享内存管理。

设置自动共享内存管理后,可以设置SGA的目标和最大大小。Oracle数据库会调整SGA的总大小接近于你指定的目标,并动态地调整所有的SGA组成部分的大小。
当设置了自动共享内存管理,也可以显示地指定自动PGA内存管理。可以指定实例PGA的大小,然后数据库会调整实例PGA的大小到指定的目标,并动态调整单个PGA。
如果想完成控制每个SGA组成部分的大小,则可以使用内存指导页面禁用所有的自动内存管理、自动共享内存管理,这叫人工共享内存管理。在这种模式下可以设置每个SGA组成部分大小,因此决定整个SGA的大小,然后需要根据不断变化的基础来手动调整每个SGA组成部分的大小。
手动共享内存管理是为有经验的DBA设计的,在此模式下自动PGA内存管理仍然是可用的。
Oracle数据库内存管理模式
|
内存管理模式 |
设置 |
Oracle数据库自动调整 |
|
自动内存管理 |
实例总内存大小 实例最大内存大小(可选) |
整个SGA大小 SGA各组成部分的大小 实例PGA大小 每个PGA大小 |
|
自动共享内存管理 自动PGA内存管理 |
SGA目标大小 SGA最大大小(可选) 实例PGA目标大小 |
SGA组成部分大小 每个PGA大小 |
|
手动共享内存管理 自动PGA内存管理 |
共享池大小 缓冲区大小 Java池大小 大池大小 实例PGA目标大小 |
每个PGA大小 |
注意:自动内存管理并不是在所有的平台上都可用
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1076058/ ,如需转载,请注明出处,否则将追究法律责任。