oracle概念-数据库文件概述
oracle包含三大基本文件:
1:数据文件(data file)
2:控制文件(control file)
3:联机重做日志文件(online redo log file)
oracle 数据库 的 文件 (files) 的概念:
oracle数据库的体系结构最终组件反映在存储在磁盘上的物理文件,oracle有若干种类型的数据文件,,每一个数据文件都有不同的目的。
a : 数据库数据文件 b : 控制文件 c : 联机重做日志文件 d : 参数文件 e :其他数据库相关文件
下面一一介绍以上文件:
1:数据库数据文件
数据文件是一个存储在磁盘上的物理文件,这些文件用于存储数据库数据,数据库数据文件仅仅被DBWR进程写入。
这些数据库数据文件是和表空间进行关联的,包含了表和索引。
2:控制文件
控制文件是一种数据库的二进制文件包含了许多的数据库信息,包含了数据库名,数据日志文件,如果控制文件无效,oralce数据库不能成功启动。
因为控制文件是很重要,oracle允许你拷贝多个控制文件的备份,在不同的磁盘上放多个控制文件是DBA的良好的习惯。
3:联机重做日志文件的概念(online redo logs )
联机重做日志文件就像一个记录带记录了oracle数据库的每一个改变,当oracle数据库发生变化的时候,这些变化是有规律的记录在联机重做日志日志中,就像VCR记录一个movie一样。
当磁盘出现破坏的时候,你可以使用备份oracle的文件替换存储在磁盘上的数据,如果备份数据是很多天以前的,你将丢失一些数据。
幸运的是 oracle 在联机重做日子文件中保存了这些操作事务,能够通过这个文件让丢失的事务操作重新进入数据库中。
这意味着oracle能够通过联机重做日志文件在oracle数据库启动是时候重新恢复丢失的数据。
需要注意的是oracle需要两个联机重做日志文件,oracle将首先在第一个文件中写信息,当第一个文件满的时候,oracle将转换到第二个日志文件写同同样的日志文件,这些日志成为oracle联机重做日志组。
4: oralce 参数文件
参数文件(有时叫 init.ora)包含了oracle启动时候需要的配置信息,通过参数文件我们能够找到控制文件,以及写trace 文件,还有其他oracle的信息,
如果没有参数文件,oracle将不能启动,oracle 允许你有一个客户端的参数文件--PFILE或者服务器端的参数文件(SPFILE)
没有特殊启动现在都用 SPFILE文件启动。
5:其他相关的oracle文件
在ORACLE_HOME以下的目录中,你将看到很多不同的文件,我们主要介绍以下几个:
1:ORACLE Trace files: oracle在很多不同的情况下创建这种文件,它们是被创建当数据库有意外的时候,或者session 失败,或者
个异常让oracle中断,或者基本的oracle的操作的命令(查询表,DML,DDL ,TL)等。
2:Alert 日志: 这是oracle数据的普通日志文件。
3: NetWorking configuration files (网络配置文件) 这些文件用于配置oralce不同的网络组件,例如: tnsnames.ora和listener.ora
4 : oracle 数据 软件包 包含了让oracle运行的基本的oralce 程序。
讨论了以上这些数据文件后,让我们看看oracle数据库在启动的不同的状态,这些参数文件的作用。
二:不同oralce启动状态的oracle 文件的作用。
1 :close ---> NOMOUNT状态
需要做如下工作:
第一读取初始化文件:
在$ORACLE_HOME/dbs中
首先去找spfileSID.ora
如果没有找到,找 spfile.ora
如果没有找到,找 initSID.ora
以上是启动找三个文件的顺序。
第二: 分配SGA
第三: 启动后台进程
以上两步我认为相当于建立oralce的instance
第四:打开alertSID.log文件 和 trace file
2 :NOMOUNT -->MOUNT 状态
进行如下工作:
第一:把数据库和已经启动的实例关联起来
第二:通过参数文件中指定的control file文件位置找到control file 然后打开读取
第三:读取控制文件(control file) ,获取数据文件(data file)和联机重做日子文件(online redo log file)的名字,只是获取这个名字,但是不检测和关心是否这个data file 和这个online redo log file 的存在。
3 :MONNT-->OPEN
打开 data file (数据文件) 和
online redo log files (联机重做日子文件)
如果这个时候 data file 和 联机重做日志文件出错了
这个时候就会报错
会检查联机重做文件和数据文件的一致性,如果不一致,
会做相关的一致性的清除工作。
control file的内容 :
1: 数据库的名字 和 identifier
2:数据库创建的时间戳
3:数据库的表空间和表空间的名字
4:记录了数据文件和联机重做日志文件的位置:
5:包含了联机 重做日志的 顺序序列号
6:checkpoint 信息
7:undo segments 的开始点和技术点
8:redo log archive 联机日志归档信息
9:backup 信息(备份信息)
注意:
oracle启动的时候读取启动初始化信息,
初始化信息中包含了控制文件的位置
控制文件中包含了联机重做日志文件和数据文件的位置
这三个控制文件的大小一样,3个控制文件最好放在
不同的物理磁盘上,往控制文件中写信息的时候
并发同时写,所以3个控制文件的内容是相同的,
但是读取的时候,只读取第一个,如果3个控制文件
有一个出错了,oracle就不能启动了。