Oracle系统紧急故障处理方法(2)

ZDNet软件频道 时间:2008-09-22 作者:辰风 | CSDN 我要评论()
本文关键词:系统 数据库 Oracle
Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。

确定损坏的重做日志的位置及其状态:

1. 如果数据库处于可用状态:

select * from v$logfile;

svrmgrl>select * from v$log;

2. 如果数据库处于已经异常终止:

svrmlgr>startup mount;

svrmgrl>select * from v$logfile;

svrmgrl>select * from v$log;

其中,logfile的状态为INVALID表示这组日志文件出现已经损坏;log状态为Inactive:表示重做日志文件处于非激活状态;Active: 表示重做日志文件处于激活状态;Current:表示是重做日志为当前正在使用的日志文件。

损坏的日志文件处于非激活状态:

1. 删除相应的日志组:

svrmgrl>alter database drop logfile group group_number;

2. 重新创建相应的日志组:

svrmgrl>alter database add log file group group_number (’log_file_descritpion’,…) size log_file_size;

损坏的日志文件处于激活状态且为非当前日志:

1. 清除相应的日志组:

svrmgrl>alter database clear unarchived logfile group group_number;

损坏的日志文件为当前活动日志文件:

用命令清除相应的日志组:

svrmgrl>alter database clear unarchived logfile group group_number;

如果清除失败,则只能做基于时间点的不完全恢复。

打开数据库并且用适当的方法进行数据库全备份:

svrmgrl>alter database open;

部分数据文件损坏:

若损坏的数据文件属于非system表空间,则数据库仍然可以处于打开状态可以进行操作,只是损坏的数据文件不能访问。这时在数据库打开状态下可以单独对损坏的数据文件进行恢复。若是system表空间的数据文件损坏则数据库系统会异常终止。这时数据库只能以Mount方式打开,然后再对数据文件进行恢复。可以通过查看数据库日志文件来判断当前损坏的数据文件到底是否属于system表空间。

非system表空间的数据文件损坏

1. 确定损坏的文件名字:

svrmgrl>select name from v$datafile where status=’INVALID’;

2. 将损坏的数据文件处于offline状态:

svrmgrl>alter database datafile ‘datafile_name’ offline;

3. 从相应的备份结果集中恢复关于这个数据文件的最近的备份。对于没有采用带库备份的点可以直接从磁带上恢复;对于用带库备份的点用相应的rman脚本来恢复。

4. 恢复数据文件:

svrmgrl>alter database recover datafile ‘file_name’;

5. 使数据库文件online:

svrmgrl>alter database datafile ‘datafile_name’ online;

6. 用适当的方法进行数据库全备份。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134