zoukankan      html  css  js  c++  java
  • [Oracle工程师手记] 因为意外发生 failover 之后,如何尽量地重用原来的主库

         有的时候,我们在Data Guard 环境中,因为某种意外(例如 主库的电源设备损坏)导致主库一时之间无法工作,只好把备库 failover ,改变角色,变成主库。事后,老的主库的硬件问题得到修正,它的数据也没有丢失,我们可能不想再折腾一番,用老主库的硬件重新作一套备库。而是希望,直接把它变成备库。

     如何作呢? 如果有幸设置了数据库的 flashback 有效,那么可以借助于 flashback 功能,来快速将主库转变为备库。下面是具体的步骤:

     首先,需要找到旧的备库,变成新的主库时的 SCN:

    select standby_became_primary_scn from v$database;
    

     比如,得到的 SCN 是: 1622177。

    然后,重启动老主库到 mount 状态,再 flashback 到这个 SCN值:

    shu immediate
    startup mount
    
    flashback database to scn <SCN>; <<<<< 用查询得到的 SCN。
    

     接下来,把老主库,变成新的备库:

    alter database convert to physical standby;
    

     如果新主库和新备库之间可以连通,新主库的 log_archive_dest_n (例如 :2) 已经指向 新备库。新主库和新备库的 fal_server 都已经配置指向了对方,那么就可以开始从 新的主库向新备库传递 REDO,进行同步了。

    recover managed standby database disconnect;
    

     而且,一般情况下,往往老的主库的硬件配置会比老的备库的硬件配置高很多,所以,上述的新主库和新备库可以正常同步后,我们也可以在他们之间进行 switchover ,使得老的主库再次变回主库。

  • 相关阅读:
    Hadoop HDFS的Shell操作实例
    我来阿里的2年
    设计模式之迪米特原则(LoD)
    设计模式之接口隔离原则
    设计模式之依赖倒置原则
    设计模式之里氏替换原则(LSP)
    设计模式之单一职责原则(SRP)
    Android开发系列之性能优化
    Android开发系列之屏幕密度和单位转换
    Android开发系列之ListView
  • 原文地址:https://www.cnblogs.com/gaojian/p/14637912.html
Copyright © 2011-2022 走看看