<oracle-2> oracle文件

oracle实例相关的文件只有下面几种:
参数文件(parameter file):这些文件告诉oracle实例在哪里可以找到控制文件,并且指定某些初始化参数,这些参数定义了某种内存结构有多大等设置。
跟踪文件(trace file):这通常是一个服务器进程对某种异常错误条件作出响应时创建的诊断文件。
警告文件(alert file):与跟踪文件类似,但是包含“期望”事件的有关信息,并且通过一个集中式文件警告DBA.

构成 数据库的文件包括下面几类:
数据文件(data file):这些文件是数据库的主要文件,其中包括数据表、索引和所有其他的段。
临时文件(temp file):这些文件用于完成基于磁盘的排序和临时存储。
控制文件(control file):这些文件能告诉你数据文件,临时文件盒重做日志文件在哪里,还会指出与文件状态有关的其他元数据。
重做日志文件(redo log file):这些就是事务日志。
密码文件(password file):这些文件用于对通过网络完成管理活动的用户进行认证。

从Oracle 10g开始,又增加了两种新的可选文件类型,可以帮助oracle实现 更快的备份和更快的恢复操作。下面是这两类新文件:
修改跟踪文件(change tracking file):这个文件有利于对oracle数据建立真正的增量备份。修改跟踪文件不一定非得放在闪回恢复区(flash Recovery area),不过它只与数据库备份和恢复有关。
闪回日志文件(flashback log file):这些文件存储数据库块的“前映像”,以便完成新增加的Flashback database命令。

此外还有其他与数据库相关的文件,比如转储文件(dump file),数据泵文件(data pump file),平面文件(flat file)等。

2.1 参数文件
与oracle数据库有关的参数文件有很多,从客户工作站上的 tnsnames.ora文件到服务器上的listener.ora文件,还有sqlnet.ora等文件。不过, 最重要的参数文件是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库。

数据库的参数文件通常称为初始文件(init file)或init.ora文件。Oracle 9以后,对于存储数据库的参数设置引入了一个很大改进的新方法:服务器参数文件(server parameter file),简称SPFILE。这个文件的默认名为spfile<ORACLE_SID>.ora。

简单地说,可以把数据库参数想成是一个键值对。要想得到一个实例参数的当前值,可以查询V$视图V$PARAMETER。另外,还可以在Sql*Plus中使用 SHOW PARAMETER命令来查看, 这个命令是自动在key的前后加上‘%’模糊匹配的。
默认情况下,“正常”账户无权访问V$性能视图.要另外赋予权限(grant)

2.2 跟踪文件
跟踪文件能提供调试信息。Oracle数据库都是可以充分测量的,这种测量性反映在 V$视图,审计命令,资源管理器,oracle事件,DBMS_TRACE等方面。后面还引入了自动工作存储库(awr, 这是个性能调优的很好的诊断工具)、自动诊断存储库(adr)和sql性能分析工具等选项。

2.3 警告文件
警告文件(也称为警告日志)就是数据库的日志。这是一个简单的文本文件,从数据库创建开始就会编写该文件,直到数据库完结为止。在这个文件中,可以看到 数据库的“编年史”,包括日志开关,可能出现的内部错误,表空间何时创建、离线以及恢复为在线等。这是一个查看数据库历史的极其有用的文件。

2.4 数据文件
数据文件和重做日志文件是数据库中最重要的文件,数据最终就是要存储在数据文件中。每个数据库都至少有一个相关的数据文件,通常还不止一个。

2.4.1 oracle数据库中的存储层次体系
数据库由一个或多个表空间构成表空间(tablespace)是oracle中的一个 逻辑存储容器,位于存储层次体系的顶层,包括一个或多个数据文件。这些文件可能是文件系统中的cooked文件、原始分区、asm管理的数据库文件或者是集群文件系统上的文件。表空间包含段。

1. 段
段(segment)是表空间中主要的组织结构。 段就是占用存储空间的数据库对象,如表,索引,回滚段等。创建表时,会创建一个表段;创建分区表时,则每个分区都会存储在一个段中,此外还有回滚段,临时段,聚簇段,索引段等。

2. 区段
段本身又由一个或多个区段(extent)组成。 区段是文件中一个逻辑上连续分配的空间。传统的每个段都至少有一个区段,有些对象可能还需要至少两个区段(比如回滚段)。


3. 块
区段又进一步由块(block)组成。 块是oracle中最小的空间分配单位。数据行、索引条目或临时排序结果就存储在块中。通常oracle从磁盘读写的就是块。Oracle中块的常见大小有4种:2KB,4KB,8KB或16KB。数据库中最多可以有6种不同的块大小,大小不一定非是2的幂次。
段、区段和数据块之间的关系如下:

在所有给定的表空间内部,块大小都是一致的,这说明一个表空间中的所有块大小都相同。

4. 表空间
表空间是一个容器,其中包含有段。每个段都只属于一个表空间。一个表空间中可能有多个段。一个给定段的所有区段都在与段相关联的表空间中。段绝对不会跨越表空间边界。表空间本身可以有一个或多个相关的数据文件。
表空间是oracle中的逻辑存储容器。作为开发人员,我们会在表空间中创建段,而绝对不会深入到原始的“文件级”。我们会在表空间中创建对象,余下的工作都由oracle负责。


5. 临时文件
Oracle中的临时数据文件(temporary data files)即临时文件,是一种特殊类型的数据文件。Oracle使用临时文件来 存储大规模排序操作和散列操作的中间结果,如果RAM中没有足够的空间,还会用临时文件存储全局临时表数据,或结果集数据。 永久数据对象(如表或索引)不会存储在临时文件中,但是临时表及其索引的内容要存储在临时文件中。所以,不可能在临时文件中创建表,但是使用临时表时完全可以在其中存储数据。

6. 控制文件
控制文件(control file)是一个相当小的文件(最多能增长到64MB左右),其中包含oracle需要的其他文件的一个目录。参数文件告知实例控制文件的位置,控制文件则告知实例数据库和在线重做日志文件的位置。
开发人员实际上可能不会接触到控制文件。

7. 重做日志文件
重做日志文件(redo log file)对于oracle数据库至关重要。他们是数据库的 事务日志。通常只用于恢复,不过也可以用于以下工作。
(1) 系统崩溃后的实例恢复
(2) 通过备份恢复数据文件之后恢复介质。
(3) 备用数据库处理。
(4) 输入到流中,这是一个重做日志挖掘过程,用于实现信息共享。

重做日志文件的主要目的是,万一实例或介质失败,重做日志文件就能派上用场,或者可以作为一种维护备用数据库的方法来完成故障恢复。
你在 oracle中完成的每个操作几乎都会产生一定的redo信息,并写入在线重做日志文件。向表中插入一行时,插入的最终结果会写入重做日志。删除一行时,则会在重做日志中写入你删除了这一行的事实。
有些操作可能会以尽量少生成redo的模式完成。例如,可以使用NOLOGGING属性创建一个索引。这说明,最初创建索引数据的操作不会记入日志,但是oracle完成的所有递归sql会写入日志。

8. 密码文件
密码文件是一个可选的文件,允许远程sysDBA或管理员访问数据库。
启动oracle时,还没有数据库可以用来验证密码

猜你喜欢

转载自zoroeye.iteye.com/blog/2169346