转自:http://bbs.chinaunix.net/viewthread.php?tid=1283003&extra=page%3D3%26amp%3Bfilter%3Ddigest
1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成)
一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。
其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;
参数文件(parameter file)口令文件(password file)是非数据库文件
1.1数据文件:存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。
由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。
types:
.data dictionary .data
.redo data .index
.temporary data 等等
1.2控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.
控制文件内容
。数据库名
。表空间信息
。所有数据文件的名字和位置
。所有redo日志文件的名字和位置
。当前的日志序列号
。检查点信息
。关于redo日志和归档的��前状态信息
控制文件的使用过程
控制文件把Oracle引导到数据库文件的其它部分。启动一个实例时,Oracle 从参数文件中读取控制文件的名字和位置。安装数据库时,Oracle 打开控制文件。最终打开数据库时,Oracle 从控制文件中读取数据文件的列表并打开其中的每个文件。
1.3重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.
1.4 跟踪文件及警告日志(Trace Files and Alert Files)
在instance 中运行的每一个后台进程都有一个跟踪文件(trace file)与之相连。Trace file 记载后台进程所遇到的重大事件的信息。
警告日志( Alert Log)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误.
1.5参数文件:包括大量影响Oracle数据库实例功能的设定,如以下设定:
。数据库控制文件的定位
。Oracle用来缓存从磁盘上读取的数据的内存数量
。默认的优化程序的选择.
和数据库文件相关,执行两个重要的功能
1〉为数据库指出控制文件
2〉为数据库指出归档日志的目标
1.6归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
1.7口令文件:认证哪些用户有权限启动和关闭Oracle例程.
2、逻辑结构(表空间、段、区、块)
表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
段:是对象在数据库中占用的空间.
区:是为数据一次性预留的一个较大的存储空间.
块:ORACLE最基本的存储单位,在建立数据库的时候指定.
3、内存分配(SGA和PGA)
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个��台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收.
4、后台进程
包括数据写进程(Database Writer,DBWR)、日志写进程(Log Writer,LGWR)、系统监控(SystemMonitor,SMON)、进程监控(Process Monitor,PMON)、检查点进程(CheckpointProcess,CKPT)、归档进程、服务进程、用户进程)
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控:负责在一个Oracle 进程失败时清理资源
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。在通常的情况下,该任务由LGWR执行。然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,
由CKPT进程实现。对于许多应用情况,CKPT进程是不必要的。只有当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。CKPT进程不将块写���磁盘,该工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS参数控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。
归档进程:在每次日志切换时把已满的日志组进行备份或归档
服务进程:用户进程服务。
用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。
5、SCN(System ChangeNumber):
系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
表空间、数据文件和控制文件——oracle概念
oracle基本概念篇:
这章介绍了表空间、数据文件和控制文件的概念。
数据库、表空间和数据文件是紧密相关的,它们的关系如下:
一个Oracle数据库由一个或多个逻辑存储单元——表空间构成,表空间存储着数据库中所有的数据;
Oracle数据库中的每个表空间由一个或多个文件组成,这些文件就是数据文件,它们是Oracle所在操作系统上的物理结构。
Oracle数据库中的所有数据物理的存储在数据文件中。
除了普通表空间外,Oracle还有几种特殊的表空间。系统表空间(SYSTEM表空间)、UNDO表空间(9i以前的回滚表空间)、临时表空间。
系统表空间中除了保存数据字典外还保存所有的存储过程、函数、包、触发器和对象。
UNDO表空间用于保存被DML语句影响的记录的原始状态,以便在事务失败的时候可以进行回滚。
当大的排序操作发生时,排序无法在内存中完成,这是会使用临时表空间。
www.ixdba.net
Oracle推荐使用多个表空间,使用多个表空间的优点:
控制数据库的磁盘空间分配;
为数据库用户指定不同的配额(QUOTA);
通过设置单独的表空间ONLINE或OFFLINE来控制数据的可用性;
执行部分数据库的备份和恢复操作;
将数据存储分布到多个物理设备来提高性能。
Oracle支持两种管理空间方式的表空间:
本地管理表空间(Locally managed tablespace):通过表��间头部的BITMAP来管理空闲空间。
数据字典管理表空间(Dictionary managed tablespace):通过数据字典中的表来管理空闲空间。
对于本地管理表空间还可以选择如何管理段内的空闲空间:
AUTO方式:通过BITMAP管理,这种方式又叫做automatic segment-space management。
MANUAL方式:通过FREELISTS来管理。
Oracle为了更好的支持传输表空间,Oralce从9i开始支持表空间的BLOCK_SIZE和数据库的db_block_size的设置不同。
表空间可以设置为ONLINE和OFFLINE,OFFLINE的表空间无法进行访问。通过对单独表空间的ONLINE和OFFLINE,可以减少对系统的影响。
表空间可以设置为READ ONLY和READ WRITE两种状态,只读的表空间不可以进行锁操作,因此��至可以放到只读设备上如CDROM。
数据文件是操作系统上的物理文件。一个表空间中包含一个或多个数据文件。在Oracle9i以后,组成临时表空间的文件和普通数据文件区分开,叫做临时文件。
临时文件具有以下特性:
临时文件总是设置为NOLOGGING模式;
临时文件不能设置为READ ONLY;
临时文件不能重命名;
不能通过ALTER DATABASE语句创建临时文件;
当建立建立临时文件时,Oracle只是分配空间,没有进行初始化,这样可以加快建立临时文件的速度;
临时文件的查询通过这两个视图:V$TEMPFILE和DBA_TEMP_FILES。
控制文件中保存着下列信息:数据库名称、数据库创建的时间、所有数据文件和重做日志文件的名称和位置、表空间信息、OFFLINE数据文件信息、重做日志历史信息、归档日志文件信息、备份集信息、备份数据文件和重做日志文件信息、数据文件拷贝信息、当前重做日志序号和检查点信息。
当数据文件和联机重做日志文件发生变化时,都会将信息写道控制文件中。Oracle记录这些信息是为了:
在启动时,Oracle可以找到并打开数据文件和重做日志文件;
Oracle可以确定数据库恢复是否需要或是否可能。
控制文件还记录CHECKPOINT信息,用于在恢复时指定哪些恢复操作是没有必要的,它们已经写到数据文件中.
由于控制文件的重要性,因此一定要建立多个控制文件,并放到不同的物理磁盘上,同时注意对控制文件的备份。