说明不兼容,这个时候修改
拷贝此文件到10.2.0.1.0的dbs下,然后用该pfile启动数据库:
于是就在原来的10.2.0.3.0上把controlfile备份到trace文件中发现里面有关于版本号的语句,于是就写一个重建控制文件的sql,去执行;
CREATECONTROLFILEREUSEDATABASE "ORCL"NORESETLOGS NOARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY292
LOGFILE
GROUP1'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'SIZE50M,
GROUP2'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'SIZE50M,
GROUP3'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'SIZE50M
-- STANDBY LOGFILE
DATAFILE
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF',
'E:\RMAN.DBF'
CHARACTERSET ZHS16GBK;
在执行的时候又出现了如下错误:
那就是说每个数据文件的头部也都记录有版本号,所以跨版本的这种操作是不允许的;或者是高版本数据库被低版本数据库软件管理时不允许的;
也就是说高版本恢复到低版本数据库是不兼容的,低版本数据文件恢复到高版本数据库是兼容的。
到这里就准备开始用相同版本的数据库做实验;
在测试机上也装上10.2.0.3.0 然后关闭数据库,删除$ORACLE_HOME/oradata/orcl/ 下的所有数据文件; 删除$ORACLE_HOME/database/spfileorcl.ora 和PWDorcl.ora以及$ORACLE_HOME/dbs/initdw.ora
然后把这些相应的文件从另一台相应的目录中拷贝过来,在测试机上开始启动;
Ok 大功告成;
rman 用户也可以继续使用,如果想使用原来的备份的话,需要把用rman备份的文件拷贝到测试机的相应位置;否则的话现在的rman资料库里记录的信息已经和真实内容不符,需要用crosscheck 命令修正;
这里总结一下:
经过本实验,可以配置一个与生产库完全一样的测试环境,在建测试环境的时候,只需安装数据库软件即可,不用创建数据库,然后把正式库的相应文件拷贝到测试机的相应位置即可;