Oracle的文件结构图如下:
Oracle的文件系统主要分成以下的四大块:
1> 控制文件(.CTL)
2> 数据文件(.DBF)
3> 日志文件(.LOG)
4> 其他文件
前三种文件系是Oracle文件系统的主要组成部分,一般在以下路径可以找到:
$ORACLE_HOME$\oradata\orcl
.CTL文件为控制文件
.DBF 文件为数据文件
.LOG 文件为日志文件
除了前三种文件还有一种参数文件,参数文件不是数据库系统中的有效组成部分,在启动数据库时,参数文件不直接参与工作,只是控制文件是由参数文件寻找的。参数文件位置:
$ORACLE_HOME$\admin\orcl\pfile
1.1 数据文件
真正存储数据库中的数据,包括表,索引,试图等
通常情况下数据文件的后缀名都是.DBF,但这只是约定俗成的一种做法,实际上数据库并不要求数据文件以.DBF为后缀,只是便于区分,建议建立数据文件的时候都加上。
查看所有数据文件的文件号、状态和文件名
SQL> select * from v$datafile;
1.2 日志文件
分三大类:
alert log files --警报日志
trace log files --跟踪日志 (用户和进程)
redo log file --重做日志(记录数据库的更改)。
1.2.1 重做日志文件
重做日志的简单原理:在数据更新操作commit前,将更改的SQL脚本写入重做日志。主要用于数据库的增量备份和增量恢复。重做日志直接对应于硬盘的重做日志文件(有在线和归档二种),重做日志文件以组(Group)的形式组织,一个重做日志组包含一个或者多个日志文件
重做日志分为
在线重做日志 -- online Redo log files
归档重做日志 -- archive Redo log files
1.2.1 在线重做日志(online Redo log files)
又称联机重做日志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执行的SQL脚本到在线日志文件中(按特定的格式)。
在线重做日志的原理:
对于在线重做日志,Oracle 11g默认对于每个数据库实例,建立3个在线日志组,每组一个日志文件,文件名称为REDO01.LOG,REDO02.LOG和REDO03.LOG。(用户可以通过视图操作添加/修改/删除日志组和日志文件来自定义在线重做日志)每组内的日志文件的内容完全相同,且保存在不同的位置,用于磁盘日志镜像,以做多次备份提高安全性。默认情况这3组通常只有一组处于活动状态,不断地同步写入已操作的脚本,当日志文件写满时(达到指定的空间配额),如果当前数据库处于归档模式,则将在线日志归档到硬盘,成为归档日志;若当前数据库处于非归档模式,则不进行归档操作,而当前在线日志的内容会被下一次重新写入覆盖而无法保存。因此,通常数据库在运行时,是处于归档模式下的,以保存数据更新的日志。当前归档日志组写满后,Oracle会切换到下一日志组,继续写入,就这样循环切换;当处于归档模式下,切换至原已写满的日志组,若该日志组归档完毕则覆盖写入,若没有则只能使用日志缓冲区,等待归档完毕之后才能覆盖写入。当然,处于非归档模式下是直接覆盖写
Oracle的文件系统
最新推荐文章于 2024-03-20 15:18:23 发布
本文详细介绍了Oracle数据库的文件系统,包括控制文件(.CTL)、数据文件(.DBF)、日志文件(.LOG)以及参数文件。数据文件存储数据库中的数据,日志文件记录数据库更改,控制文件保存数据库物理状态。文章还深入讨论了日志文件的类型,如在线重做日志和归档重做日志,并阐述了如何进行各种日志操作。同时,讲解了控制文件的重要性和管理,以及参数文件的作用和位置。
摘要由CSDN通过智能技术生成