1 旧服务器 windows 2008 R2 DB oracle 11.2.0.1.0 2 新服务器 windows 2008 R2 DB: oracle 11.2.0.4.0 3 需求,要把旧服务器数据迁移到新服务器,旧数据库数据量不大,方案1 exp/expdp 按用户导出再导入,比较麻烦 方案2 考虑rman备份恢复,版本不同好像不能恢复(待验证) 方案3 旧服务器关库,拷贝参数文件,数据文件,控制文件,redo文件,临时文件到新服务器,为了方便路径设置一样 这样 软件相当于已经升级了,然后在升级库,旧可以了 4 按方案3升级, dbua或者脚本方式(dbua方式不行) 4.1 以upgrade 方式启动数据库 set ORACLE_SID=jhmetsqlplus / as sysdbastartup upgrade pfile='E:\jhmetpfile.ora';spool upgrade.log SQL> @$ORACLE_HOME/rdbms/admin /catupgrd.sql; SQL> spool off SQL> Shutdown immediate
$ sqlplus "/as sysdba" SQL> STARTUP SQL> @utlu112s.sql 运行 $ORACLE_HOME/rdbms/admin 目录下的 catuppst.sql,完成不需要在数据库处于 UPGRADE 模式下操作的其它升级的动作:
SQL> @catuppst.sql 这个脚本可以和 utlrp.sql 并行运行. 在另一个 session 里运行 utlrp.sql 来重新编译剩下的 PL/SQL 和 Java代码:
SQL> @utlrp.sql 运行从下面文档中得到的 dbupgdiag.sql 来检查升级后数据库的完整性。
Note 556610.1 Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql) 如果 dbupgdiag.sql 发现了一些失效对象,那么多次执行 $ORACLE_HOME/rdbms/admin/utlrp.sql 来重新编译这些失效对象,直到失效对象的数目不再变化。 在重新编译这些失效对象之后,再次运行 dbupgdiag.sql 确认一切都是正常的。
升级后步骤
