Identify the memory component from which memory may be allocated for:
1.Session memory for the shared server
2.Buffers for I/O slaves
3.Oracle Database Recovery Manager(RMAN) backup and restore operations
A、Large Pool
B、Redo Log Buffer
C、Database Buffer Cache
D、Program Global Area(PGA)
Oracle内存结构主要分共享内存区与非共享内存区,共享内存区主要包含SGA(System Global Area),非共享内存区主要由PGA(Program Global Area)组成,如下图所示:
图 3-5 Oracle实例结构
SGA(System Global Area,系统全局区)是Oracle实例的基本组成部分,是Oracle为一个实例分配的一组共享内存缓冲区,保存着Oracle系统与所有数据库用户的共享信息,包括数据维护、SQL语句分析、重做日志管理等。SGA是实例的主要部分,它在实例启动时分配。
SGA是动态的,由参数SGA_MAX_SIZE决定。查看当前系统的SGA大小的命令是:SHOW PARAMETER SGA_MAX_SIZE。修改SGA大小的命令是:ALTER SYSTEM SET SGA_MAX_SIZE=1200M SCOPE=SPFILE。因为实例内存的分配是在数据库启动时进行的,所以,要让修改生效,必须重启数据库。
在Oracle 10g中引入了ASMM(Automatic Shared Memory Management,自动共享内存管理),DBA只需设置SGA_TARGET,Oracle就会自动地对共享池、数据缓冲区、重做日志缓冲区、大池、Java池和流池进行自动调配,取消自动调配的方法为设置SGA_TARGET为0。
(1)共享池(Shared Pool):用于缓存最近被执行的SQL语句和最近被使用的数据定义。主要包括:库缓存(Library Cache)和数据字典缓存(Data Dictionary Cache)。库缓存是存放用户SQL命令的区域,数据字典缓存存放数据库运行的动态信息。
(2)数据缓冲区(Database Buffer Cache):也叫数据库缓冲区高速缓存,用于缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能,是数据库实例的重要组成部分。
(3)重做日志缓冲区(Redo Log Buffer):对数据库进行修改的任何事务(Transaction)在记录到重做日志文件之前都必须首先放到重做日志缓冲区中。重做日志缓冲区中的内容将被LGWR后台进程写入重做日志文件。重做日志缓冲区是一个循环缓存区,在使用时从顶端向底端写入数据,然后再返回到缓冲区的起始点循环写入。大小由参数LOG_BUFFER决定。
(4)大池(Large Pool):SGA中一个可选的内存区域,大池用来分配大块的内存,处理比共享池更大的内存。大池主要用在3种情况下,①多线程服务器MTS(Multi-Threaded Server),在SGA的Large Pool中分配UGA(User Global Area,UGA内包含了共享服务器模式下的会话信息。在共享服务器模式时,如果Large Pool没有配置,则UGA保存在Share Pool中。);②语句的并行查询(Parallel Executeion of Statements),允许进程间消息缓冲区的分配,用来协调并行查询服务器;③恢复管理器RMAN,用于RMAN磁盘I/O缓冲区。
(5)Java池(Java Pool):为Java命令的语法分析提供服务。
(6)流池(Streams Pool):被Oracle流所使用。
PGA(Program Global Area,程序全局区)是单个Oracle进程使用的内存区域,为每个连接到Oracle数据库的用户进程保留的内存,不属于实例的内存结构。它含有单个进程工作时需要的数据和控制信息。PGA是非共享的,只有服务进程本身才能够访问它自己的PGA区。
根据前面的讲述,题目中的3项均是大池(Large Pool)的适用场景。所以,本题的答案为A。
& 说明:
关于Oracle的内存详细解析可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2137064/。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。