zoukankan      html  css  js  c++  java
  • Oracle dataguard切换实施步骤

    Oracle dataguard切换实施步骤
    主备库的切换主要在两种情况下切换,Switchover和Failover,这两种切换都需要手工执行完成,不建议自动执行。
    主库端 192.168.411.20
    备库端 192.168.411.221

    一是Switchover(计划中的切换,不会丢失数据)
    二是Failover(当主库出现故障的时候需要主备库切换角色)

    特别注意:
    1、备份:无论哪种切换都要先全备一次,以备不测
    2、部分命令执行时间长短不一,最好让它自己执行完,注意观察主备日志是否有异常

    1、【Switchover】
    主库
    col OPEN_MODE for a30
    col PROTECTION_MODE for a30
    col PROTECTION_LEVEL for a30
    col SWITCHOVER_STATUS for a30
    SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS ,database_role from v$database;
    READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY PRIMARY

    看还有没其他session,
    SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL;
    1

    在切换前,杀掉所有的数据库连接 观察SWITCHOVER_STATUS,如果是 TO STANDBY,则可以直接切换。如果SESSIONS ACTIVE ,则用
    如果是to standby表可以正常切换.
    直接执行alter database commit to switchover to physical standby;
    否则执行 alter database commit to switchover to physical standby with session shutdown;
    shutdown immediate;
    startup nomount;
    alter database mount standby database;
    alter database recover managed standby database disconnect from session;

    备库端
    select switchover_status from v$database;
    如果是to_primary表可以正常切换.
    执行 alter database commit to switchover to primary;
    否则执行 alter database commit to switchover to primary with session shutdown;
    shutdown immediate;
    startup;

    2、【Failover】
    (1)判断主数据库确实出现严重的硬件故障或其他原因导致主数据库无法启动。
    (2)在物理备用数据库上检查是否有archive redo log gaps
    SQL>SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

    (3)消除archive redo log gaps
    从主数据库上或其他备份的地方把没有传到物理备用数据库的archive redo log传到物理备用数据库上,并注册到物理备用数据库的controlfile中。
    SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'archive redo log文件名称';
    重复2,3步骤直到V$ARCHIVE_GAP视图无记录存在。

    (4)在物理备用数据库上发起failover操作
    SQL > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;

    (5)把物理备用数据库转化成主用角色
    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

    (6)把新的主用数据库重新启动
    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP;

    (7)对新的主用数据库做全备份.

  • 相关阅读:
    php发送邮件
    本地phpstudy集成环境中MYSQL在数据传输时报错- Unknown storage engine 'InnoDB'的解决办法
    一键分享到QQ空间、QQ好友、新浪微博、微信代码
    点分治_学习笔记+题目清单
    AtCoder Beginner Contest168-F (二维离散化)
    Codeforces 1354E(Graph Coloring,二分图+dp)
    Codeforces 832D(Misha, Grisha and Underground,LCA)
    Codeforces Round #643 (Div.2)
    Codeforces 909E(Coprocessor,双队列维护)
    Codeforces 949C(Data Center Maintenance,Tarjan缩点)
  • 原文地址:https://www.cnblogs.com/ritchy/p/11739529.html
Copyright © 2011-2022 走看看