我看了“RESETLOGS后没有备份情况下的数据恢复(2) ”这份网上资料,按照上面的步骤操作下了结果恢复出错:
1.开启归档模式
2.create tablespace demo datafile 'f:\test\demo.dbf' size 5M;
create user demo identified by demo default tablespace demo quota unlimited on demo temporary tablespace temp;
grant connect,alter system to demo;
alter user demo account unlock;
3.备份3个日志文件和demo.dbf文件
做数据库的一致冷备份。
copy f:\test\demo.dbf f:\cool\coola
copy E:\Oracle\oradata\ora9i\CONTROL01.CTL f:\cool\ctl_a
copy E:\Oracle\oradata\ora9i\CONTROL02.CTL f:\cool\ctl_a
copy E:\Oracle\oradata\ora9i\CONTROL03.CTL f:\cool\ctl_a
4.以试验用户demo登录,并插入数据到表a中。
create table a (i number);
commit;
insert into a values(1);
commit;
alter system switch logfile;
insert into a values(2);
commit;
alter system switch logfile;
insert into a values(3);
commit;
alter system switch logfile;
5.记录当前时刻为B点。
SQL> select to_char(sysdate,'DD-MONTH-YYYY HH24:MI:SS') "DATE" from dual;
DATE
--------------------------
08-3月 -2005 19:10:57
6.继续由用户demo向表a插入数据。
insert into a values(4);
commit;
alter system switch logfile;
insert into a values(5);
commit;
alter system switch logfile;
insert into a values(6);
commit;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
7.记录当前时刻为B'点。
SQL> select to_char(sysdate,'DD-MONTH-YYYY HH24:MI:SS') "DATE" from dual;
DATE
--------------------------
08-3月 -2005 19:11:42
8.模拟丢失所有当前(B'点)数据文件和控制文件。首先保存归档日志文,再把点A的数据文件和控制文件恢复到在线数据文件的目录。
del f:\test\demo.dbf
copy f:\arc\*.001 f:\cool\archa_b
copy f:\cool\coola\demo.dbf f:\test
copy f:\cool\ctl_a\CONTROL01.CTL E:\Oracle\oradata\ora9i
copy f:\cool\ctl_a\CONTROL02.CTL E:\Oracle\oradata\ora9i
copy f:\cool\ctl_a\CONTROL03.CTL E:\Oracle\oradata\ora9i
9.以SYSDBA身份登录,执行从时刻A到时刻B的基于时间点的不完全媒体恢复,因为媒体恢复过程使用时刻A的控制文件,所以要加上using backup controlfile子句。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
会话已更改。
SQL> recover database until time '2005-03-08 19:11:00' using backup controlfile;
ORA-00279: 更改 169494 (在 03/08/2005 19:08:37 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00001.001
ORA-00280: 更改 169494 对于线程 1 是按序列 # 1 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00001.001
ORA-00279: 更改 169625 (在 03/08/2005 19:10:38 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00002.001
ORA-00280: 更改 169625 对于线程 1 是按序列 # 2 进行的
ORA-00278: 此恢复不再需要日志文件 'F:\cool\archa_b\ARC00001.001'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00002.001
ORA-00279: 更改 169629 (在 03/08/2005 19:10:38 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00003.001
ORA-00280: 更改 169629 对于线程 1 是按序列 # 3 进行的
ORA-00278: 此恢复不再需要日志文件 'F:\cool\archa_b\ARC00002.001'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00003.001
ORA-00279: 更改 169635 (在 03/08/2005 19:10:44 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00004.001
ORA-00280: 更改 169635 对于线程 1 是按序列 # 4 进行的
ORA-00278: 此恢复不再需要日志文件 'F:\cool\archa_b\ARC00003.001'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00004.001
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01152: 文件 1 没有从完备的旧备份中恢复
ORA-01110: 数据文件 1: 'E:\ORACLE\ORADATA\ORA9I\SYSTEM01.DBF'
ORA-01112: 未启动介质恢复
然后数据就open不了了,请大家帮帮忙,看看是什么原因?谢了!!!
1.开启归档模式
2.create tablespace demo datafile 'f:\test\demo.dbf' size 5M;
create user demo identified by demo default tablespace demo quota unlimited on demo temporary tablespace temp;
grant connect,alter system to demo;
alter user demo account unlock;
3.备份3个日志文件和demo.dbf文件
做数据库的一致冷备份。
copy f:\test\demo.dbf f:\cool\coola
copy E:\Oracle\oradata\ora9i\CONTROL01.CTL f:\cool\ctl_a
copy E:\Oracle\oradata\ora9i\CONTROL02.CTL f:\cool\ctl_a
copy E:\Oracle\oradata\ora9i\CONTROL03.CTL f:\cool\ctl_a
4.以试验用户demo登录,并插入数据到表a中。
create table a (i number);
commit;
insert into a values(1);
commit;
alter system switch logfile;
insert into a values(2);
commit;
alter system switch logfile;
insert into a values(3);
commit;
alter system switch logfile;
5.记录当前时刻为B点。
SQL> select to_char(sysdate,'DD-MONTH-YYYY HH24:MI:SS') "DATE" from dual;
DATE
--------------------------
08-3月 -2005 19:10:57
6.继续由用户demo向表a插入数据。
insert into a values(4);
commit;
alter system switch logfile;
insert into a values(5);
commit;
alter system switch logfile;
insert into a values(6);
commit;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
7.记录当前时刻为B'点。
SQL> select to_char(sysdate,'DD-MONTH-YYYY HH24:MI:SS') "DATE" from dual;
DATE
--------------------------
08-3月 -2005 19:11:42
8.模拟丢失所有当前(B'点)数据文件和控制文件。首先保存归档日志文,再把点A的数据文件和控制文件恢复到在线数据文件的目录。
del f:\test\demo.dbf
copy f:\arc\*.001 f:\cool\archa_b
copy f:\cool\coola\demo.dbf f:\test
copy f:\cool\ctl_a\CONTROL01.CTL E:\Oracle\oradata\ora9i
copy f:\cool\ctl_a\CONTROL02.CTL E:\Oracle\oradata\ora9i
copy f:\cool\ctl_a\CONTROL03.CTL E:\Oracle\oradata\ora9i
9.以SYSDBA身份登录,执行从时刻A到时刻B的基于时间点的不完全媒体恢复,因为媒体恢复过程使用时刻A的控制文件,所以要加上using backup controlfile子句。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
会话已更改。
SQL> recover database until time '2005-03-08 19:11:00' using backup controlfile;
ORA-00279: 更改 169494 (在 03/08/2005 19:08:37 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00001.001
ORA-00280: 更改 169494 对于线程 1 是按序列 # 1 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00001.001
ORA-00279: 更改 169625 (在 03/08/2005 19:10:38 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00002.001
ORA-00280: 更改 169625 对于线程 1 是按序列 # 2 进行的
ORA-00278: 此恢复不再需要日志文件 'F:\cool\archa_b\ARC00001.001'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00002.001
ORA-00279: 更改 169629 (在 03/08/2005 19:10:38 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00003.001
ORA-00280: 更改 169629 对于线程 1 是按序列 # 3 进行的
ORA-00278: 此恢复不再需要日志文件 'F:\cool\archa_b\ARC00002.001'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00003.001
ORA-00279: 更改 169635 (在 03/08/2005 19:10:44 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ARC\ARC00004.001
ORA-00280: 更改 169635 对于线程 1 是按序列 # 4 进行的
ORA-00278: 此恢复不再需要日志文件 'F:\cool\archa_b\ARC00003.001'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
F:\cool\archa_b\ARC00004.001
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01152: 文件 1 没有从完备的旧备份中恢复
ORA-01110: 数据文件 1: 'E:\ORACLE\ORADATA\ORA9I\SYSTEM01.DBF'
ORA-01112: 未启动介质恢复
然后数据就open不了了,请大家帮帮忙,看看是什么原因?谢了!!!
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>startup mount
svrmgrl>set autorecovery on
svrmgrl>recover database;
svrmgrl>alter database open;
http://www.oradb.net/err/error_009.htm
svrmgrl>set autorecovery on
svrmgrl>recover database;
svrmgrl>alter database open;
这样做的原因是什么,可否讲解一下,谢谢
后再保存归档日志文件,否则无法恢复的。