Oracle数据库的文件及表空间数据块的知识简介
Oracle数据库中有一些文件及其它的一些知识是我们必须要了解的。本文我们就介绍了Oracle数据库的几种文件以及表空间、段、区间和Oracle数据块方面的知识,接下来就让我们来一起了解一下吧。
1、控制文件 (Control files)
参数文件init.ora 记录了控制文件的位置,控制文件是一个非常小的二进制文件,最大可以增长到64MB,控制文件包括如下主要信息:?所有的数据文件,联机日志文件,归档日志文件信息有了这些信息,Oracle 就知道那些文件是数据文件,现在的重做日志文件是哪些,这些都是系统启动和运行的基本条件,所以他是Oracle 运行的根本。如果没有控制文件系统是不可能启动的。控制文件是非常重要的,一般采用多个镜相复制来保护控制文件,或采用RAID 来保护控制文件。控制文件的丢失,将使数据库的恢复变的很复杂。控制文件信息可以从V$Controlfile 中查询获得
2、数据文件(Data files)
可以通过如下方式查看数据文件:
SQL> select name from v$datafile;
数据文件是Oracle 中最重要的物理文件,直接记录了用户数据。按照使用上的不同,可以把数据文件分成如下几类:?回滚数据文件?用户数据文件
3、重做日志文件(Redo files)
用户对数据库进行的任何操作都会记录在重做日志文件。在了解重做日志之前必须了解重做日志的两个概念,重做日志组和重做日志组成员(Member),一个 数据库中至少要有两个日志组文件,一组写完后再写另一组,即轮流写。每个日志组中至少有一个日志成员,一个日志组中的多个日志成员是镜相关系,有利于日志 文件的保护,因为日志文件的损坏,特别是当前联机日志的损坏,对数据库的影响是巨大的。?在归档情况下,需要归档的日志来不及归档,而联机日志又需要被重新利用
4、归档日志文件(Archived files)
Oracle 可以运行在两种模式之中,归档模式和不归档模式。如果不用归档模式,当然你就不会有归档日志,但是,你的系统将不会是一个实用系统,特别是不能用于生产系 统,因为你可能会丢失数据。但是在归档模式中,为了保存用户的所有修改,在重做日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列,该文 件系列就是归档日志文件。
有人或许会说,归档日志文件占领我大量的硬盘空间,其实,具体想一想,你是愿意浪费一点磁盘空间来保护你的数据,还是愿意丢失你的数据呢?显而义见,我们 需要保证我们的数据的安全性。其实,归档并不是一直占领你的磁盘空间,你可以把她备份到磁带上,或删除上一次完整备份前的所有日志文件。通过 v$archived_log 和v$log_history 可以查看归档日志文件的信息。
5、表空间(tablespace)
在8i 以前,表空间的管理类型只有一种,被称为字典管理表空间(DMT),即在数据字典中管理表空间中的空间的分配。在8i
以后的版本,为了减少在字典上的开销,引入了本地管理的表空间(LMT),在该类型的表空间中,在每个数据文件中存储的位图来管理空间的分配,不再要求使通过v$tablespace 可以查询表空间,DBA_TABLESPACE 可以查询详细表空间信息。
6、段(Segment)
可以指定扩展到哪个数据文件上面。段基本可以分为以下四种:
数据段(Data Segment)
索引段(Index Segment)
回滚段(Rollback Segment)
临时段(Temporary Segment)
通过DBA/ALL/USER_SEGMENTS 可以查询详细的段信息。
7、区间(Extent)
关于Extent 个区间被用满,数据库会继续申请一个新的预留存储空间,即新的区间,一直到段的最大区间数(Max Extent)广州嵌入式培训或没有可用的磁盘空间可以申请。
在Oracle8i 以上版本,理论上一个段可以无穷个区间,但是多个区间对Oracle 却是有性能影响的,Oracle
建议把数据分布在尽量少的区间上,以减少Oracle 的管理与磁头的移通过DBA/ALL/USER_EXTENTS 可以查询详细的区间信息。
8、Oracle 数据块(Block)
Oracle最基本的存储单位,在建立数据库的时候指定,虽然在初始化文件中可见,但是不能修改。为了保证存取的速度,它是OS数据块的整数倍。Oracle 的操作都是以块为基本单位,一个区间可以包含多个块,如果区间大小不是块大小的整数倍,Oracle 块的内部结构与数据的存取方法都是比较复杂的,以表段的块为例,从简单的结构上划分,可以把块的内部划分成如下几个部分:公用头,表目录,行目录,可存取空间等。
关于Oracle数据库的控制文件、重做日志文件等的介绍就到这里了,希望本次的介绍能够对您有所收获!