• oracle 10g滚动升级到11g


    1、准备工作

    搭建物理standby

    转换为逻辑standby

     2、在备库上安装oracle11g软件,升级standby

    参考oracle10g升级到oracle11g

     这里比上文多出现了一个警告

    WARNING: --> Sync standby database prior to upgrade.   

    由于standby是备份恢复出来的,需要/etc/oratab增加(否则升级时找不到要升级的数据库):

    std:/usr/oracle/product/10.2.0:N

     升级完之后,开始sql apply,一定要确定日志同步没问题,再开始下一步操作。

     备份参数文件:

    create pfile from spfile;

     3、切换standby,11.2.0.4切换为主库,10.2.0.4切换为备库

    参考oracle 10g dataguard 测试

     注意:升级后备库需要开始应用日志

    SQL> alter database start logical standby apply;
    
    Database altered.

    然后再开始切换

    问题:

    1、准备切换报错

    SQL> alter database prepare to switchover to primary;
    alter database prepare to switchover to primary
    *
    ERROR at line 1:
    ORA-00258: NOARCHIVELOG 模式下的手动归档必须标识日志

    搭建oracle11g时未进行归档,修改归档模式

    2、修改归档模式

    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount;
    ORA-00119: invalid specification for system parameter LOCAL_LISTENER
    ORA-00132: syntax error or unresolved network name 'LISTENER_STD'

    监听的参数不对。。。。。

    修改参数文件设置静态监听,启动又报错

    SQL> startup
    ORACLE instance started.
    
    Total System Global Area  626327552 bytes
    Fixed Size                  2255832 bytes
    Variable Size             230687784 bytes
    Database Buffers          390070272 bytes
    Redo Buffers                3313664 bytes
    ORA-00205  控制文件不对

     查看参数文件,发现控制文件目录还是原来的10gstandby的控制文件目录,修改目录启动没问题了。不过11g的参数和10g的参数有所改动,纠结要不要重新开始呢,到这才发现参数文件备份也很重要啊,否则这都得手工去改,先改改试试,看能对不。

     改完之后启动正常,日志应用也没问题。

    3、standbyredo日志文件需要重建么,之前建的有,升级之后消失了

    重新创建3个standby redo文件

    SQL> alter database add standby logfile group 4 '/u01/oracle/oradata/STD//standbyredo4.log' size 50m;
    SQL> alter database add standby logfile group 5 '/u01/oracle/oradata/STD//standbyredo5.log' size 50m;
    SQL> alter database add standby logfile group 6 '/u01/oracle/oradata/STD//standbyredo6.log' size 50m;

     4、归档路径状态error

    由于升级之后没有创建tnsname.ora,从原来的10g中copy一份,依然报错

    SQL> select DEST_NAME,status,error from v$archive_dest;
    
    DEST_NAME            STATUS               ERROR
    -------------------- -------------------- --------------------
    LOG_ARCHIVE_DEST_1   VALID
    LOG_ARCHIVE_DEST_2   ERROR                ORA-12154: TNS:
                                              无法解析指定的连接标
                                              识符

    重启数据库试试,是不是数据库启动之后,修改tnsname.ora,归档路径并不认识?

    重启后正常。

     5、切换成功了

    目前是主库是11g,备库是10g

    实际上可以直接failover,因为还得重新搭建物理standby。

    先逻辑standby跑一段时间看看。

    日志传输没有问题,但是应用有问题:

    Errors in file /usr/oracle/admin/test/bdump/test_p001_6635.trc:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00904: "HASHCODE": invalid identifier
    LOGSTDBY status: ORA-00904: "HASHCODE": invalid identifier
    Tue Mar 29 11:21:47 2016
    <krvrd.c:krvrdfdm>: Dict mine error exit. Log stream scan failed.  flags 80, last_slave_error 904
    LOGSTDBY status: ORA-01333: failed to establish Logminer Dictionary
    ORA-01304: subordinate process error.  Check alert and trace logs
    ORA-00904: : invalid identifier

    trc文件内容:

    Instance name: test
    Redo thread mounted by this instance: 1
    Oracle process number: 24
    Unix process pid: 6635, image: oracle@oracle81 (P001)
    
    *** SERVICE NAME:(SYS$BACKGROUND) 2016-03-29 11:21:46.591
    *** SESSION ID:(143.1) 2016-03-29 11:21:46.591
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00904: "HASHCODE": invalid identifier
    *** 2016-03-29 11:21:55.176
    *** SERVICE NAME:(SYS$BACKGROUND) 2016-03-29 11:21:55.176
    *** SESSION ID:(141.2) 2016-03-29 11:21:55.176
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00904: "HASHCODE": invalid identifier

    oracle11g传过来的日志,10g并不能应用,这是什么问题呢?

    原想着,都能跑的话,如果11g有bug不能解决,还可以临时重新切换回来,看来是不靠谱了。待解决中。。。。。



  • 相关阅读:
    java面试准备之基础排序——冒泡与选择排序
    PL/SQL 存储过程
    浅析Java中CountDownLatch用法
    tmux分屏幕
    two's complement
    angularJs中$controller的使用
    nodejs pipe实现大文件拷贝
    不错的网站
    echarts文档对照
    nodejs 项目的session验证
  • 原文地址:https://www.cnblogs.com/huanhuanang/p/5310512.html
Copyright © 2020-2023  润新知