今天安装Oracle10.2.0.4碰到的错误。新机器先安装10.2.0.1,安装完后先创建数据库后再升级到10.2.0.4.升级过程都没问题,可是在启动数据库就报错。


错误如下ORA-01092: ORACLE instance terminated.Disconnection forced


解决方法:

Solution

To implement the solution, please execute the following steps:

1. Perform restore and recovery.

2. Open the database with resetlogs:
SQL> alter database open resetlogs;
NOTE: this will fail with ORA-1092. The alert.log will show the ORA-39700: database must be
opened with UPGRADE option error.

3. Open the database with upgrade option:
SQL> startup upgrade;
NOTE: due to the ORA-1092, the current sqlplus session must be exited and new connection made.

4. Perform necessary upgrade steps.
##############################################################
SQL> !oerr ora 39700
39700, 00000, "database must be opened with UPGRADE option"
// *Cause:  A normal database open was attempted, but the database has not
//          been upgraded to the current server version.
// *Action: Use the UPGRADE option when opening the database to run
//          catupgrd.sql (for database upgrade), or to run catalog.sql
//          and catproc.sql (after initial database creation).
####################################################################
SQL>@/opt/oracle/product/10.2.0/db_1/rdbms/admin/catupgrd.sql
SQL>@/opt/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql
SQL>@/opt/oracle/product/10.2.0/db_1/rdbms/admin/catproc.sql


5. Once upgrade steps are complete, shutdown and open the database:
SQL> shutdown immediate;
SQL> startup

NOTE: any attempts to recover after the upgrade steps (especially with ''using backup
controlfile'') will result in error. In addition, there is no need to use the RESETLOGS option
upon open. The key here is after the upgrade, the database should be opened with STARTUP.
Instance recovery and the fact that the controlfile is now CURRENT, will allow Oracle to apply the
necessary information in the online redo log files and startup the database.