E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
awhip9
Oracle的文件系统
oracle
Oracle的文件结构图如下:
免费下载-安易数据恢复软件
【点击进入】
AneData全能文件恢复,超强数据恢复工具 硬盘移动硬盘SD卡U盘相机手机内存卡全支持
查 看
Oracle的文件系统主要分成以下的四大块:
1> 控制文件(.CTL)
2> 数据文件(.DBF)
3> 日志文件(.LOG)
4> 其他文件 www.2cto.com
前三种文件系是Oracle文件系统的主要组成部分,一般在以下路径可以找到:
$ORACLE_HOME$\oradata\orcl
.CTL文件为控制文件
.DBF 文件为数据文件
.LOG 文件为日志文件
除了前三种文件还有一种参数文件,参数文件不是 数据库系统中的有效组成部分,在启动数据库时,参数文件不直接参与工作,只是控制文件是由参数文件寻找的。参数文件位置:
$ORACLE_HOME$\admin\orcl\pfile
1.1 数据文件
真正存储数据库中的数据,包括表,索引,试图等
通常情况下数据文件的后缀名都是.DBF,但这只是约定俗成的一种做法,实际上数据库并不要求数据文件以.DBF为后缀,只是便于区分,建议建立数据文件的时候都加上。
查看所有数据文件的文件号、状态和文件名
SQL> select * from v$datafile;
1.2 日志文件 www.2cto.com
分三大类:
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脚本到在线日志文件中(按特定的格式)。
www.2cto.com
在线重做日志的原理:
对于在线重做日志,Oracle 11g默认对于每个数据库实例,建立3个在线日志组,每组一个日志文件,文件名称为REDO01.LOG,REDO02.LOG和REDO03.LOG。(用户可以通过视图操作添加/修改/删除日志组和日志文件来自定义在线重做日志)每组内的日志文件的内容完全相同,且保存在不同的位置,用于磁盘日志镜像,以做多次备份提高安全性。默认情况这3组通常只有一组处于活动状态,不断地同步写入已操作的脚本,当日志文件写满时(达到指定的空间配额),如果当前数据库处于归档模式,则将在线日志归档到硬盘,成为归档日志;若当前数据库处于非归档模式,则不进行归档操作,而当前在线日志的内容会被下一次重新写入覆盖而无法保存。因此,通常数据库在运行时,是处于归档模式下的,以保存数据更新的日志。
当前归档日志组写满后,Oracle会切换到下一日志组,继续写入,就这样循环切换;当处于归档模式下,切换至原已写满的日志组,若该日志组归档完毕则覆盖写入,若没有则只能使用日志缓冲区,等待归档完毕之后才能覆盖写入。当然,处于非归档模式下是直接覆盖写入的。(关于数据库归档模式的设置,我会在另外的博文中讲到)。Oracle提供了2个视图用于维护在线重做日志:V$LOG 和 V$LOGFILE,我们可以通过这两个视图查看和修改在线日志。当然,还可以通过ALTER DATABASE ADD 、delete等命令增加/修改/删除在线日志或日志组.
1.2.2 Archive Redo log files--归档重做日志
简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化)。
其实,所谓的归档,就是指将在线日志进行归档、持久化到成固定的文件到硬盘,便于以后的恢复和查询。
当然,前提条件是数据库要处于归档模式。Oracle 11g 默认是为归档日志设定2个归档位置,这2个归档位置的的归档日志的内容完全一致,但文件名不同。
1.2.3 常见的日志文件操作 www.2cto.com
查询系统使用的是哪一组日志文件:
select * from v$log;
查询正在使用的组所对应的日志文件:
select * from v$logfile;
强制日志切换:
alter system switch logfile;
查询历史日志:
select * from v$log_history;
查询日志的归档模式:
select dbid,name,created,log_mode from v$database;
查询归档日志的信息:
select recid,stamp,thread#,sequence#,name from v$archived_log;
增加与删除日志文件组
alter database add logfile group 1 ('c:\log1a.log'), size 100M;
alter database drop logfile group 1;
增加与删除日志成员 www.2cto.com
alter database add logfile member 'log1a.log' to group 1;
alter database drop logfile member ' c:\log1a.log' ;
日志文件移动
alter database rename file 'C:\log1a.log' to 'C:\ log1b.log';
注意:执行该命令之前必须保证该日志文件物理上已经移动到新目录
清除日志文件
alter database clear logfile C:\log1a.log';
注意:该命令用于不能用删除组及组成员命令删除日志时使用
1.3 控制文件
控制文件是定义当前数据库物理状态的二进制文件,每个oracle数据库至少有一个控制文件。控制文件由DBA管理维护 www.2cto.com
1.3.1 其特性为
1)控制文件若丢失需要恢复
2)在MOUNT状态可以读取
3)数据库运行期间控制文件不断地被更新
4)每个控制文件都只关联一个数据库
5)应该被多元化
6)维护数据库实体
7)由CREATE DATABASE语句初始化大小
1.3.2 控制文件包含主要内容
1)数据库名及数据库唯一标识
2)数据文件和日志文件标识
3)数据库恢复所需的同步信息,即检查点号
4)数据库创建时间
5)表空间名
6)当前重做日志文件SCN
7)回滚段的开始和结束
8)重做日志归档信息
9)备份信息
1.3.1 控制文件的常用操作
对oracle控制文件的管理主要包括:
1> 控制文件的备份 www.2cto.com
2> 控制文件的移动
3> 控制文件的重建
4> 控制文件的修改(重命名数据库)
1.3.1.1 备份控制文件
有三种方法:
创建备份控制文件 alter database backup controlfile to 'C:\controlfile01.ctl';
通过创建跟踪文件来创建 alter database backup controlfile to trace;
rman配置自动备份控制文件 configure controlfile autobackup on;
1.3.2.2 移动控制文件
确定移动的位置;
启动数据库实例,startup mount或startup;
若用的是PFILE则修改控制文件的路径;若用的是SPFILE
则:alter system set control_files='PATH1,PATH2,PATH3' scope=spfile;
关闭数据库 shutdown immediate;
物理移动控制文件到新的位置;
重启数据库 startup.
1.2.2.3 重建控制文件 www.2cto.com
存在以下存在几种情况
1)控制文件部分丢失
shutdown abort;
cp -p 未丢失的控制文件 已丢失的控制文件
startup nomount;
alter database mount;
alter database open;
2)控制文件丢失
若rman中存在备份,可以通过rman进行恢复控制文件
startup nomount;
restore controlfile from autobackup;
若rman中没有备份,通过数据库备份控制文件来重建控制文件
shutdown immediate;
cp
alter database mount;
alter database open using backup controlfile;
3)通过跟踪文件重建 www.2cto.com
alter database backup controlfile to trace
编辑此跟踪文件并用SQL执行;
4)手工创建控制文件(需要知道的信息:数据库名称,在每个重做日志给中至少一个成员的位置和名称,所有数据文件的名称和位置)
CREATE CONTROLFILE REUSE DATABASE "PRDB"
NORESETLOGS NOARCHIVELOG