【正确答案】一般会被问到,能使用更高版本的Oracle还原或复制旧版本的数据库吗?答案是可以跨高版本恢复,但是有很多限制条件,而且不支持RMAN复制(Duplicate),因为该功能会在恢复之后尝试自动打开数据库时失败。RMAN可将在较旧的数据库版本上进行的备份还原到较新的版本中,但是旧的备份必须是在9.2或更高版本的数据库中进行的。对于跨小版本的恢复很容易,例如从Oracle 11.2.0.1恢复到11.2.0.3版本的数据库。可以依次还原SPFILE、控制文件和数据文件,然后恢复数据库,使用STARTUP UPGRADE命令打开数据库,最后一步是使用catupgrd.sql脚本对失效的对象进行编译即可。对于跨大版本的恢复有很多限制条件,例如从Oracle 10.2.0.2恢复到11.2.0.3版本的数据库。恢复步骤和小版本一样,打开数据库的时候可以使用命令:“ALTER DATABASE OPEN RESETLOGS UPGRADE;”。将Oracle 10g恢复到Oracle 11g上,需要满足2个条件,①必须在Oracle 10g上先执行脚本“@?/rdbms/admin/utlu112i.sql”,然后再进行备份,否则RESTORE之后的升级将失败。②Oracle 10g的版本必须大于10.2.0.2,即Oracle采用RMAN恢复到高版本的数据库依然要遵循Oracle数据库的升级流程图,如下图所示。
【答案解析】