zoukankan      html  css  js  c++  java
  • Oracle DG故障诊断一则:alter database recover to logical standby new_logical_dbname卡住

    我们在基于物理standby的基础上搭建逻辑备库过程过程中,在运行:

    alter database recover to logical standby READDB;

    卡住不动,而且alert也没有报错信息,无比郁闷,咨询了别人,聊天记录例如以下:


    我们的业务是passport应用,无法停止或者停掉很麻烦,总之,药不能停。

    经过摸索,我们得到一个经验:须要等到MRP应用日志到跟主库一致,此时运行该命令才不会hang住。


    详细流程大概是这种:

    1. 开启实时日志应用

    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION
        在这个过程中,我们能够边查看日志应用情况,在备库运行例如以下命令:

    SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

        直到主备日志一致,推断SQL例如以下:

         在主库运行:

    archive log list

         在备库运行:

    select max(sequence#) from v$archived_log;

         依据这2个值就可以推断日志是否一致


    2. 接着,我们须要在备库停掉MRP进程:

    alter database recover managed standby database cancel;

        注意,此时假设报错,例如以下所看到的,能够不必在意,由于我们主备日志已经一致,MRP能够为idle

    ERROR at line 1:
    ORA-16136: Managed Standby Recovery not active

    3. 然后,我们能够在主库生成数据字典

    exec dbms_logstdby.build;

      我们须要让数据字典传输到备库,因此我们还须要却下日志:

    alter system archive log current;

    4. 最后,大功告成 :-)

    alter database recover to logical standby READDB;


    Good Luck!


  • 相关阅读:
    Arrow-一个最好用的日期时间Python处理库
    悲观锁与乐观锁
    python中super的使用
    jquery的html,text,val
    spring与mybatis三种整合方法
    Android 在线SDK更新 和谐被墙解决
    转【】浅谈sql中的in与not in,exists与not exists的区别_
    tableview 里面的 必须配套使用的方法
    IOS发送Email的两种方法-备
    iOS基本的发短信和打电话调用
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4554593.html
Copyright © 2011-2022 走看看