Oracle数据库的体系结构之内存结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
冲区。 ▪ 将所有修改后的缓冲区数据写入数据文件。 ▪ 使用LRU算法将最近使用过的块保留在内存中。 ▪ 通过延迟写来优化磁盘I/O读写。
二 内存结构之后台进程
2 LGWR进程
• LGWR(Log Writer,日志写入)进程,是负责管理日 志缓冲区的一个后台进程,用于将日志缓冲区中的日 志数据写入磁盘的日志文件中。
▪ pga_aggregate_target
big
2 内存结构之后台进程
• Oracle数据库启动时,会启动多个Oracle后台进程, 后台进程是用于执行特定任务的可执行代码块,在系 统启动后异步地为所有数据库用户执行不同的任务。
• 通过查询数据字典v$bgprocess,可以了解数据库中 启动的后台进程信息。
show sga;
1.5 内存结构之SGA
• Oracle内存结构是影响数据库性能的主要因素之 一,其中SGA结构系统全如局区图(SG下A)所示。
数据库缓冲区缓存 (默认大小)
KEEP缓冲池 RECYCLE缓冲池
共享池
保留池
数据库缓冲区缓存(大小为nK)
库缓存
共 享 内 存
数据库缓冲区缓存(大小为nK) 大型池
二 内存结构之后台进程
4 SMON进程
• SMON(System Monitor,系统监控)进程,用于数据 库实例出现故障或系统崩溃时,通过将联机重做日志 文件中的条目应用于数据文件,执行崩溃恢复。
• SMON进程一般用于定期合并字典管理的表空间中的 空闲空间,此外,它还用于在系统重新启动期间清理 所有表空间中的临时段。
数据字典 缓存
共享SQL区 域
PL/SQL过程
Java池
控制结构
和程序包
流池
重做日志缓冲区缓存
固定的SGA
软件代码区域

程序全局区(PGA)

享 内
栈空间
会话信息
排序、散列、合并区域

1.5 系统全局区(SGA)
• 系统全局区(System Global Area,SGA)是Oracle为系 统分配的一组共享的内存结构,可以包含一个数据库实 例的数据或控制信息。
第一篇 Oracle 体系结构
1.1 物理存储结构 1.2 日志文件的修改 1.3 逻辑存储结构 1.4 表空间的建立和修改 1.5 内存结构 1.6 数据字典
第一篇 Oracle 体系结构
1.5 内存结构 ---------------类似于学校的日常管理,各 司其职,各谋其政。
1.5 数据库例程
1.5 数据库例程
客户应用程序 服务器进程
实 例(INSTANCE) 处理数据的内存结构
后台进程
数据库
一、 系统全局区
系统全局区(SGA,System Global Area.)是内存 结构的主要组成部分,是Oracle为一个实例分配的一 组共享内存缓冲区。 SGA区是由Oracle分配的共享内存结构,包含一个 数据库实例共享的数据和控制信息。当多个用户同时 连接同一个实例时,SGA区数据供多个用户共享,所 以SGA区又称为共享全局区。
▪ 1.数据缓冲区
• 数据缓冲区用于存储从磁盘数据文件中读取的数据,供所有用户共 享。由于系统读取内存的速度要比读取磁盘快得多,所以数据缓冲 区的存在可以提高数据库的整体效率。
▪ 2.日志缓冲区
• 日志缓冲区用于存储数据库的修改操作信息。
▪ 3.共享池
• 共享池用于保存最近执行的SQL语句、PL/SQL程序的数据字典信息, 它是对SQL语句和PL/SQL程序进行语法分析、编译和执行的内存区 域。共享池主要包括如下两种子缓存。
Leabharlann Baidu
二 内存结构之后台进程
5 PMON进程
• PMON(Process Monitor,进程监控)进程,用于在 用户进程出现故障时执行进程恢复操作,负责清理内 存存储区和释放该进程所使用的资源。
• PMON进程周期性检查调度进程和服务器进程的状态, 如果发现进程已死,则重新启动它。PMON进程被有 规律地唤醒,检查是否需要使用,或者其他进程发现 需要时也可以调用此进程。
• 程序全局区的大小由参数 pga_aggregate_target决定,可以通过SHOW PARAMETER语句查看该参数的信息,如下:
▪ SQL> SHOW PARAMETER pga;
▪ NAME
TYPE
VALUE
▪ --------------------------------------------- ----------
• LGWR进程将日志信息同步地写入在线日志文件组的 多个日志成员文件中,如果日志文件组中的某个成员 文件被删除或者不可使用,则LGWR进程可以将日志 信息写入该组的其他文件中,从而不影响数据库正常 运行,但会在警告日志文件中记录错误。
二 内存结构之后台进程
3 CKPT进程
• CKPT(Check Point,检查点或检验点)进程,一般在 发生日志切换时自动产生,用于缩短实例恢复所需的 时间。在检查点期间,CKPT进程更新控制文件与数 据文件的标题,从而反映最近成功的SCN(System Change Number,系统更改号)。
❖ 当数据库服务器上的一个数据库启动时,Oracle将分 配一块内存区间,叫做系统全局区(SGA),并启动 一个或多个Oracle进程。
❖ SGA和Oracle后台进程结合在一起,就是一个Oracle 例程,也称为Oracle 实例。
❖ SGA---类似于开会的场所 ❖ Oracle后台进程---类似于学术会议的流程
– 库高速缓存(Library Cache) – 数据字典缓存(Data Dictionary Cache)
▪ 4.大型池
• 大型池,用于提供一个大的缓冲区供数据库的备份与恢复操作使用, 它是SGA的可选区域。
1.5 程序全局区(PGA)
• 程序全局区(Program Global Area,PGA)是 Oracle系统分配给一个进程的私有内存区域。
二 内存结构之后台进程
1、DBWn后台进程 • DBWn(Database Writer,数据库写入)进程,是
Oracle中采用LRU(Least Recently Used,最近最 少使用)算法将数据缓冲区中的数据写入数据文件的 进程。 • DBWn进程主要有如下几个作用: ▪ 管理数据缓冲区,以便用户进程总能找到空闲的缓
相关文档
最新文档