1、在测试机器上安装9i数据库,检查数据库版本

源端数据库版本为9.2.0.1.0
2、创建测试表test
Create table test (a number(8), b number(8));
Insert into test values(111,111);
Insert into test values(222,222);
Commit;

3、源端数据库开归档
Shutdown immediate;
Startup mount;
Alter database archivelog;
Alter database open;

4、rman 备份数据库
backup format 'e:\oracle\rmanbak\myora_full_%s_%p.dbf' database;


backup archivelog all;

backup format 'e:\oracle\rmanbak\myora_control_%s_%p.dbf' current controlfile;

5、在10g数据库上恢复数据库
1)、启动数据库到nomount状态

2)、恢复控制文件
restore controlfile from 'E:\lb\rmanbak\MYORA_CONTROL_4_1.DBF';

3)、恢复数据文件
Alter database mount;

Restore database;


4) 、Recover database;

5)、打开数据库,失败

6)、升级数据字典
1)、建立表空间
STARTUP UPGRADE pfile='E:\oracle\admin\myoracle\pfile\initmyoracle.ora'
create tablespace SYSAUX datafile 'E:\oracle\oradata\myoracle\sysaux01.dbf'
size 100M reuse
extent management local
segment space management auto
online;
alter tablespace temp add tempfile 'E:\oracle\oradata\myoracle\temp01.dbf' size 10M;
2)、升级数据字典
SPOOL E:\oracle\admin\myoracle\pfile\patch.log
@?/rdbms/admin/utlrp.sql
3)、编译无效对象
Statup;
@?/rdbms/admin/utlrp.sql
7)、打开数据库
startup pfile='E:\oracle\admin\myoracle\pfile\initmyoracle.ora' mount;
alter database open;

8)、检查test表数据
Select * from test;

7、总结
1、oracle 9i恢复到oracle 10g需要创建表空间SYSAUX,SYSAUX表空间是10g新增的一个系统辅助表空间,在9i中没有该表空间。
2、通过rman恢复数据库从低版本到高版本需要升级数据字典和编译无效对象后才可以打开数据库。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27571661/viewspace-740721/ ,如需转载,请注明出处,否则将追究法律责任。