oracle 文件2 recover,Oracle 文件损坏及恢复的过程

4. 损坏非当前联机日志组

(1)故障模拟

删除日志文件组1的所有文件:

rm /u02/oradata/dbnms/redo01.log

rm /u02/oradata/dbnms/redo11.log

rm /u02/oradata/dbnms/redo21.log

关闭数据库:shutdown immediate;

启动数据库:startup;

Database mounted.

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo11.log'

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo21.log'

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo01.log'

(2)恢复步骤

alter database clear logfile group 1;

如果该日志组还没有归档,则用:

alter database clear unarchived logfile group 1;

打开数据库:

alter database open;

恢复成功

5. 损坏全部联机日志

(1)故障模拟

删除日志文件:rm /u02/oradata/dbnms/*.log

关闭数据库:shutdown immediate;

启动数据库:startup;

Database mounted.

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo11.log'

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo21.log'

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo01.log'

(2)恢复步骤

shutdown immediate;

create pfile from spfile;

cd $Oracle_HOME/dbs

vi initdbnms.ora

加一个参数:_allow_resetlogs_corruption=true

create spfile from pfile;

startup;

Database mounted.

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo11.log'

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo21.log'

ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo01.log'

recover database until cancel;

alter database open resetlogs;

同步catalog:

rman target sys@dbnms catalog rmanuser@cata

reset database;

new incarnation of database registered in recovery catalog

starting full resync of recovery catalog

full resync complete

做一个full备份:

/home/oracle/dbbat/backup_full.sh

恢复成功

破坏的为当期的:

SQL> select GROUP#,SEQUENCE#,ARCHIVED,STATUS from v$log;

GROUP#  SEQUENCE# ARCHIVED  STATUS

---------- ---------- --------- ------------------------------------------------

1          1 NO        CURRENT

3          0 YES       UNUSED

2          0 YES       UNUSED

SQL> recover database until cancel;

Media recovery complete.

SQL> alter database open resetlogs;

Database altered.

SQL>

6. 损坏一个控制文件

(1)故障模拟

删除控制文件:rm /u02/oradata/dbnms/control01.ctl

关闭数据库:shutdown immediate;

ORA-00210: cannot open the specified controlfile

ORA-00202: controlfile: '/u02/oradata/dbnms/control01.ctl'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

(2)恢复步骤

拷贝一个好的控制文件:

cp control02.ctl control01.ctl

shutdown immediate;

startup;

Database mounted.

ORA-01122: database file 1 failed verification check

ORA-01110: data file 1: '/u02/oradata/dbnms/system01.dbf'

ORA-01207: file is more recent than controlfile - old controlfile

rman target sys@dbnms catalog rmanuser@cata

run{

allocate channel c1 type disk;

restore database;

recover database;

sql 'alter database open';

release channel c1;

}

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03009: failure of sql command on default channel at 09/08/2005 17:29:04

RMAN-11003: failure during parse/execution of SQL statement: alter database open

ORA-00322: log 3 of thread 1 is not current copy

ORA-00312: online log 3 thread 1: '/u02/oradata/dbnms/redo03.log'

ORA-00312: online log 3 thread 1: '/u02/oradata/dbnms/redo13.log'

ORA-00312: online log 3 thread 1: '/u02/oradata/dbnms/redo23.log'

alter database clear unarchived logfile group 3;

alter database open;

恢复成功

说明:如果是裸设备,文件不能直接复制,恢复一个控制文件

思路:比如ctl1损坏,可以让ctl2和ctl3工作

a.  根据spfile创建pfile

Sql>startup nomunt;

Sql>cretate pfile=' /oracle/init.ora' from spfile

b.  修改file内容,是里面的控制文件配置方式,然后从pfile启动

Sql>startup pfile=' /oracle/init.ora'

注:如果在操作系统里面不给修改,可以将文件拷出来修改0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值