最近开始的项目使用的数据库升级了,旧系统是9i新新系统采用10g。
新系统初期需要从旧系统中导入数据,这几天一直在查找相关资料。
遇到的问题:
1. 旧系统24*7运行,新系统运行前,不能常时间停止服务。
2. 数据量大,至少有xxxGB的数据,甚至可能到TB。
Oracle官方推荐了4种升级方式:
The following sections describe the upgrade methods you can use to upgrade your database to the new Oracle Database 10g release:
第一种是用DBUA工具,优点是升级速度快,缺点是一旦升级失败,会造成原有数据库不可用,风险很大。
第二种没有仔细研究,和第一种方法类似。
第三种用EXP、IMP来导数据,好处很多,但是数据量巨大的时候,无法接受等待时间,时间风险很大。
第四种使用db link直接copy数据,要求网络直接对接。
以上四种方法各有优缺点,最后在oracle官方的案例里面看到Amadeus的方案:
Using TTS for Fast Database Upgrades with Minimal Downtime (PDF)
用Transportable Tablespace来copy数据,TTS只有在copy所谓metadata的时候会比较费时间,其他数据的
copy都是和文件传输速度差不多。
另外一个文档也可以参考一下,文档中说downtime只有10分钟左右,真是做的很棒!