RMAN restore的时候报错ora01180

想测试基于SCN的不完全恢复。在restore database的时候报错ora-01180,ora-0110。提示不能创建data file 1.

数据库版本是11.1.0.6.0,运行在SUSE 10SP3上。

操作步骤如下:

1.  select dbms_flashback.get_system_change_number from dual. 获得当前的SCN,例如123;
2.  执行一次日志切换;
3.  执行一次level 0的热备份。使用命令backup increament level 0 database plus archive log;
4.  备份控制文件。

备份能够成功完成。完成备份后,在数据库中进行一些事务操作。接着执行还原和恢复操作。

1. 关闭数据库,打开到nomount状态,还原控制文件;
2. 打开数据库到mount状态;
3. 执行命令restore data until scn 123. 这时,数据库报错,ora-01180和ora-01110,提示不能创建文件1, 就是system表空间的文件。

接着,我使用命令list incarnation of database查看了incarnation的信息,命令显示只有一个incarnation。说明数据库没有被执行过resetlogs。
然后在v$log_history中查看,发现最近的一个archived log的next scn比我取的SCN大,假如是150. 然后我使用这个SCN来还原数据库。执行命令restore database until scn 150.
这次数据库能够成功还原,接下来的recover命令也能成功执行。

我的问题是:为什么使用最初的SCN 123不能还原数据库呢?restore database until SCN中的SCN有什么限制?怎么取这个SCN才能自动化的用脚本处理还原和恢复?谢谢

原文地址:https://www.cnblogs.com/weixun/p/3101640.html