数据文件恢复

数据文件恢复

[@more@]
Ø 数据文件rwsw_quest1损坏或丢失

SQL> alter database open resetlogs;

alter database open resetlogs

*

ERROR at line 1:

ORA-01157: cannot identify/lock data file 11 - see DBWR trace file

ORA-01110: data file 11: '/u01/oradata/retc/rwsw_quest1'

SQL> recover database;

ORA-00283: recovery session canceled due to errors

ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

SQL> recover database using backup controlfile until cancel;

ORA-00283: recovery session canceled due to errors

ORA-01110: data file 11: '/u01/oradata/retc/rwsw_quest1'

ORA-01157: cannot identify/lock data file 11 - see DBWR trace file

ORA-01110: data file 11: '/u01/oradata/retc/rwsw_quest1'

数据库文件丢失之后,通过查看v$datafile_header,该数据文件头部信息的SCN值为0

SQL> col checkpoint_change# for 999999999999999

SQL> select file#,checkpoint_change# from v$datafile_header;

FILE# CHECKPOINT_CHANGE#

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

1 30628731073

2 30628731073

3 30628731073

4 30628731073

5 30628731073

6 30628731073

7 30628731073

8 30628731073

9 30628731073

10 30628731073

11 0

FILE# CHECKPOINT_CHANGE#

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

12 30628731073

13 30628731073

而控制文件记录的数据文件的头部信息则不变

SQL> col checkpoint_change# for 999999999999999

SQL> select file#,checkpoint_change# from v$datafile;

FILE# CHECKPOINT_CHANGE#

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

1 30628731073

2 30628731073

3 30628731073

4 30628731073

5 30628731073

6 30628731073

7 30628731073

8 30628731073

9 30628731073

10 30628731073

11 30628731073

FILE# CHECKPOINT_CHANGE#

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

12 30628731073

13 30628731073

14 30628731073

15 30628731073

从备份集还原该数据文件,再应用部分归档日志,使数据文件头部信息SCN与控制文件记录的数据文件头部信息SCN一致,即可打开数据库。

Ø restore数据库文件rwsw_quest1

$ rman target / catalog rman/rman@rmandb

Recovery Manager: Release 9.2.0.7.0 - 64bit Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

connected to target database: RETC (DBID=1688860591)

connected to recovery catalog database

RMAN> run

2> {

3> allocate channel t1 type 'SBT_TAPE'

4>parms 'BLKSIZE=524288,ENV=(TDPO_OPFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

5> set newname for datafile 11 to '/u01/oradata/retc/rwsw_quest1';

6> restore datafile 11 from tag='TAG20121124T053038';

7> #switch datafile '/dev/rwsw_quest1' to '/u01/oradata/retc/rwsw_quest1';

8> release channel t1;

9> }

10>

11>

allocated channel: t1

channel t1: sid=12 devtype=SBT_TAPE

channel t1: Tivoli Data Protection for Oracle: version 5.2.0.0

executing command: SET NEWNAME

Starting restore at 05-DEC-12

channel t1: starting datafile backupset restore

channel t1: specifying datafile(s) to restore from backup set

restoring datafile 00011 to /u01/oradata/retc/rwsw_quest1

channel t1: restored backup piece 1

piece handle=7cnr387v_1_1 tag=TAG20121124T053038 params=NULL

channel t1: restored backup piece 2

piece handle=7cnr387v_2_1 tag=TAG20121124T053038 params=NULL

channel t1: restore complete

Finished restore at 05-DEC-12

released channel: t1

Recovery Manager complete.

Ø 恢复数据文件rwsw_quest1

SQL> recover database using backup controlfile

ORA-00279: change 30626721711 generated at 11/24/2012 05:30:40 needed for

thread 1

ORA-00289: suggestion : /u01/oradata/archivelog/1_198779.dbf

ORA-00280: change 30626721711 for thread 1 is in sequence #198779

Specify log: {=suggested | filename | AUTO | CANCEL}

恢复该数据文件需要从归档日志序列号为198779开始进行恢复数据库,即SCN 30626721711开始,一直到SCN 30628731073为止,数据库才处于一致状态,才能完成恢复,打开数据库。

下面restore所需归档日志文件:

$ rman target / catalog rman/rman@rmandb

Recovery Manager: Release 9.2.0.7.0 - 64bit Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

connected to target database: RETC (DBID=1688860591)

connected to recovery catalog database

RMAN> run

2> {

3> allocate channel t1 type 'SBT_TAPE';

4> set archivelog destination to '/u01/oradata/archivelog';

5> restore archivelog from sequence 198779 until sequence 198798 thread 1;

6> restore archivelog from sequence 260037 until sequence 260049 thread 2;

7> release channel t1;

8> }

allocated channel: t1

channel t1: sid=8 devtype=SBT_TAPE

channel t1: Tivoli Data Protection for Oracle: version 5.2.0.0

executing command: SET ARCHIVELOG DESTINATION

Starting restore at 05-DEC-12

channel t1: starting archive log restore to user-specified destination

下面开始recover数据库:

SQL> recover database using backup controlfile

ORA-00279: change 30626721711 generated at 11/24/2012 05:30:40 needed for

thread 1

ORA-00289: suggestion : /u01/oradata/archivelog/1_198779.dbf

ORA-00280: change 30626721711 for thread 1 is in sequence #198779

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 30626721711 generated at 11/24/2012 04:41:10 needed for

thread 2

ORA-00289: suggestion : /u01/oradata/archivelog/2_260039.dbf

ORA-00280: change 30626721711 for thread 2 is in sequence #260039

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 30626756837 generated at 11/24/2012 06:02:49 needed for

thread 2

ORA-00289: suggestion : /u01/oradata/archivelog/2_260040.dbf

ORA-00280: change 30626756837 for thread 2 is in sequence #260040

ORA-00278: log file '/u01/oradata/archivelog/2_260039.dbf' no longer needed for

this recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 30626757063 generated at 11/24/2012 06:02:50 needed for

thread 1

ORA-00289: suggestion : /u01/oradata/archivelog/1_198780.dbf

ORA-00280: change 30626757063 for thread 1 is in sequence #198780

ORA-00278: log file '/u01/oradata/archivelog/1_198779.dbf' no longer needed for

this recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 30626972131 generated at 11/24/2012 08:23:48 needed for

thread 2

ORA-00289: suggestion : /u01/oradata/archivelog/2_260041.dbf

ORA-00280: change 30626972131 for thread 2 is in sequence #260041

......

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 30628644962 generated at 11/24/2012 13:59:15 needed for

thread 1

ORA-00289: suggestion : /u01/oradata/archivelog/1_198798.dbf

ORA-00280: change 30628644962 for thread 1 is in sequence #198798

ORA-00278: log file '/u01/oradata/archivelog/1_198797.dbf' no longer needed for

this recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 30628731073 generated at 11/24/2012 14:12:29 needed for

thread 1

ORA-00289: suggestion : /u01/oradata/archivelog/1_198799.dbf

ORA-00280: change 30628731073 for thread 1 is in sequence #198799

ORA-00278: log file '/u01/oradata/archivelog/1_198798.dbf' no longer needed for

this recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

cancel

Media recovery cancelled.

SQL>

已经恢复到SCN 30628731073,数据库已经处于一致状态,归档日志序列号为198799是最后一个需要恢复的日志,手动输入cancel,取消恢复。

至此,损坏或丢失的数据文件rwsw_quest1已经恢复,数据库已经处于一致状态。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28227905/viewspace-1059889/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28227905/viewspace-1059889/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值