IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]ORACLE11.2.0.4 版本升级ORA-39700: database must be opened with UPGRADE option问题解决记录

    mchdba发表于 2017-03-16 21:06:05
    love 0

     

    1,迁移报错记录

    升级迁移报错记录,将所有的rman操作顺利执行,参考以前的博客文章:http://blog.csdn.net/mchdba/article/details/61624015,但是在open数据库的时候报错,如下所示:

    SQL>  alter database open resetlogs;

     alter database open resetlogs

    *

    ERROR at line 1:

    ORA-01139: RESETLOGS option only valid after an incomplete database recovery

     

     

    SQL>  alter database open ;

     alter database open

    *

    ERROR at line 1:

    ORA-01092: ORACLE instance terminated. Disconnection forced

    ORA-00704: bootstrap process failure

    ORA-39700: database must be opened with UPGRADE option

    Process ID: 31488

    Session ID: 1886 Serial number: 19

     

     

     

    2,报错原因分析

    Rman备份是11.2.0.1,所以在恢复的过程中,全备会将一些基础信息表以及系统信息表都恢复成11.2.0.1的信息,所以在恢复recover完打开数据库,就和现有版本11.2.0.4冲突了,而没法open database。

     

    所以需要执行一些脚本,保证基础sys的信息和11.2.0.4同步,大概步骤如下:

    (1)特殊方式启动

    SQL> startup upgrade;

     

    (2)查看预升级信息

    SQL> @$ORACLE_HOME/rdbms/admin/utlu112i.sql

     

    (3)执行升级脚本

    SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql       1小时左右

    startup

    SQL> @$ORACLE_HOME/rdbms/admin/utlu112s.sql

    SQL> @$ORACLE_HOME/rdbms/admin/catuppst.sql

    SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

     

    SQL>  ALTER SYSTEM SET CLUSTER_DATABASE=true SCOPE=SPFILE;

     

    (4)重启数据库

    SQL> shutdown immediate;

    ORA-01109: database not open

    Database dismounted.

    ORACLE instance shut down.

    SQL> startup;

     

    3,执行升级脚本

    需要执行升级脚本:$ORACLE_HOME\rdbms\admin\catupgrd.sql;

    SQL> $ORACLE_HOME\rdbms\admin\catupgrd.sql;

    SP2-0734: unknown command beginning "$ORACLE_HO..." - rest of line ignored.

    SQL> exit

    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    [oracle@pldb2 oracle]$ rlwrap sqlplus / as sysdba

     

     

    SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 16 14:08:48 2017

     

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.

     

    Connected to an idle instance.

     

    SQL> startup upgrade;

    ORACLE instance started.

     

    Total System Global Area 6.6141E+10 bytes

    Fixed Size              2269672 bytes

    Variable Size              7381978648 bytes

    Database Buffers    5.8653E+10 bytes

    Redo Buffers               103772160 bytes

    Database mounted.

    Database opened.

    SQL> @$ORACLE_HOME\rdbms\admin\catupgrd.sql;

    SP2-0310: unable to open file "$ORACLE_HOME\rdbms\admin\catupgrd.sql"

    SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql;

     

    TIMESTAMP

    --------------------------------------------------------------------------------

    COMP_TIMESTAMP UTLRP_BGN  2017-03-16 14:09:40

     

    DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid

    DOC>   objects in the database. Recompilation time is proportional to the

    DOC>   number of invalid objects in the database, so this command may take

    DOC>   a long time to execute on a database with a large number of invalid

    DOC>   objects.

    DOC>

    DOC>   Use the following queries to track recompilation progress:

    DOC>

    DOC>   1. Query returning the number of invalid objects remaining. This

    DOC>          number should decrease with time.

    DOC>             SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);

    DOC>

    DOC>   2. Query returning the number of objects compiled so far. This number

    DOC>          should increase with time.

    DOC>             SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;

    DOC>

    DOC>   This script automatically chooses serial or parallel recompilation

    DOC>   based on the number of CPUs available (parameter cpu_count) multiplied

    DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).

    DOC>   On RAC, this number is added across all RAC nodes.

    DOC>

    DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel

    DOC>   recompilation. Jobs are created without instance affinity so that they

    DOC>   can migrate across RAC nodes. Use the following queries to verify

    DOC>   whether UTL_RECOMP jobs are being created and run correctly:

    DOC>

    DOC>   1. Query showing jobs created by UTL_RECOMP

    DOC>             SELECT job_name FROM dba_scheduler_jobs

    DOC>                 WHERE job_name like 'UTL_RECOMP_SLAVE_%';

    DOC>

    DOC>   2. Query showing UTL_RECOMP jobs that are running

    DOC>             SELECT job_name FROM dba_scheduler_running_jobs

    DOC>                 WHERE job_name like 'UTL_RECOMP_SLAVE_%';

    DOC>#

    DECLARE

    *

    ERROR at line 1:

    ORA-04063: package body "SYS.DBMS_SQLTUNE" has errors

    ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_SQLTUNE"

    ORA-06512: at "SYS.UTL_RECOMP", line 783

    ORA-06512: at line 4

     

     

     

    TIMESTAMP

    --------------------------------------------------------------------------------

    COMP_TIMESTAMP UTLRP_END  2017-03-16 14:09:42

     

    DOC> The following query reports the number of objects that have compiled

    DOC> with errors.

    DOC>

    DOC> If the number is higher than expected, please examine the error

    DOC> messages reported with each object (using SHOW ERRORS) to see if they

    DOC> point to system misconfiguration or resource constraints that must be

    DOC> fixed before attempting to recompile these objects.

    DOC>#

     

    OBJECTS WITH ERRORS

    -------------------

                         0

     

    DOC> The following query reports the number of errors caught during

    DOC> recompilation. If this number is non-zero, please query the error

    DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors

    DOC> are due to misconfiguration or resource constraints that must be

    DOC> fixed before objects can compile successfully.

    DOC>#

     

    ERRORS DURING RECOMPILATION

    ---------------------------

                                  0

     

     

    Function created.

     

     

    PL/SQL procedure successfully completed.

     

     

    Function dropped.

     

     

    PL/SQL procedure successfully completed.

     

    SQL>

     

     

     

    重启数据库:

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    ORACLE instance shut down.

    SQL>

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    ORACLE instance shut down.

    SQL> startup

    ORACLE instance started.

     

    Total System Global Area 6.6141E+10 bytes

    Fixed Size              2269672 bytes

    Variable Size              7381978648 bytes

    Database Buffers    5.8653E+10 bytes

    Redo Buffers               103772160 bytes

    Database mounted.

    Database opened.

    SQL>

     

     



沪ICP备19023445号-2号
友情链接