1、在安装好Oracle 10g软件的目标服务器上创建和源数据库9i 数据文件,控制文件,redo文件相同的目录(两台数据库的数据文件的位置必须相同,否则就需要使用alter database rename file ‘原位置’ to ‘目标位置’)
2、由关闭源数据库9i,拷贝9i的数据文件,控制文件,redo文件,密码文件,初始化参数文件,spfile 文件等,到目标数据库10g相应的位置。
3、根据实际情况修改listener.ora tnsnames.ora 中的相关参数
4、用sys用户登录后以UPGRADE方式启动数据库,否则会报告错误。
5、创建sysaux表空间,段,区都是本地管理,因为在9i中没有SYSAUX这个表空间,在以UPGRADE方式启动数据库后需要创建一个大小为100M的表空间,否则在执行升级脚本的时候会报告错误。并提示创建sysaux表空间,给出创建语句,按照执行就可以了
6、执行catupgrd.sql 升级脚本大约40分钟左右,无需人工干预,直到执行完成即可
如图:
7、执行完成以后,关闭数据库,再使用正常模式启动数据库.
8、再运行一下utlrp.sql这个脚本来重新编译一下一些无效的对象
9、完成升级
10、
两个库的DBID是一样的。
此种方法相对来说比较安全,只是需要将源数据库关闭一段时间,直至拷贝完成,即可启动继续运行,适合数据量较大的情况
本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/786184
,如需转载请自行联系原作者