Oracle 11g 数据库恢复-场景1:所有的数据文件损坏,OPEN状态

--查看数据文件

sys@TESTDB11>select name from v$datafile;

 

NAME

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

/u01/app/oracle/oradata/TestDB11/system01.dbf

/u01/app/oracle/oradata/TestDB11/sysaux01.dbf

/u01/app/oracle/oradata/TestDB11/undotbs01.dbf

/u01/app/oracle/oradata/TestDB11/users01.dbf

/u01/app/oracle/oradata/TestDB11/example01.dbf

/u01/app/oracle/oradata/TestDB11/rotbs01.dbf

 

6 rows selected.

 

--1. 删除所有的数据文件

[oracle@S1011:/backup/inconsistent_backup]$ cd /u01/app/oracle/oradata/TestDB11/

[oracle@S1011:/u01/app/oracle/oradata/TestDB11]$ ls

control01.ctl  example01.dbf  redo01.log     redo02.log     redo03.log     rotbs01.dbf    sysaux01.dbf   system01.dbf   temp01.dbf     undotbs01.dbf  users01.dbf

[oracle@S1011:/u01/app/oracle/oradata/TestDB11]$ rm *.dbf

[oracle@S1011:/u01/app/oracle/oradata/TestDB11]$ ls

control01.ctl  redo01.log     redo02.log     redo03.log

--2. 数据库处于OPEN状态

sys@TESTDB11>select status from v$instance;

 

STATUS

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

OPEN

--3. 此时正常关库是关不了的,只能shutdown abort

sys@TESTDB11>startup force

ORACLE instance started.

 

Total System Global Area  855982080 bytes

Fixed Size                  2230792 bytes

Variable Size             641730040 bytes

Database Buffers          209715200 bytes

Redo Buffers                2306048 bytes

Database mounted.

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

ORA-01110: data file 1: '/u01/app/oracle/oradata/TestDB11/system01.dbf'

--4.查看错误信息

sys@TESTDB11>col error for a15

sys@TESTDB11>select * from v$recover_file;

 

     FILE#  ONLINE   ONLINE_  ERROR               CHANGE# TIME

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

           1 ONLINE  ONLINE   FILE NOT FOUND             0

           2 ONLINE  ONLINE   FILE NOT FOUND             0

           3 ONLINE  ONLINE   FILE NOT FOUND             0

           4 ONLINE  ONLINE   FILE NOT FOUND             0

           5 ONLINE  ONLINE   FILE NOT FOUND             0

           6 ONLINE  ONLINE   FILE NOT FOUND             0

 

6 rows selected.

 

--查看数据文件头信息, 因为文件都已经被删除,所以显示的均为0

sys@TESTDB11>col name for a15

sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;

 

NAME            CHECKPOINT_CHANGE#

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

                                 0

                                 0

                                 0

                                 0

                                 0

                                 0

 

6 rows selected.

 

--从非一致备份进行文件的还原

oracle@S1011:/pooldisk02/backup01/inconsistent]$ cp *.dbf /u01/app/oracle/oradata/TestDB11/

 

--再次查看错误的信息,检查点都不一致(因为当时做的是热备份)

sys@TESTDB11>select * from v$recover_file;

 

     FILE# ONLINE  ONLINE_ ERROR              CHANGE# TIME

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

         1 ONLINE  ONLINE                     2654775 09-AUG-13

         2 ONLINE  ONLINE                     2654801 09-AUG-13

         3 ONLINE  ONLINE                     2654893 09-AUG-13

         4 ONLINE  ONLINE                     2654911 09-AUG-13

         5 ONLINE  ONLINE                     2654924 09-AUG-13

         6 ONLINE  ONLINE                     2654946 09-AUG-13

 

6 rows selected.

 

--此时开库

sys@TESTDB11>alter database open;

alter database open

*

ERROR at line 1:

ORA-01113: file 1 needs media recovery

ORA-01110: data file 1: '/u01/app/oracle/oradata/TestDB11/system01.dbf'

 

--执行完全恢复

sys@TESTDB11>recover database;

ORA-00279: change 2654775 generated at 08/09/2013 21:25:44 needed for thread 1

ORA-00289: suggestion : /archive2/1_98_813665348.dbf

ORA-00280: change 2654775 for thread 1 is in sequence #98

 

 

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: change 2660981 generated at 08/09/2013 22:19:48 needed for thread 1

ORA-00289: suggestion : /archive2/1_99_813665348.dbf

ORA-00280: change 2660981 for thread 1 is in sequence #99

 

 

auto

Log applied.

Media recovery complete.

 

--恢复完查看效果,检查点都恢复到一致的状态

sys@TESTDB11>col name for a60

sys@TESTDB11>select name, checkpoint_change# from v$datafile;

 

NAME                                                                    CHECKPOINT_CHANGE#

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

/u01/app/oracle/oradata/TestDB11/system01.dbf                   2725648

/u01/app/oracle/oradata/TestDB11/sysaux01.dbf                   2725648

/u01/app/oracle/oradata/TestDB11/undotbs01.dbf                  2725648

/u01/app/oracle/oradata/TestDB11/users01.dbf                    2725648

/u01/app/oracle/oradata/TestDB11/example01.dbf                  2725648

/u01/app/oracle/oradata/TestDB11/rotbs01.dbf                    2725648

 

6 rows selected.

 

sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;

 

NAME                                                                    CHECKPOINT_CHANGE#

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

/u01/app/oracle/oradata/TestDB11/system01.dbf                   2725648

/u01/app/oracle/oradata/TestDB11/sysaux01.dbf                   2725648

/u01/app/oracle/oradata/TestDB11/undotbs01.dbf                  2725648

/u01/app/oracle/oradata/TestDB11/users01.dbf                    2725648

/u01/app/oracle/oradata/TestDB11/example01.dbf                  2725648

/u01/app/oracle/oradata/TestDB11/rotbs01.dbf                    2725648

 

6 rows selected.

 

--此时可以进行正常的开库

sys@TESTDB11>alter database open;

 

Database altered.

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

转载于:http://blog.itpub.net/17013648/viewspace-1151906/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值