zoukankan      html  css  js  c++  java
  • DG之主库、备库切换(物理备库)

    DG之主库、备库切换


    一.开库与关库顺序

    开库顺序

    先启备库,再启主库(启动监听、打开告警日志)

    关库顺序

    先关主库,再关备库

    二.主备库切换

    1、操作过程一览

    步骤1:启动备库、监听、告警;

    步骤2:启动主库、监听、告警;

    步骤3:主库(bj)查询信息

    SQL>selectname,dbid,database_role,protection_mode from v$database;




    步骤4:备库(sh)上做recover

    SQL>recovermanaged standby database disconnect from session;

    步骤5:备库上插入数据

    SQL>insert into scott.emp1 select * from scott.emp;

    报错



    尽管备库处于open状态,但它是一个read-only状态。

    步骤6:查看主库(bj)、备库(sh)日志是否一致

    SQL>selectmax(sequence#) from v$archived_log where name is not null;

    或SQL>selectmax(sequence#) from v$archived_log

    举例:

    主库:


    备库:


    上图表明已经归档的最大序列号均为34,说明日志是同步的,能够进行主备库切换。

    步骤7:主库(bj)下检查能否够切换

    SQL>selectname,database_role,protection_mode,switchover_status from v$database;

    switchover_status显示“TO STANDBY”表示同意做切换。


    步骤8:备库(sh)下检查能否够切换

    SQL>selectname,database_role,protection_mode,switchover_status from v$database;


    说明:备库是不同意主动去切成主库的,NOT ALLOWED状态说明正常。


    步骤9:检查主库(bj)上的会话

    SQL>select username,sid from v$session where username is notnull;




    查看是否仍实用户使用数据库,若仍有人使用,是不同意切换的,切换前要通知确保无用户使用。

    步骤10:主库(bj)变为物理备库(sh)

    若没有会话,将主库(bj)变为物理备库(sh)

    SQL> ALTER DATABASECOMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

    若有会话的话,关闭会话,将主库(bj)变为物理备库(sh)

    SQL>  alter database commit to switchover to physical standby withsession shutdown;

    步骤11:关闭、重新启动之前的主库(bj)到mount状态

    SQL> SHUTDOWN IMMEDIATE;

    SQL> STARTUP MOUNT;

    SQL> selectswitchover_status from v$database;

    SWITCHOVER_STATUS

    --------------------

    TO PRIMARY

     

    注:在这个时候,两个数据库都应该处于备库状态。

    步骤12:查证备库的转换状态

    SQL> SELECTSWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

    -----------------

    TO_PRIMARY ——能够转换为主库,说明是备库状态

     

    步骤13:将目标物理备库(sh)转换为主库

    SQL> ALTER DATABASECOMMIT TO SWITCHOVER TO PRIMARYWITHSESSION SHUTDOWN;

    步骤14:完毕备库(sh)到主库转换,物理备库启动到open

    若物理备库(bj)在近期一次启动时不是处于仅仅读模式 opened in read-only mode,直接将数据库打开,然后下一步。

    SQL> select status fromv$instance;

    STATUS

    ------------

    MOUNTED

    SQL> ALTER DATABASE OPEN;

    SQL> select switchover_statusfrom v$database;

    SWITCHOVER_STATUS

    --------------------

    TO STANDBY

    若物理备库(bj)在近期一次启动时是仅仅读模式,则先将数据库正常关闭再起库。

    SQL> SHUTDOWN IMMEDIATE;

    SQL> STARTUP;

    步骤15:在新备库(bj)上又一次开启日志应用

    SQL> ALTER DATABASERECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

    步骤16:在新的主库(sh)上切换日志,開始数据传输给备库

    SQL> ALTER SYSTEM SWITCHLOGFILE;

    SQL> /

    SQL> select max(sequence#)from  v$archived_log;

    MAX(SEQUENCE#)

    --------------

    56

    SQL> col name for a50;

    SQL> select  NAME ,SEQUENCE#  from v$archived_log; 查看归档日志

    步骤17:在备库(bj)上查看归档,两值相等说明备库能收到日志

    SQL> select max(sequence#)from  v$archived_log;

    MAX(SEQUENCE#)

    --------------

    56

     SQL> col name for a50;

    SQL> select  NAME ,SEQUENCE#  from v$archived_log;  查看归档日志

     

    2、总结主备库切换重点

     

    主库

    备库

    查询是否能切换(应该显示同意)

     

     

    备库查询是否能切换(应该显示不同意)

    切换为物理备库

     

    切换到mount状态

     

     

    查看备库转换状态

     

    转换为主库

     

    切换到mount状态

    启动到open

     

     

     

     

    启动到open状态

    开启日志应用

     

     

    切换日志

     

    查看归档序列号

    查看归档序列号

     

    查询状态:备库

    查询状态:主库

     

     

     

    ***********************************************声明************************************************ 

    原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。

    表述有错误之处,请您留言,不胜感激。

    提醒:点击文件夹,更有助于您的查看。

    *****************************************************************************************************
















































  • 相关阅读:
    洛谷 U141580 简化罗波切问题
    洛谷 U141578 维修电路
    洛谷 U140760 狭义公因子
    CF75C Modified GCD
    算法题-求解斐波那切数列的第N个数是几?
    算法题-求N的阶乘
    JAVA8新特性
    nginx启动脚本,手动编辑
    javah生成带有包名的头文件
    Matlab图像处理(03)-基本概念
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4083953.html
Copyright © 2011-2022 走看看