高版本数据库在低版本数据库恢复时的实验

高版本数据库在低版本数据库恢复时的实验_第1张图片

高版本数据库在低版本数据库恢复时的实验_第2张图片

说明不兼容,这个时候修改

高版本数据库在低版本数据库恢复时的实验_第3张图片

拷贝此文件到10.2.0.1.0的dbs下,然后用该pfile启动数据库:

高版本数据库在低版本数据库恢复时的实验_第4张图片

于是就在原来的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;

在执行的时候又出现了如下错误:

高版本数据库在低版本数据库恢复时的实验_第5张图片

那就是说每个数据文件的头部也都记录有版本号,所以跨版本的这种操作是不允许的;或者是高版本数据库被低版本数据库软件管理时不允许的;

也就是说高版本恢复到低版本数据库是不兼容的,低版本数据文件恢复到高版本数据库是兼容的。

到这里就准备开始用相同版本的数据库做实验

在测试机上也装上10.2.0.3.0 然后关闭数据库,删除$ORACLE_HOME/oradata/orcl/ 下的所有数据文件; 删除$ORACLE_HOME/database/spfileorcl.ora 和PWDorcl.ora以及$ORACLE_HOME/dbs/initdw.ora

然后把这些相应的文件从另一台相应的目录中拷贝过来,在测试机上开始启动;

高版本数据库在低版本数据库恢复时的实验_第6张图片

Ok 大功告成;

rman 用户也可以继续使用,如果想使用原来的备份的话,需要把用rman备份的文件拷贝到测试机的相应位置;否则的话现在的rman资料库里记录的信息已经和真实内容不符,需要用crosscheck 命令修正;


这里总结一下:

经过本实验,可以配置一个与生产库完全一样的测试环境,在建测试环境的时候,只需安装数据库软件即可,不用创建数据库,然后把正式库的相应文件拷贝到测试机的相应位置即可;

你可能感兴趣的:(数据库)