myguangzhou 发表于 2008-06-18 10:54

接下来应该alter database open resetlogs就可以了吧.你试试.22根本就没归档嘛.

4nai 发表于 2008-06-18 11:50

你将online redo log也删除了,redo完21之后他肯定提示要22,直接resetlogs就起来了。

stornewer 发表于 2008-06-18 13:41

alter database open resetlogs起不来的啊
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01152: 文件 1 没有从完备的旧备份中恢复
ORA-01110: 数据文件 1: 'E:\ORADATA\ORA9I\SYSTEM01.DBF'

我后来把原来的所有数据拷贝回去,startup之后的发现oracle这个时候生成了一个22号的归档,这是什么情况,之前关闭数据库shutdown immediate;也是正常关闭的

[ 本帖最后由 stornewer 于 2008-6-18 13:43 编辑 ]

myguangzhou 发表于 2008-06-18 15:51

.........
4.把数据库停下来,删除所有的控制文件,归档文件,日志文件,数据文件;
5.然后把冷备份的数据文件拷贝回来,把备份的控制文件拷贝回来,并且改名为cotrol01.ctl,control02.ctl,control03.ctl;
...........
不知道你这样做的目的是什么?控制文件本来就是control0*.ctl的呀,怎么说"改名"呢?
没看到你恢复控制文件啊.
你的数据文件看来比控制文件要新......:em21:

stornewer 发表于 2008-06-18 15:59

控制文件是通过
allocate channel d1 type disk;
copy current controlfile to 'c:\controlfile\control.ctl';
release channel 备份的啊;
控制文件总共三个,我备份的时候只备份了一个,所以要拷贝回去,然后再改名啊

stornewer 发表于 2008-06-18 16:07

应该是数据文件比控制文件新,但是这个控制文件我是从
connect target bakuser/bakuser@ora9i
run {
sql 'alter session set nls_language=american';
sql 'alter system switch logfile';
allocate channel ch1 type 'sbt_tape';
allocate channel ch2 type 'sbt_tape';
send 'NSR_ENV=(NSR_SERVER=cls1,NSR_CLIENT=bakserver,NSR_DATA_VOLUME_POOL=dbpool)';
backup full filesperset 4 format 'ora9i_%p_%u_%s_$t' (database);
release channel ch1;
release channel ch2;
allocate channel d1 type disk;
copy current controlfile to 'c:\controlfile\control.ctl';
release channel d1;
}
这样的脚本执行的啊


而且我如果把最后的冷备份数据(rman备份完之后,我shudown数据库做的备份),拷贝回来,启动数据库,竟然生成一个归档号为22的归档文件,启动数据库也要归档吗?

[ 本帖最后由 stornewer 于 2008-6-18 16:14 编辑 ]

redwaves 发表于 2008-06-20 00:10

原帖由 stornewer 于 2008-6-18 09:32 发表 http://bbs.chinaunix.net/images/common/back.gif

哪里错了能给我指正一下吗,大哥?



Oracle备份增量与备份软件没有关系

Oracle RMAN的level 0是全备,level 1,level 2是增量

stornewer 发表于 2008-06-20 21:02

connect target bakuser/bakuser@ora9i
run {
sql 'alter session set nls_language=american';
sql 'alter system switch logfile';
allocate channel ch1 type 'sbt_tape';
allocate channel ch2 type 'sbt_tape';
send 'NSR_ENV=(NSR_SERVER=cls1,NSR_CLIENT=bakserver,NSR_DATA_VOLUME_POOL=dbpool)';
backup incremental level=2 filesperset 5 format 'ora9i_%p_%u_%s_$t'
(database include current controlfile);
release channel ch1;
release channel ch2;
allocate channel d1 type disk;
copy current controlfile to 'c:\controlfile\control.ctl';
release channel d1;
}
有啊,level=2了

yddll 发表于 2008-06-21 11:26

1、oracle的增量必须是基于level 0 backup的,而不是介于full backup的
2、数据库启动的时候,会检查控制文件,数据库及日志文件,必要的时候采取recover动作

就这些了,贴子太长,懒得细看了。

jjslove 发表于 2011-12-09 13:02

因为你rman脚本是完全恢复
,在先redo file 还在么? 在的话应用一下在线redofile
页: 1 [2]
查看完整版本: legato networker 备份oracle 9.0.1.1.1问题,如何使用增量备份恢复?