Oracle手工完全恢复案例(归档模式)(二)

2014-11-24 12:48:46 · 作者: · 浏览: 3
ORA-00280: change1552528for thread1isinsequence #1 Specify log:{=suggested| filename | AUTO| CANCEL}... 一路回车下去,数据库使用归档日志来恢复数据库。最后打开数据库。 alter databaseopen; 最后用test用户连上查t1数据,数据回来了。 再查select file#,checkpoint_change#from v$datafile; select file#,checkpoint_change#from v$datafile_header; 发现控制文件和数据文件头部的SCN是同步的。

案例二:recover tablespace (恢复表空间)
模拟环境:
1.用test用户登录创建一个表再插入一些数据提交

create table t01(id int) tablespacetest;

insert into t01 values(1);

insert into t01 values(2);

insert into t01 values(3);

commit;

2.模拟介质失败

shutdown abort

rm -f /u01/oradata/siqian11g/test01.dbf

3.起库

出错:

ORA-01157: cannot identify/lockdatafile6- see DBWRtracefile

ORA-01110:datafile6:'/u01/oradata/siqian11g/test01.dbf'

查看下要恢复的数据文件:

select file#,error from v$recover_file;

     FILE#ERROR

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

         1 UNKNOWN ERROR

         2 UNKNOWN ERROR

         3 UNKNOWN ERROR

         4 UNKNOWN ERROR

         5 UNKNOWN ERROR

         6 FILENOTFOUND

4.还原数据文件

cp /backup/cold/test01.dbf/u01/oradata/siqian11g/

5.将数据文件offline(模拟高可用性),然后起库

alter database datafile6offline;

起库

alter database open;

6.恢复表空间

recover tablespacetest;

ORA-00279: change2067764 generatedat06/29/201312:11:34 neededfor thread 1

ORA-00289: suggestion:/backup/arch/arch_1_819372290_12.log

ORA-00280: change2067764for thread1isin sequence #12

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

一路回车下去来恢复表空间。

7.将数据文件online

alter database datafile6online;

8.验证

conn test/test

test@SIQIAN11>select*from t01;

       ID

----------

         1

         2

         3

案例三:在database open状态下恢复表空间
----database open状态下恢复数据文件(除了system表空间)
模拟环境:
1.test用户登录

test@SIQIAN11>select*from t01;

        ID

----------

         1

         2

         3

插入一些数据:

insert into t01 values(4);

insert into t01 values(5);

insert into t01 values(6);

commit;

2.在database open状态下删除test01.dbf

[oracle@siqian siqian11g]$ rm-f/u01/oradata/siqian11g/test01.dbf

然后清除data buffer

sys@SIQIAN11>alter system flush buffer_cache;

sys@SIQIAN11>select*from test.t01;

select * from test.t01

*

ERROR at line 1:

ORA-01116: errorin opening databasefile6

ORA-01110:datafile6:'/u01/oradata/siqian11g/test01.dbf'

ORA-27041: unabletoopenfile

Linux Error: 2: No suchfileor directory

Additional information:3

3.将被损坏的datafile offline

alter database datafile6offline;

4.还原数据文件

[oracle@siqian siqian11g]$ cp/backup/cold/test01.dbf/u01/oradata/siqian11g/

5.恢复数据文件or表空间

recover datafile 6 或 recover tablespace test(这里我用的前者)

sys@SIQIAN11>recover datafile6;

ORA-00279: change2067764 generatedat06/29/201312:11:34 neededfor thread 1

ORA-00289: suggestion:/backup/arch/arch_1_819372290_12.log

ORA-00280: change2067764for thread1isinsequence #12

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

Log applied.

Media recovery complete.

6.将被脱机的数据文件online

alter database datafile6online;

7.验证

sys@SIQIAN11>select*from test.t01;



        ID

----------

         1

         2

         3

         4

         5

         6

6 rows selected.

案例四:恢