您好,欢迎访问一九零五行业门户网

Oracle Rman跨resetlogs版本恢复

20207错误:默认的认为until time或recovery window的时间不能早于resetlogs的时间. 既然resetlogs了,就不认识之前的归档日志信
rman> startup nomount;
rman> sql 'alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss'';
--因为rman默认以环境变量来读取时间格式,与sqlplus的固定格式不同,所以,此处要设定时间格式变量。
rman> restore controlfile from autobackup until time '2009-03-10 18:15:00';
注意,仍然需要适当的还原控制文件。
rman> alter database mount;
rman> restore database;
rman> sql alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss'';
rman> recover database until time '2009-03-10 18:15:00';
此时,出现以下错误:
rman-03002: recover 命令 (在 03/10/2009 19:21:19 上) 失败
rman-20207: until time 或 recovery window 在 resetlogs 时间之前
20207错误:默认的认为until time或recovery window的时间不能早于resetlogs的时间. 既然resetlogs了,就不认识之前的归档日志信息了。把之前的归档日志排除在可供恢复的选择之外了。这只是默认的行为,可能处于节省系统资源的考虑,毕竟resetlogs之前的数据再利用可能很小。
其解决可按以下方法处理:
1.找到数据库的当前incarnation号:
rman> list incarnation of database test;
数据库原型列表
db 关键字  inc 关键字 db 名  db id            status  重置 scn  重置时间
------- ------- -------- ---------------- --- ---------- ----------
1       1       test     1978860036       parent  1          30-8月 -05
2       2       test     1978860036       parent  534907     05-3月 -09
3       3       test     1978860036       parent  762990     10-3月 -09
4       4       test     1978860036       parent  764885     10-3月 -09
5       5       test     1978860036       parent  765443     10-3月 -09
6       6       test     1978860036       parent  767488     10-3月 -09
7       7       test     1978860036       parent  771807     10-3月 -09
8       8       test     1978860036       parent  774320     10-3月 -09
9       9       test     1978860036       parent  779541     10-3月 -09
10      10      test     1978860036       parent  782000     10-3月 -09
11      11      test     1978860036       parent  783792     10-3月 -09
12      12      test     1978860036       current 801599     10-3月 -09  --此行原型(incarnation)号状态为current,即当前
所以,数据库的前一个(resetlogs之前)原型号为11.
我们重新启动数据库到mount状态(因为需要知道是重置哪个库,所以要挂载)
2.重置数据库到前一个原型(注意:此时的控制文件已经在前面的步骤中,还原到了适当的时间点。实际上,我们应该在nomount前还原控制文件)
rman> reset database to incarnation 11;
将数据库重置为原型 11
rman> sql alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss'';
rman> restore database;
rman> recover database until time '2009-03-10 18:15:00';
rman> alter database open resetlogs;  (此时,,数据库的incarnation编号将再次上涨)
数据库正常打开
其它类似信息

推荐信息