美文网首页
Oracle11.2.0.3升级至11.2.0.4

Oracle11.2.0.3升级至11.2.0.4

作者: Reiko士兵 | 来源:发表于2019-05-23 19:05 被阅读0次
    一、安装图形界面
    yum search tiger   #搜索安装vnc服务器
    yum grouplist   #显示可用group列表
    yum -y groupinstall desktop
    
    二、升级grid
    1. 图形界面升级grid,在启动安装软件后第二步installation option选择“Upgrade Oracle Grid Infrastructure or Oracle Automatic Storage Management”。第七步installation location的software location选择新建的11.2.0.4的GI目录/oracle/grid/11.2.0.4
    2. 修改grid用户下的.bash_profile文件,将ORACLE_HOME环境变量修改为新的ORACLE_HOME
    三、db升级前准备
    1. 将11.2.0.4的db软件安装至新目录,注意是安装软件,不是升级
    2. 收集字典信息
    exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS();
    exec DBMS_STATS.GATHER_DICTIONARY_STATS(ESTIMATE_PERCENT=>100,METHOD_OPT=>'FOR ALL COLUMNS SIZE AUTO',DEGREE=>8,GRANULARITY=>'AUTO',CASCADE=>TRUE,OPTIONS=>'GATHER AUTO'); 
    
    1. 11.2.0.3数据库pre-upgrade 脚本检查
    SQL> SPOOL upgrade_info.log
    SQL> @$11204_ORACLE_HOME/rdbms/admin/utlu112i.sql(新的oracle home下的脚本)
    SQL> SPOOL OFF
    
    1. 一些数据库信息查询
    -- 1. 物化视图刷新完成
    SELECT *
    FROM   sys.obj$ o,
           sys.user$ u,
           sys.sum$ s
    WHERE  o.type# = 42
           AND Bitand(s.mflags, 8) = 8;
    -- 2. 无待恢复文件
    SELECT *
    FROM   v$recover_file;
    -- 3. 无备份状态文件
    SELECT *
    FROM   v$backup
    WHERE  status != 'NOT ACTIVE';
    --4. 未完成分布式事务
    SELECT *
    FROM   dba_2pc_pending;
    -- 若有输出
    SELECT local_tran_id
    FROM   dba_2pc_pending;
    EXECUTE dbms_transaction.purge_lost_db_entry('&local_tran_id');
    commit;
    
    1. 清除并关闭recyclebin
    PURGE dba_recyclebin;
    Alter system set recyclebin=off;
    
    1. 修改cluster_database参数
    Alter system set CLUSTER_DATABASE=false scope=spfile;
    
    四、手工升级db
    1. 停库
    shutdown immediate
    
    1. 检查环境变量
      检查ORACLE_SID,ORACLE_HOME,PATH等环境变量是否设置为新库
    2. copy11.2.0.3数据库参数文件和密码文件至11.2.0.4数据库,执行升级
    SQL> Startup upgrade
    SQL> SPOOL upgrade.log
    SQL>@$ORACLE_HOME/rdbms/admin/catupgrd.sql
    
    1. 重新启动数据库,执行其他步骤
    Startup
    -- 查询升级信息
    @$ORACLE_HOME/rdbms/admin/utlu112s.sql
    -- 执行其他升级步骤
    @$ORACLE_HOME/rdbms/admin/catuppst.sql
    -- 编译失效对象
    Alter system set job_queue_processes=60;
    @?/rdbms/admin/utlrp.sql
    
    五、升级后步骤
    1. 设置相关参数
     Alter system set COMPATIBLE='11.2.0.4' scope=spfile;
     Alter system set CLUSTER_DATABASE=true scope=spfile; --单节点不要设置此参数
     Shutdown immediate
     Startup
    
    1. 执行psu post
    @?/rdbms/admin/catbundle.sql psu apply
    
    1. 收集全库统计信息
    begin
      dbms_stats.gather_database_stats(estimate_percent => dbms_stats.auto_sample_size,
                                       degree           => 8,
                                       method_opt       => 'for all columns size auto',
                                       cascade          => True);
    end;
    /
    exit;
    
    六、问题总结
    1. 如果是非RAC环境升级,升级后不要设置CLUSTER_DATABASE=true
    2. 检查监听服务是否都正确拉起来了
    #检查命令
    crsctl status resource -t
    #如果有资源未拉起,执行以下步骤
    srvctl upgrade database -d db_name -o $ORACLE_HOME
    shutdown immediate
    startup
    
    1. 单节点升级后有未注册组件
    --查询代码
    SET linesize 200
    
    SELECT *
    FROM   dba_registry
    WHERE  status <> 'VALID';
    

    若以上查询代码有输出,执行以下步骤

    1. shell中执行
    cd $ORACLE_HOME/bin
    ./adapters ./oracle
    2. 进数据库编译失效对象
    @?/rdbms/admin/utlrp.sql
    3. 编译数据库程序文件
    cd $ORACLE_HOME/rdbms/lib
    make -f ins_rdbms.mk rac_on ioracle
    
    1. 升级备库
      先升级GI,然后安装db程序,db程序安装好后停11.2.0.3的库,以
    startup upgrade
    

    方式打开11.2.0.4数据库,应用11.2.0.3的归档日志,11.2.0.3的归档日志应用完毕后,应用11.2.0.4归档日志会报错,此时,执行

     Alter system set COMPATIBLE='11.2.0.4' scope=spfile;
    

    重启数据库,即可正常应用11.2.0.4的归档日志

    相关文章

      网友评论

          本文标题:Oracle11.2.0.3升级至11.2.0.4

          本文链接:https://www.haomeiwen.com/subject/xjahzqtx.html