1、用户相关的进程
用户相关的进程包括用户进程和服务器进程。
一个用户进程只能连接到一个服务器进程
但是在某些oracle配置中,多个用户进程可以共享同一个服务器进程。
PAG也被创建,每一个服务器进程有一个PGA
2、逻辑内存结构,被集中称为oracle实例
一个oracle实例是被一个oracle的主要内存结构组成的,称为SGA(system global area),和服务器后台进程。
用户访问数据库中的数据时,服务器进程负责和SGA内存块通信。
一个oracle instance 包括三个组件:
1)必须的组件:
共享池:缓存最近被数据库用户使用的SQL语句;
数据库缓存:最近被数据库用户使用的信息;
redo日志:保存恢复为目标的事务信息。
可选的内组件:
java pool:当java虚拟机被使用的时候,缓存最近被使用的java目标
large pool:换数据和大的操作,比如 恢复管理,备份和恢复活动,共享服务器组件
streams pool:缓存数据库相关的队列请求信息,当oracle高级队列选项被打开的时候
SGA 最进最少使用算法管理内存。
2)背景进程
有很多个背景进程,每一个都执行一个特殊的任务来帮助管理oracle instance。其中,5个背景进程是必须得,包括:
1、系统监视进程,执行进程的灾难恢复,合并数据库的自由空间,管理用来排序的内存空间;
2、进程监视进程,清除失败的数据库用户;
3、数据库写进程,从SGA的数据库缓存区把数据库块写入到磁盘上的数据库文件中;
4、日志写进程,从SGA中的REDO日志缓存区把恢复信息写到磁盘上的在线redo日志文件上;
5、检查点进程,紧跟在检查点事件后,更新数据库文件。
3、物理文件架构被集中称为数据库
数据库主要是有驻留在主机服务器磁盘驱动器上的物理文件构成。这些文件可以被称作,数据文件,控制文件和日志文件,另外的一些文件也和数据库相关,
但是不属于数据库,比如密码文件和数据库文、配置文件(pfile,spfile)和归档redo日志文件(archived redo log files)。
一、控制文件
是数据库的关键部分,他们存储着重要的信息,这些信息其他地方并不提供。包括:
- 数据库的名字;
- 数据文件和redo日志文件的名字、位置、和大小;
- 在磁盘失败或者用户错误的情况下用来恢复数据库的信息。
控制文件当数据库创建时刻,就已经按照参数的文件 control_files参数描述的位置创建了,因为控制文件的丢失,会负面的影响恢复数据库的能力。
大部分数据库产品都提供多个数据库文件和并发把他们保存在多个位置。当需要的时候,CKPT也会动态的更新每一个数据库的控制文件,并且保持控制文件内容一致性。
可以用下面的示例来查看控制文件的位置和名字等详细信息:
二、数据文件
数据文件是实际保存被插入到数据库数据表中的中数据的物理文件。数据文件的大小和他储存数据的表的量直接相关。数据文件是称为表空间的数据库存储区域的物理结构
表空间在数据库中是逻辑存储结构。表空间逻辑的组织相关的段,例如一个应收账户可能被一起保存在一个叫做AR_TAB的表空间中,而这些表的索引则被保存在名字叫做AR_IDX的表空间中。默认的oracle10g至少有3个表空间。
当一个用户通过SQL操作一张表以后,用户服务器进程把数据文件中受过影响的数据,拷贝到SGA中的数据库二级缓存中。如果用户执行了提交事务命令来修改数据库,那么数据库写进程(DBWn)把被修改过的数据写入到数据文件。
三、redo日志文件
每当用户在数据库中执行一个事务,在数据库故障时需要的重现这些事物的信息,会被自动记录在重做日志缓冲区。重做日志缓存区的内容最后被LGWR背景进程写入到redo日志文件。
因为在oracle恢复机制中,扮演者重要的角色,redo日志被重复拷贝多份或者记录在好几个地方。这也就意味着,每一个重做日志都有好几个拷贝,以防止系统损坏或者硬件故障造成他们之中的一个或者几个的损坏。每个组内的复用文件被称为重做日志组的成员。oracle自动写入每一个redo日志文件以保持他们之间的同步。每一个redo日志组必须有多个成员。每个重做日志组必须由一个或多个成员。每个数据库必须至少有两个重做日志组,因为重做日志是在一个循环的方式使用。
日志读写进程在下面几种事件发生时候记录日志:
- 每隔三秒;
- 一个用户提交事务;
- redo日志缓存已用三分之一;
- redo日志缓存容纳1M的游泳redo信息;
- 前一个数据库检查点发生时DBWn进程。对检查站的更多信息,请参见第10章。(未完待续)
当用户执行对数据库的DML活动,本次事务的恢复信息被用户的服务器进程写入到重做日志缓冲区中。LGWR进程最终写入此恢复信息到活动的日志组,直到该重做日志写满。一旦当前日志填写交易信息写满,LGWR将切换到下一个重做日志,直到该日志组填写满事务信息,并依此类推,直至所有可用的重做日志使用完。当最后一个重做日志被使用完时,LGWR开始循环并开始使用的第一个重做日志组。这样最早的redo日志文件就被覆盖了。因此不能在提供恢复的信息。一个可以考虑的解决办法是归档redo日志。
如果系统处于归档日志模式,那么将要被重写的日志在被LGWR进程重写之前,它的内容会被后台的归档进程复制到另外一个位置,也就是归档文件所在的位置。这些旧的redo日志实体的拷贝文件叫做归档日志
ps:1、大部分数据库产品都运行在归档模式下,因为一旦数据库由于在硬件故障和造成的毁坏需要重做所有的事务。
2、如果LGWR必须写入redo日志组,但是ARCn要试图拷贝redo日志,但是ARCn的目标位置磁盘满了,数据库会挂起直到磁盘驱动器上的空间足够。
分享到:
相关推荐
Oracle 12c数据库体系结构图文详解手册是 Oracle 12c数据库管理系统的核心组件之一,该手册详细介绍了 Oracle 12c数据库的体系结构、实例、数据库、内存结构、后台进程、控制文件、重做日志文件、数据文件等概念。...
标题:“Oracle11g体系...综上所述,Oracle11g体系结构的深入理解和掌握对于数据库管理员而言至关重要。通过合理利用Oracle11g的功能和特性,结合最佳实践和避免常见误区,可以显著提升数据库的性能、稳定性和安全性。
Oracle体系结构由多个关键组件构成,这些组件协同工作,确保数据的安全、高效存储和检索。接下来,我们将详细探讨Oracle体系结构中的主要组件。 1. **数据库实例**:Oracle数据库实例是内存结构和后台进程的集合,...
### Oracle安装和体系结构知识点详解 #### 一、Oracle市场地位及发展趋势 - **市场概况**:根据2008年的数据显示,中国商用数据库市场的总体规模达到28.25亿元,相较于上一年度实现了30%的增长。在这个快速增长的...
本文旨在深入解析Oracle数据库的体系结构,帮助读者理解其核心组件及运作原理。 #### 二、Oracle数据库与网格计算 ##### 2.1 网格计算简介 Oracle数据库10g中的“g”代表网格(Grid),这标志着Oracle在数据库设计...
Oracle数据库的体系结构可以分为物理结构和逻辑结构两大部分。了解这两部分是进行数据库优化、维护和故障排除的重要基础。 首先,Oracle数据库的物理结构涉及数据库文件的物理布局,包括控制文件、重做日志文件、...
Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1. **Oracle 引入复杂体系...
1. **理解Oracle体系结构**:包括逻辑组件如表空间、段、区等;物理组件如数据文件、控制文件、重做日志文件等。 2. **了解初始化参数文件以及初始化参数的含义**:初始化参数文件是用于配置Oracle实例的重要文件,...
Oracle体系结构是Oracle数据库的核心,涵盖了数据库运行的基本原理和组成部分。Oracle数据库体系结构非常复杂,主要包括实例和数据库两个方面。Oracle实例是一个运行中的数据库系统,它由系统全局区(SGA)和一组...
Oracle Clusterware的体系结构和进程包括: 1. Cluster Ready Services(CRS):是Oracle开发的一个集群软件,主要完成集群成员管理、心跳监控、故障切换等功能。 2. Voting Disk:用于记录节点运行信息,集群中每...
Oracle 体系结构是一个复杂而精细的设计,旨在提供高效、安全且可扩展的数据库管理解决方案。以下是对Oracle体系结构主要组成部分的详细说明: 1. **数据库**:数据库是Oracle的核心,它是一个逻辑数据集合,包含了...
Oracle体系结构是Oracle数据库管理系统的核心组件之一,它是Oracle数据库的基础架构。Oracle体系结构主要由三部分组成:数据库(Database)、实例(Instance)和oracle网络架构。 数据库(Database) 数据库是...
### Oracle体系结构介绍 #### 物理文件构成 ...了解Oracle数据库的体系结构对于有效地管理数据库、优化性能和处理故障至关重要。通过深入了解这些组成部分及其工作原理,可以更好地应对实际应用中的各种挑战。
在12cR2的体系结构中,我们关注以下几个关键组件和概念: 1. **多租户架构**:Oracle 12c 引入了多租户容器数据库(CDB),允许在一个物理数据库中容纳多个独立的数据库,称为可插拔数据库(PDB)。PDB 可以像传统...
Oracle数据库管理体系结构是Oracle数据库的核心组件,负责管理和维护数据库的所有资源和数据。 Oracle数据库的特点: * 支持大数据库、多用户的高性能的事务处理 * 遵守数据存取语言、操作系统、用户接口和通讯...
Oracle数据库体系结构主要由以下几部分构成:Oracle数据库服务器、Oracle实例、Oracle数据库的物理结构和Oracle数据库的逻辑结构。接下来我们将详细探讨这些组成部分。 Oracle数据库服务器是指运行Oracle数据库软件...
Oracle数据库的体系结构主要包括几个关键部分:数据库实例(Instance)和数据库文件(Database Files)。其中,数据库实例由内存结构(Memory Structures)和后台进程(Background Processes)组成;而数据库文件则...
Oracle 10g的体系结构包括多个层次和组件,例如: 1. **实例(Instance)**:由系统全局区(SGA)和后台进程组成。SGA是一个共享内存区域,包含数据缓冲区、重做日志缓冲区、共享SQL区等。后台进程负责数据I/O、...
3. **控制文件**(Control File):是Oracle数据库的关键组件,记录了数据库的物理结构和状态,包括数据文件、重做日志文件的位置和状态。`V$controlfile`视图提供了控制文件的相关信息,如文件名、创建日期等。 4....