我已经将数据库从 Linux 下的 32 位 Oracle 11g 版本移至 64 位环境。然而,我在新环境(也是 Linux)中遇到了问题。
有没有方法将数据库升级到 64 位
有一件事我忘了提,数据库是从早期版本升级的,原始版本和升级版本都是 32 位。
答案1
如果您有足够的磁盘空间,最简单的做法是安装 Oracle 11g 64 位的新实例,导出 32 位数据,然后导入 64 位 Oracle。这还允许您同时运行两个实例,以验证两个实例是否相同且按预期运行。
答案2
基本上应该是:导出架构、升级、导入架构。你能详细说明一下你遇到的问题吗?
答案3
经过反复试验,我发现下面的方法解决了我遇到的大多数问题
#Shutdown and restart instance in upgrade mode.
Shutdown immediate;
Startup upgrade;
#now invalidate the existing packages
@$ORACLE_HOME/rdbms/admin/utlirp.sql
#As i have already patched the system to DST V10 i needed to do the following
@$ORACLE_HOME/rdbms/admin/utlu111i.sql
#now i started to convert/upgrade the database, i started with the upgrade catalog
# as it resolve a lot of issues i experienced.
@$ORACLE_HOME/rdbms/admin/catupgrd.sql
#Then the more standard catalog procs were applied.
@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql
#Finally, get all of the procs recompiled.
@$ORACLE_HOME/rdbms/admin/utlrp.sql
shutdown immediate;
startup;
#then check for any outstanding issues
select * from sys_objects where Status != 'VALID';
现在我确实有几个无效对象,但这些是特定于应用程序的并且相当容易解决。
我再也没有遇到任何与转换有关的问题。但是,如果此方法存在任何遗漏或其他问题,我将非常乐意听取您的意见。