【转载地址】:http://blog.chinaunix.net/uid-25909722-id-3356808.html
1. 几个重要的Oracle术语
要学习Oracle的体系结构,先要搞明白几个重要的术语:Oracle服务器、Oracle实例、Oracle数据库。
Oracle服务器:即Oracle server,由Oracle实例和Oracle数据库组成。
Oracle实例:即Oracle instance,是在Oracle启动的第一个阶段根据参数文件,生成的一系列的后台进程和一块共享内存SGA共同组成。
Oracle数据库:即Oracle database,是由Oracle所有的物理文件所组成。其中最关键的有:控制文件、数据文件、redo log文件等。
Oracle实例与Oracle数据库进行交互,Oracle实例来对数据库进行各种操作,从而对外提供数据库的存储和检索服务。
2. Oracle总体结构
Oracle server由Oracle instance和Oracle database组成。而Oracle instance又由后台进程和共享内存组成,所以Oracle的结构又包含了内存结构和进程结构;而Oracle database有物理文件组成,所以Oracle结构也包含了存储结构。
下面分别对Oracle内存结构、Oracle进程结构、Oracle存储结构进行概述,让我们对Oracle有一个对初步的概念。
3. Oracle内存结构
总体而言Oracle的内存由两大部分组成:PGA和SGA,其结构如下图所示:
不管是Server process,还是后台进程,他们都有自己进程私有的内存空间,即PGA;而SGA则为所有后台进程间共享访问使用。
给Server process分配的PGA,根据其功能有划分为几个具体的部分。后续博客再进行具体探讨。
SGA在Oracle10g中分为6个部分,如上图所示。下面分别概述其作用:
1)shared pool(共享池):
主要作用是提高SQL语句以及PL/SQL语句的执行效率,缓存执行过的SQL语句,执行计划;PL/SQL语句的代码块、执行码等(该部分称为library cache);以及在编译SQL, PL/SQL语句是参照的数据字典信息(该部分称为dictionary cache或row cache)。是SGA中最重要的部分之一。
2)database buffer cache(数据库缓冲区):
主要作用是缓存曾经读取过的数据块,Oracle数据库中对数据的所有修改操作都是在buffer cache中进行的。因为所有的操作都必须先将物理文件上的数据块读取到buffer cache中,然后才能进行各种操作。buffer cache是SGA中最大的内存区域,也是SGA中最重要的部分之一。
3)redo log buffer(重做日志缓冲区):
缓存生成的redo log记录,日志写后台进程会将log buffer中的记录写到磁盘中。也是SGA中最重要的部分之一。
4)Large pool(大池):
可选的内存池,其主要作用是分担shared pool的压力。某些情况,比如备份恢复,如果没有分配Large pool,则会从shared pool中分配内存,这会增加shared pool的负担。
5)Java pool(Java池):
用于Java程序使用。
6)stream pool(流池):
数据库在流工作是使用的内存区域。
4. Oracle进程结构
Oracle的进程主要有后台进程和Server process(其实按照Linux的严格意义来说,Server process也是属于后台进程)。后台进程主要对Oracle数据库进程各种维护和操作,而Server process主要来处理用户的请求:
用户进程通过监听器来访问Oracle instacne,那么就会触发生成一个Server process进程,来对该用户进程的请求进程处理。后台进程一般有:LGWR, DBWn, ARCn, CKPT, SMON, PMON等等。
1)DBWn(database writer数据库写):
主要作用是将被修改过的buffer cache按照一定的条件写入物理磁盘。
2)LGWR(log writer,日志写):
主要作用是将log buffer中的redo log记录按照一定的条件写入联机的redo log文件。
3)CKPT(checkpoint,检查点进程):
主要作用是将检查点位置(checkpoint position)写入控制文件和数据文件的头部。
4)SMON(system monitor,系统监控进程):
主要作用是在数据库启动时,判断实例上次是否正常关闭,如果是非正常关闭,则进程实例恢复。另外,还会合并相连的可以空间。
5)PMON(process monitor,进程监控):
监控Server process, 如果Server process非正常关闭,则PMON负责清理它占用的各种资源。
5. Oracle存储结构
存储结构即物理文件的组成结构,Oracle涉及的物理文件如下所示:
图2:
其中的控制文件、数据文件、重做日志文件是不可或缺的关键文件:
1)control file(控制文件):
包含了数据库物理结构的信息,比如各种文件的存放位置,当前数据库的运行状态等。十分重要,丢失则数据库实例不能启动。
2)datafile(数据文件):
存放数据的文件。
3)online redo log file(联机重做日志文件):
存放redo log的文件。维护数据库的一致性,用于数据库恢复。
分享到:
相关推荐
Oracle 11g 体系结构思维导图
Oracle 10g体系结构
标题:“Oracle11g体系结构图” 描述:“Oracle11g体系结构图,oracle结构清清楚楚” **一、Oracle11g体系结构概览** Oracle11g是Oracle公司推出的一款高性能、高可用性和高安全性的关系型数据库管理系统。其体系...
Oracle 11g体系结构深入剖析和运维管理(一)资源目录:【】1_Oracle学习前奏【】2_Oracle软件安装准备工作【】3_Oracle软件安装和数据库的创建【】4_Oracle数据库及相关软件的启动和关闭【】5_计算机工作机制概述【】...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,其复杂的体系结构是保证高效稳定运行的基础。本文将深入探讨Oracle体系结构的各个关键组成部分。 首先,我们关注物理结构,这是Oracle数据库在磁盘上的实际...
资源名称:Oracle 11g体系结构深入剖析和运维管理(四)资源目录:【】28_存储结构_段区块【】29_检查点队列(checkpointqueue)【】30_实例崩溃恢复原理剖析【】31_系统改变号(SCN)详解【】32_事务概述【】33_事务ACID...
资源名称:Oracle 11g体系结构深入剖析和运维管理(五)资源目录:【】37_深入剖析事务槽及Oracle多种提交方式【】38_OracleIMU及RedoPrivateStrands技术【】39_读一致性(ORA-01555错误机制分析)及Undo表空间大小设置...
oracle 10G 体系结构,高清大图,讲解详细。
Oracle 10g 体系结构是理解其高效运行和管理的关键。Oracle数据库是企业级的关系型数据库管理系统,广泛应用于各种规模的企业中。本课重点介绍了Oracle 10g的架构,旨在帮助数据库管理员(DBA)更好地管理和维护...
Oracle10g体系结构探讨
【Oracle10G体系结构】是Oracle数据库在2003年发布的一个重要版本,它引入了许多创新技术和改进,以提升数据库性能、可用性和可管理性。本篇将基于【Oracle10G体系结构】这一主题,深入探讨其核心概念、组件及工作...
以下是对Oracle 10G体系结构的详细解析: 一、数据库实例 Oracle数据库实例是由内存结构和后台进程组成的。在启动时,Oracle会创建一系列的数据缓冲区、重做日志缓冲区、共享池等内存区域,并启动相应的后台进程,...
Oracle 12c数据库体系结构图文详解手册是 Oracle 12c数据库管理系统的核心组件之一,该手册详细介绍了 Oracle 12c数据库的体系结构、实例、数据库、内存结构、后台进程、控制文件、重做日志文件、数据文件等概念。...
Oracle 10g数据库体系结构是理解其工作原理和高效管理的关键。Oracle 10g是Oracle数据库的一个版本,特别适用于数据库管理员(DBA)进行管理和维护。本课内容主要涵盖Oracle 10g的内存结构、进程结构以及存储结构。 ...
Oracle10g体系结构.pptx
Oracle 10g 是一款广泛使用的数据库管理系统,其体系结构对于理解数据库的运作方式至关重要。DBA(数据库管理员)在管理Oracle数据库时,必须对这一结构有深入的理解。Oracle 10g 的体系结构主要由内存结构、进程...
Oracle 10g数据库体系结构是理解其高效运行和管理的关键。DBA(数据库管理员)在这一领域扮演着至关重要的角色,他们负责整个数据库系统的管理、监控和维护。Oracle 10g的体系结构主要由内存结构、进程结构和存储...