Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  397 随笔 :: 33 文章 :: 29 评论 :: 0 Trackbacks
数据库结构(三).物理结构
 
 
一、数据库的物理结构:
 
1.数据文件(data file) 
    每个数据库有一个或多个数据文件,数据文件包含了全部数据库的数据。逻辑数据库结构(如表、索引、数据字典)都存储在数据文件中。在存取数据时,Oracle先从数据文件中读取数据到内存的数据缓冲区中,这样的存取方式减少了磁盘I/O操作,提高了相应性能。数据文件一旦建立后就不能改变大小,只能增加。
 
    数据文件系统机制包括:
    ①“Cooked”操作系统(OS)文件系统
    ②原始分区(raw partitions)
    ③自动存储系统(Automatic Storage Management,ASM)
    ④集群文件系统(RAC)

    本地管理的表空间:
    8.1.5版本之后使用本地管理表空间(local-managed tablespace)。它的优点是:无需数据字典,仅对每个数据文件中存储的一个位图来管理区段。目前版本已无法建立dictionary tablespace
 
2.控制文件(control file) 
    控制文件是一个很小的二进制文件,用于描述数据库的物理结构。包括:①数据库名;②数据库数据文件和日志文件的名字和位置;③数据库建立日期。
 
    一般在安装Oracle时自动创建,其存放位置由参数文件SPFILEsid.ora的CONTROL_FILES参数值来确定。数据库在使用的过程中会不断更新控制文件。如果该文件损坏,则数据库将无法正常工作。
 
    Oracle10g默认安装了3个控制文件,每个文件内容相同,当某个文件损坏时,Oracle会自动使用另一个,以确保数据库正常运行。
    可查询V$CONTROLFILE来获得控制文件信息。
 
3.重做日志文件(redo log file) 

    重做日志文件用于记录对数据库的修改信息,包括数据的修改以及数据库结构的修改。查询信息不会被记录在日志中。为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。日志文件中的信息仅在系统故障或介质故障恢复数据库时使用,这些故障阻止将数据库数据写入到数据库的数据文件。然而任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库数据文件。
 
    日志工作过程中,多个日志是循环使用的,即一个日志文件组被填满后,系统自动转换到另一个日志文件组。当所有日志文件组都被填满后,系统会将日志信息写入到第一个日志组中,这时有两个模式:归档模式(Archivelog)和非归档模式(NoArchivelog),当运行在归档模式时,系统将启用ARCH进程将要被覆盖的日志保存到磁盘上形成归档日志。若使用非归档模式,则会覆盖被写入的文档。
 
    查询数据库的日志组情况:select group#,bytes,members,status from v$log;
 
    查询数据库的日志归档模式:select log_mode from v_database;
 
4.临时文件(temp file) 

    Oracle的临时文件用来存储大规模排序和散列操作的中间结果。如果RMAN中没有足够的空间,还会用临时文件存储全局临时表数据,或者结果集数据。
 
    注意:
    1.永久表和索引等不会存储在临时文件中,但是临时表及其索引的内容要存储在临时文件。
    2.临时文件不生成redo log,无法重做
    3.不需要备份临时数据文件,因为无法恢复
 
5.密码文件(password file) 

    密码文件是一个可选文件,允许远程SYSDBA或管理员访问数据库。具体操作比较复杂。
 
 
 
二、实例的物理结构 :
 
1.参数文件(parameter file) 

    参数文件记录了Oracle数据库的基本参数信息,主要包括:数据库名、控制文件路径、进程等。
    以前的参数文件名为init.ora,所以又叫init文件,但是在Oracle10g中,参数文件名为SPFILEsid.ora,其参数由Oracle系统自动管理。SPFILE的改进主要消除了参数文件的两个严重问题:
 
    1.由于只能放在数据库服务器上,不能放在客户机上,所以杜绝参数文件的繁衍。
    2.可使用ALTER SYSTEM命令直接写入参数值,无需使用编辑器进行编辑。(用户最好不要用编辑器进行修改)
    注:取消参数设置:alter system reset sort_area_size scope=spfile sid='*'
 
2.跟踪文件(trace file) 

    跟踪文件能够提供调试信息,需要设置参数SQL_TRACE=TRUE
    数据库的测量性可以使用以下方法:
    1.V$动态视图:例如V$WAITSTAT、V$SESSION_EVENT等,均可反映系统动作
    2.审计命令:例如DBMS_FGA等,可对某个表进行颗粒审计检测
    3.资源管理器:DBMS_RESOURCE_MANAGER,对数据库资源(CPU、I/O等)实现微管理
    4.Oracle事件:跟踪诊断,在之前文章中已经详细介绍过
    5.DBMS_TRACE:PL/SQL引擎中的工具,全面记录调用树、产生的异常、遇到的错误等
    6.触发器:不用介绍了
    7.SQL_TRACE:即10046事件
 
3.警告文件(alert file) 

    警告文件就是数据库的日记,是一个简单的文本文件。记载了从数据库创建到完结之间的所有包括日志开关、内部错误、表空间创建、离线及恢复等等的所有操作信息。
 
 
三、其他物理结构:
 
1.修改跟踪文件(change tracking file) 

    修改跟踪文件是Oracle10g新增的一个可选文件,唯一的目的是跟踪上一个增量备份以来那些块已经修改。这样RMAN就只需要备份发生变化的块,而不必读取整个数据库。如果打开跟踪功能,数据库的任何改变都会被自动写入到这个文件中。但是这回消耗系统的资源。
 
    可使用以下命令打开:alter database enable block change tracking;
 
2.闪回日志文件(flashback log file) 

    这也是Oracle10g的新增功能。引入Flash Back命令是为了加快原来很慢的时间点数据库恢复(point in time database recovery)过程。具体内容参考详细资料。
 
3.转储文件(dump/DMP file) 

    使用导出工具创建的独立的DMP文件,其中包括了所有必要的元数据(create和alter语句形式),可能还有数据本身,可以用于重新创建表、模式、甚至整个数据库。而导入工具的作用就是读取这些DMP文件,执行其DDL语句,并加载其数据。
 
4.数据泵文件(Data Pump file) 

    主要是被外部表和新的导入、导出工具(IMPDP/EXPDP)使用。只有10g之后的版本有这种功能。
 
5.平面文件(flat file) 
    平面文件就是一些没有格式的数据记录文件。
 
 
posted on 2008-08-20 19:37 decode360 阅读(703) 评论(0)  编辑  收藏 所属分类: 08.DBA

只有注册用户登录后才能发表评论。


网站导航: