Decode360's Blog

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

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  302 随笔 :: 26 文章 :: 82 评论 :: 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.oraCONTROL_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)

    平面文件就是一些没有格式的数据记录文件。

       

 

 

 





-The End-

posted on 2008-08-20 18:07 decode360-3 阅读(207) 评论(1)  编辑  收藏 所属分类: Oracle

评论

# re: 数据库结构(三) 2008-08-30 19:32 KillForDeath@hotmail.com
呵呵 楼主也在看 ORALCE 深入数据库体系结构一书  回复  更多评论
  


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


网站导航: