- 浏览: 85850 次
- 性别:
- 来自: 北京
文章分类
1.Oracle体系结构
Oracle Server 由例程(Instance)和数据库(Database)两部分组成。
例程是一组内存机构和后台进程的集合,其内存结构主要包括数据高速缓存、重做日志缓冲区和共享池三部分,总称SGA(System Global Area)。
后台进程主要包括SMON、PMON、DBWR、CKPT、LGWR、ARCH等。
数据库是一组OS文件的集合,它由数据文件、控制文件和重做日志组成。
2.数据高速缓存(Database Buffer Cache)用于存放最近访问的数据块信息,它由许多小缓冲区(缓冲区尺寸=数据块尺寸)组成。初始化参数DB_CACHE_SIZE和DB_nK_CACHE_SIZE(n:2、4、8、16或32)来定义数据高速缓存尺寸,其中初始化参数DB_CACHE_SIZE用于定义标准数据高速缓存的尺寸,DB_nK_CACHE_SIZE用于定义非标准数据高速缓存的尺寸。Oracle采用LRU(Least Recently Used)算法管理数据高速缓存。
数据高速缓存结构,按使用情况划分为脏缓冲区(Dirty Buffer)、空闲缓冲区(Free Buffer)、忙缓冲区(Pinned Buffer)三种。
3.重做日志缓冲区(Redo Log Buffer)用于记载例程变化,其尺寸由初始化参数LOG_BUFFER定义。
执行DDL或DML语句时,服务器进程首先将事物变化记载到重做日志缓冲区,然后才会修改数据高速缓存。重做日志缓冲区由很多重做记录(Redo Record)组成,并且每条重做记录记载了被修改数据块的位置以及变化后的数据。
4.共享池主要由库高速缓存(Library Cache)和数据字典高速缓存(Dictionary Cache)两部分组成。
库高速缓存用于存放最近执行的SQL语句信息,包括SQL语句文本、解析代码值及其执行计划。库高速缓存包含许多上下文区(Context Area),每个上下文区都包含相应SQL语句的执行计划,这些上下文区又被称为共享游标。当客户端运行SQL语句时,服务器进程首先检查共享游标是否存在,若存在按照其执行计划直接执行语句;若不存在则生成SQL语句执行计划,并将执行计划存放到相应的上下文区中,然后执行SQL语句。通过共享游标,可以最小化SQL语句解析次数,从而提高SQL语句的执行性能。
数据字典高速缓存(Dictionary Cache)用于存放数据字典的信息,包括表、列的定义以及权限信息。库高速缓存和数据字典高速缓存的尺寸是动态变化的,不是固定的。
5.动态改变共享池尺寸
alter system set shared_pool_size=60m;
动态修改数据高速缓存尺寸
alter system set db_cache_size=60m;
alter system set db_4k_cache_size=20m;
SGA除了包含以上三个之外还提供了两个可选的内存结构:大缓冲池(Large Pool)和Java池(Java Pool)。
大缓冲池用于为大内存操作提供相对独立的内存空间。通过分配大缓冲池,可以提高这些大内存操作的性能。如下情况应分配大缓冲池:
使用共享服务器。
使用RMAN在执行备份、转储和恢复操作。
执行并行查询。
使用I/O Slaves提高I/O性能(如配置初始化参数dbwr_io_slaves)。
alter system set large_pool_size=20m;
Java池用于存放Java代码,其尺寸由JAVA_POOL_SIZE定义。如果要在Oracle数据库中安装
Java VM,必须配置Java池,并且其尺寸应大于20M。
6.PGA(Program Global Area)用于存放服务器进程的数据和控制信息,它是独立于SGA的一块内存区域。当用户进程连接到Oracle Server时,Oracle Server会为每个服务器进程分配相应的PGA。初始化参数pga_aggregate_target用于指定所有服务器进程总计占用的最大PGA内存空间。PGA由排序区(Sort Area)、会话信息(Session Information)、游标状态(Cursor State)以及堆栈空间(Stack Space)等4部分组成。
排序区(Sort Area)用于存放排序操作所产生的临时数据,它是影响PGA尺寸的主要因素,并且其尺寸由初始化参数SORT_AREA_SIZE定义。
会话信息(Session Information)运行应用程序访问Oracle Server时,会话所具有的权限、角色以及会话的性能统计信息会被存放到PGA中。
游标状态(Cursor State)运行SQL语句时,Oracle会在共享池中为该SQL语句分配上下文区,游标实际是指向该上下文区的指针,而PGA中的游标状态则指出了当前SQL语句所处状态。
堆栈空间(Stack Space)用于存放会话变量信息。当SQL语句中有绑定变量时,其信息会被存放到堆栈空间中。
7.SMON(System Monitor)用于执行例程恢复、合并空间碎片并释放临时段。假定在数据库运行过程中出现了例程失败(断电、内存故障、后台进程例外等),此时SGA信息尚未被完全写入到磁盘(数据文件、重做日志)。当重新打开数据库时,后台进程SMON会按照以下步骤自动执行例程恢复。
REDO:重新应用哪些被记载到重做日志,但尚未记载到数据文件中的数据。
打开数据库:既包含了被提交的数据,也包含了未被提交的数据(加锁)。
UNDO:取消未提交数据。使用UNDO段回退未提交的数据。
8.PMON(Process Monitor)用于监视服务器进程的执行,并且在服务器进程失败时清除该服务器进程。访问Oracle Server时,Oracle会在服务器端为用户进程分配服务器进程。假定用户进程因地址例外意外终止运行,PMON可以轮询检测该服务器进程,并执行以下操作:
回退用户的当前事务。
释放服务器进程所占用的所有表锁和行锁。
释放用户所占用的其他资源。
9.DBWR(Database Writer)用于将数据高速缓存的脏缓冲区数据写入到数据文件中。通过设置初始化参数db_writer_processes可以定义最多10个DBWR进程。脏缓冲区会由后台进程DBWR写入到数据文件中。如下情况DBWR开始工作。
系统发出检查点(CheckPoint)。
服务器进程不能找到空闲缓冲区。
删除或截断表。
使表空间正常脱机(alter tablespace … offline normal)。
开始表空间备份(alter tablespace … begin backup)。
10.LGWR(Log Writer)用于将重做日志缓冲区所记载的全部内容写入到重做日志文件中。先日志后修改。如下情况,LGWR进程开始工作:
提交事务(commit)。
每隔3秒钟。
当重做信息超过1M时。
重做日志缓冲区已有三分之一填满。
在DBWR进程将脏缓冲区写入到数据文件之前。
11.CKPT(Checkpoint Process)用于发出检查点(Checkpoint),检查点会同步数据库的数据文件、控制文件和重做日志。当发出检查点时,后台进程CKPT将检查点时刻的SCN(System Change Number)写入到控制文件和数据文件头部,同时促使后台进程DBWR将所有脏缓冲区写入到数据文件中。当发出检查点时,不仅后台进程CKPT和DBWR要开始工作,LGWR也要将重做日志缓冲区写入到重做日志,从而确保数据文件、控制文件和重做日志的一致性。一下情况CKPT开始工作:
日志切换。
关闭例程(shutdown abort除外)。
手工检查点操作(alter system checkpoint)。
由初始化参数fast_start_mttr_target强制发出检查点。
12.ARCH(Archive Process)用于将重做日志的事务变化复制到归档日志中,只有在ARCHIVELOG模式下才有意义。进行日志切换时会自动生成归档日志。设置初始化参数log_archive_max_processes最多可以定义10个归档进程。
发表评论
-
undo与事务剖析
2015-03-09 22:13 01、首先修改几条记录 ... -
Oracle限制IP访问功能-黑白名单
2015-03-09 21:03 1842由于业务需要,需要使用白名单限制用户登录数据库的地址,决定使 ... -
Oracle10g系统管理20
2011-10-09 08:50 66185.DBVERIFY用于验证数据文件、表段或索引段是否存在损 ... -
Oracle10g系统管理19
2011-10-09 08:49 75481.LogMiner工具分析DML和DDL操作确定数据库的逻 ... -
Oracle10g系统管理18
2011-10-09 08:49 90476.EXP和IMP是客户端工具程序,既可以在客户端使用,也可 ... -
Oracle10g系统管理17
2011-10-09 08:49 64872.簇是存储表数据的一种可选方法,它由共享相同数据块的一组表 ... -
Oracle10g系统管理16
2011-10-08 14:20 72468.分区表:范围分区、散列分区、列表分区、组合分区范围分区c ... -
Oracle10g系统管理15
2011-10-08 14:20 83764.索引分类:存储方式 ... -
Oracle10g系统管理14
2011-10-08 14:18 72461.设计表规划表的类型 ... -
Oracle10g系统管理13
2011-10-08 14:18 76459.审计分类特权用户审计:审计特权用户所执行的数据库操作,设 ... -
Oracle10g系统管理12
2011-10-07 08:38 89557.PROFILE是口令限制、资源限制的命名集合。在客户端将 ... -
Oracle10g系统管理11
2011-10-07 08:38 73156.精细访问控制使用户可以使用函数、策略实现更加细微的安全访 ... -
Oracle10g系统管理10
2011-10-06 08:54 67953.create user devep identified ... -
Oracle10g系统管理9
2011-10-06 08:53 61751.UNDO数据的作用回退事务读一致性事务恢复闪回查询 ... -
Oracle10g系统管理8
2011-10-06 08:53 70049.建立表空间create tablespace user0 ... -
Oracle10g系统管理7
2011-10-06 08:52 72245.重做日志用于记载事务操作所引起的数据库变化。 重做入口 ... -
Oracle10g系统管理6
2011-10-05 08:20 71239.控制文件用于记录和维护数据库的物理结构。当启动例程并打开 ... -
Oracle10g系统管理5
2011-10-05 08:20 70334.数据字典是Oracle数据库最重要的组成部分,它提供了数 ... -
Oracle10g系统管理4
2011-10-04 11:45 55830.建立数据库步骤:建 ... -
Oracle10g系统管理3
2011-10-04 11:44 67822.管理初始化参数startup spfile=$ORACL ...
相关推荐
在深入探讨Oracle 10g系统管理之前,我们首先要理解Oracle数据库的基本架构。Oracle数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle 10g是Oracle公司推出的一个重要版本,...
Oracle 10g 系统管理员简明教程目录 本教程目录涵盖了 Oracle 10g 系统管理员需要掌握的知识点,包括 Oracle 10g 的安装、配置、数据库结构、SQL 语句、PL/SQL 编程等方面。 安装和配置 * Oracle 10g 的安装类型...
精通oracle 10g系统管理 Oracle本书是专门为Oracle数据库管理员提供的系统管理手册,通过学习本书,读者不仅可以掌握Oracle数据库的基本管理方法,还可了解并掌握Oracle Database 10g所提供的新特征,包括 Web页面的OEM...
如何更好地管理ORACLE 10G数据库,通过这本精通oracle 10g系统管理你可以了解到怎么成为ORACLE 10G高手。
Oracle 10g数据库管理系统是Oracle公司发布的一款重要的企业级数据库产品,其在数据库领域具有广泛的应用和深远的影响。本书“Oracle 10g数据库管理艺术”无疑是对这一技术的深度解析,旨在帮助读者掌握Oracle 10g的...
《Oracle10g系统管理员使用手册》是一本深入解析Oracle10g数据库管理系统运维的权威指南,主要面向那些需要管理、监控和优化Oracle10g环境的系统管理员。Oracle10g是Oracle公司推出的数据库产品,它在性能、可扩展性...
Oracle 10G是Oracle公司在2003年发布的关系型数据库管理系统,而Oracle 11G则是在2007年推出的升级版。这两个版本之间的主要差异体现在性能、可扩展性、安全性以及管理功能等方面。 1. OCI接口:OCI提供了丰富的API...
精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf
Oracle 10g系统管理是数据库管理员(DBA)在企业数据管理中不可或缺的技能。这本书籍"精通Oracle10g系统管理"旨在帮助初学者快速掌握Oracle 10g的相关知识,通过清华大学计算中心的培训资料PPT,你可以深入理解Oracle...
这个“Oracle10g系统管理”资料可能是为了帮助用户深入理解和掌握Oracle10g的系统管理和维护技巧。下面将对Oracle10g的主要特点、系统管理的核心内容以及可能在教材中涉及的关键知识点进行详细阐述。 一、Oracle10g...
Oracle 10g是Oracle公司推出的数据库管理系统的一个版本,它主要针对64位操作系统环境设计。Oracle数据库系统在IT行业中有着广泛的应用,尤其在大型企业、金融机构和互联网公司的数据存储和管理方面扮演着核心角色。...
### 如果忘记了Oracle Database 10g 管理员用户口令怎么办 在日常的数据库管理工作中,可能会遇到忘记管理员用户口令的情况。这不仅会给日常工作带来不便,还可能会影响到系统的正常运行。针对这种情况,本文将详细...
精通oracle 10g系统管理
Oracle 10g(10g代表10th Generation,即第十代)是Oracle公司发布的一个重要版本,发布于2004年。这一版本在之前的版本基础上进行了大量的改进和优化,引入了许多新特性,特别是在网格计算方面有着显著的进步。以下...
Oracle 10g 是Oracle公司推出的数据库管理系统的一个版本,它在2003年发布,提供了许多增强功能和性能优化,对于数据库管理员(DBA)来说是重要的学习和认证目标。"Oracle OCP"(Oracle Certified Professional)是...
在IT行业中,数据库管理系统是核心组件之一,Oracle 11g是Oracle公司的一款旗舰级数据库产品,被广泛应用于企业级应用。在这个“龙蜥anolis系统oracle11g安装包”中,我们聚焦于在龙蜥Anolis操作系统上安装Oracle 11...