Oracle 实例是指 SGA同后台进程
SGA包括共享池,数据缓冲区,重做日志缓冲区,其他结构如锁管理,统计数据。还可以包括两个其他不一定
必须的缓存池:大池同JAVA池
SGA用来存放被数据库进程来共享的数据有:数据和控制信息。SGA可以动态的配置的不用关ORACLE的实例;
共享池由库缓存同数据字典缓存组成的,里面存放的是最近执行的SQL语句同最近定义的数据.共享池环境有可变与不可变的结构构成,可变的由保持同一个大小,可变的由用户决定的但是他们的真正的大小由初始化时决定;
库缓存用来存放最近被用的SQL同PLSQL语句以及共用的声明语句其大小基于共享池大小(这里所说的语句不同于我们平时说这里的含义是被解析过的形成的执行PATH同解析树)
数据字典缓存用来存放最近使用的数据库中定义的数据包括:数据文件,表,INDEXES,COLUMNS,USERS,PRIVILEGES,DATA FILE NAMES,SEGMENT NAMES,EXTENT LOCATIONS,以及其他的数据对像.在解析语句时SERVER PROCESSES查看数据字典解释数据对像并验证通过,缓存数据字典信息有利于提高请求时间,其大小有共享大小决定
数据缓冲区用来存放着从数据文件中COPY过来的数据块,有利于获取数据或更新数据可以缩短时间这里同共享池一样使用LRU算法.它同SGA一样可以动态配置
重做日志缓冲区用来记录数据库的数据块变化的,它是一个可循环的CACHE,重做入口预先记着数据改变的动作
大池平常都是被绑定在共享池上的主要用处:是提供给用户进程同服务进程CONNECTION一个区域这样利于IO操作不用次次都要进行SERVER PROCESSES 同USER PROCESSES的IO操作,还给BACKUP ,RESTORE OPERATIONS,SESSION MEMORY 来使用,它不用LRU算法。有了它共享池就不用放弃自己存放的数据由于它可以存放用户自己的SQL等
PGA是一块区域用来放CONNECTION 的有点儿相同于大池但它只是让USER PROCESSES 同一个BACKGROUND PROCESSES或是一个SERVER PROCESSES来CONNECTS的不能被ORACLE SERVER共享的
PGA包括:SORT AREA,SESSION INFORMATION ,CURSOR STATE,STACK SPACE;
SORT AREA:被用来给少数几个进程来进行SQL的
SESSION INFORMATION:含有用户的信息以及SESSION活动的一些数据;
CURSOR STATE:用来放正在被SESSION进行SQL的一些时间点的情况
STACK SPACE:SESSION 其他的信息
BACKGROUND PROCESSES:DBWN,PMON,CKPT,LGWR,SMON,RECO
DBWN:SERVER PROCESS把改变记录直到ROLLBACK并把数据块放到数据缓冲区中,当CKECKPOINT,DIRTY BUFFERS THRESCHOLE REACHED ,NO FREE BUFFER,TIMEOUT,RAC PING REQUEST,TABLESPACE OFFLINE,TABLESPACE READ ONLY,TABLE DROP OR TRUNCATE TABLESPACE BAGIN BACKUP时DBWN进行写动作
LGWR:当一个事务COMMIT,REDO LOG BUFFER有1/3满了,在REDO LOG BUFFER CACHE 中有多于1M变化记录,在DBWN把UPDATE 数据写到数据文件从数据缓冲,EVERY 3 SECONDS写日志。
LGWR可以提醒DBWN写数据。
SMON:如果ORCLE的实例突然挂了,并且SGA中的数据没有被写入到数据文件中去丢失了,那么SMON可以在重新启动实例后自动实例恢复。
SMON恢复实例分为三步:1,ROLLFORWARD数据:由于实例FAILURE那些数据没有写入数据文件,SMON把REDO LOG中记录下的变化来应用到相应的数据块中,劳动因为所有COMMIT的事务都会写到REDO LOG中去的,就可以恢复到那些事务。
2,打开数据库给用户LOGON,那些没有被不是恢复事务加锁的数据可以使用。
3,ROLLBACK没有提交的事务,可以通过SMON或其他的SERVER PROCESSES 因为SMON正在使用。
SMON可以把数据文件的空闲区域的邻边或其空闲区中进行合并,它也可以把临时段作为一个单元返回它作为一个空闲区。
PMON在进程失败后1,ROLLBACK事务2,释放锁3,释放其他资源4,发出失败通知
CKPT当DBWN向数据文件中写修改过的SGA中的数据库缓冲区包括COMMINT OR UNCOMMIT的数据这种形为叫做CHECKPOINT OCCUR;检查点保证了内存中改变的数据块被有规则的有次叙写到数据文件中,因为DBWN使用的LRU算法并且只有写数据文件检查点才会发生。虽然检查点被写入数据文件中就不会被使用。数据改变直到检查点被写入数据文件,重做日志被记录。
在一个检查点上,检查点号被写到数据文件中,检查点号,日志的SEQUENCE号,SYSTEM改变号写入控制文件中。
LOGICAL STRUCTURE CONSTISTS OF TABLESPACES ,SEGMENTS ,EXTENTS,AND BLOCKS。
ORCLE DATEBASES IS A GROUP OF TABLESPACES。A TABLESPACE CONSIST OF ONE OR MORE SEGMENTS。
A SEGMENT IS MADE UP OF EXTENTS。A EXTENT IS MADE UP OF LOGICAL BLOCKS;
DML 分两个部分:1,解析同QUERY解析一样。2,执行多了个过程要移动数据块。
DML执行步骤:1,如果数据库缓存中没有相应的数据块同回滚块就从数据文件中读取。2,SERVER PROCESS在要改的行上加锁,回滚块中存有以前块的信息3,给块记新值。
提到软解析(soft parse)和硬解析(hard parse),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:1、语法检查(syntax check)检查此sql的拼写是否语法。2、语义检查(semantic check)诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。3、对sql语句进行解析(parse)利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。4、执行sql,返回结果(execute and return)其中,软、硬解析就发生在第三个过程里。Oracle利用内部的hash算法来取得该sql的hash值,然后在library cache里查找是否存在该hash值;假设存在,则将此sql与cache中的进行比较;假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。这也就是软解析的过程。诚然,如果上面的2个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动
分享到:
相关推荐
本文将深入探讨“超高分辨率的Oracle结构图”所体现的关键知识点,帮助读者理解Oracle数据库的架构和主要组件。 Oracle数据库的结构主要分为物理结构和逻辑结构两大部分。物理结构涉及到数据在磁盘上的存储方式,而...
oracle结构全图很多很大...很复杂.....
Oracle数据库是世界上最流行的...通过深入理解Oracle结构图,我们可以更好地设计数据库架构,优化查询性能,以及实施有效的备份和恢复策略。对于开发人员而言,理解这些概念也有助于编写更高效的SQL和PL/SQL代码。
在Oracle数据库管理中,对表结构进行修改是一项常见的任务,涉及到添加字段、修改字段属性、删除字段、重命名表或字段、以及注释等操作。以下是对这些操作的详细解析: ### 添加字段 使用`ALTER TABLE`语句可以向...
描述:“Oracle11g体系结构图,oracle结构清清楚楚” **一、Oracle11g体系结构概览** Oracle11g是Oracle公司推出的一款高性能、高可用性和高安全性的关系型数据库管理系统。其体系结构复杂且功能强大,主要包括...
oracle体系架构和运行原理高清大图
oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图
"Oracle表结构导Word工具"就是为了解决这个问题而设计的,它能够将Oracle数据库中的表结构方便快捷地导出成Word文档,使得信息更易于阅读和共享。 这个工具的核心功能在于自动化生成表结构的详细文档,包括表名、...
在数据库管理领域,将SQL Server的表结构转换到Oracle数据库是一项常见的需求,特别是在系统迁移或数据整合的过程中。本文将详细探讨如何实现这一过程,并提供C#开发源码的相关信息。 首先,我们需要理解SQL Server...
Oracle 12c数据库体系结构图文详解手册 Oracle 12c数据库体系结构图文详解手册是 Oracle 12c数据库管理系统的核心组件之一,该手册详细介绍了 Oracle 12c数据库的体系结构、实例、数据库、内存结构、后台进程、...
Oracle表结构生成工具是一种实用程序,它允许用户利用Excel电子表格快速创建Oracle数据库的表结构。这个工具的主要目的是提高数据库设计的效率,特别是在处理大量数据表定义时。下面将详细介绍这个工具及其工作原理...
Oracle结构图: Oracle数据库服务器实例数据库Oracle进程SGA区后台进程服务进程物理存储逻辑存储数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块。 数据库操作模式: 1. 专用服务器:为每个连接...
jeecms_oracle2012版本表结构 cms_2012 oracle结构
【Oracle 体系结构详解】 Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1...
Oracle 9i 物理结构是数据库管理系统的核心组成部分,它决定了数据如何在磁盘上存储、管理和访问。Oracle 9i 物理结构主要由以下几个关键组件构成: 1. **数据文件 (Data Files)**: 扩展名为 .DBF 的数据文件是...
Oracle 体系结构是一个复杂而精细的设计,旨在提供高效、安全且可扩展的数据库管理解决方案。以下是对Oracle体系结构主要组成部分的详细说明: 1. **数据库**:数据库是Oracle的核心,它是一个逻辑数据集合,包含了...
Oracle体系结构是Oracle数据库的核心,涵盖了数据库运行的基本原理和组成部分。Oracle数据库体系结构非常复杂,主要包括实例和数据库两个方面。Oracle实例是一个运行中的数据库系统,它由系统全局区(SGA)和一组...
Oracle是业界广泛使用的大型关系型数据库管理系统,其核心组成部分之一就是数据块结构(Block)。数据块是Oracle数据库中最小的存储单位,是操作系统中读写数据的基本单位,也是数据库实例中逻辑上存储数据的基本...
"Oracle数据库表结构导出工具"就是为此目的设计的实用程序,它能够方便地将表结构转换成易于查看和处理的Excel文件。 DBExport是一个这样的工具,正如其名称"DBExport2.51 For ORACLE"所示,它专门针对Oracle数据库...
### Oracle的表结构转成MySQL的表结构 #### 功能概述 本文介绍了一种将Oracle数据库中的表结构转换为MySQL数据库表结构的方法。通过编写一个PL/SQL函数`fnc_table_to_mysql`来实现这一目标。该函数可以接受四个参数...