zoukankan      html  css  js  c++  java
  • Oracle Data Guard Switchover 切换

    昨天总部巡检,要求对Oracle  Data Guard 做一个switchover的切换演示。 以前都是在虚拟机上做这种切换的,没有在生产库上做过。所以还是有些紧张。不过做DBA 一定要给自己留一条后路: 备份。 先shutdown,做冷备,在逻辑备份,加上之前的RMAN。 即使切换失败,还有备份可用心里也就有底了。

    照着文档做,切换还是比较顺利的。但是在改IP的时候还是有点小插曲,在这里浪费了点时间。因为之前在虚拟机上没有改过IP。 但是在生产环境上,肯定是要改主备库IP的。 不管怎样。总算折腾完了。 

    三点多同事送我回去的,洗个澡就睡了,早上9点多就起来了。 上班前室友和我说你太幸苦了。 回: This is Job。 

    其他的一些知识参考如下连接:

    Oracle Data Guard Linux 平台 Physical Standby 搭建实例

    http://blog.csdn.net/tianlesoftware/archive/2010/04/30/5547565.aspx

    Oracle Data Guard 理论知识

    http://blog.csdn.net/tianlesoftware/archive/2010/04/22/5514082.aspx

    在 Physical Standby 搭建实例 这片文章的最后对switchoverfailover的切换都做了说明,不过这里面没有涉及到服务器IP的修改。 我们前台应用都是和IP地址关联的,如果不改服务器的IP,就要修改应用的IP,如果应用很多的话,改起来还是比较麻烦的。

    修改IP地址情况下的switchover  步骤如下:

    一. 查看主库switchover 状态 

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    TO STANDBY

    附: A:switchover_status出现session active/not allowed 

     当出现session active的时候表示还有活动的session,则运行 

     Alter database commit to switchover to physical standby with session shutdown; 

          当出现not allowed时,在官方文档说转换会不成功,但是我测试的时候成功了。 

         B.ora- 01153: an incompatible media recovery is active 

            运行下面代码 

            Alter database recover managed standby database finish; 

            或者Alter database recover managed standby database finish force; 

            Alter database recover managed standby database disconnect from session; 

     

    二. 将主库切换成备库

    SQL>Alter database commit to switchover to physical standby with session shutdown; 

    或者

    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; 

     

    三. 关闭主库

    SQL> SHUTDOWN IMMEDIATE 

     

    四. 查看备库 switchover 状态

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; 

        TO PRIMARY 

    附:若不是用此语句切换:

    ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown 

    补充:若出现:ORA-16139: media recovery required

    是因为没有执行:alter database recover managed standby database disconnect from session; 

     

    五. 将备库切换成主库,然后关闭

    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; 

    Database altered. 

    SQL> shutdown immediate; 

     

    六. 更改服务器IP地址

    这个可以用xmanager 连过去,在界面上改,也可以直接用命令来修改。

    vi /etc/sysconfig/network-scripts/ifcfg-eth0
        service network restart

    Linux 修改 IP地址 和 网关

    http://blog.csdn.net/tianlesoftware/archive/2010/02/20/5312646.aspx

     

    七. 启动备库。 这里的启动顺序不能错,先启动备库,在启动主库,不然主库识别不了备库。

    SQL> startup nomount; 

    SQL> alter database mount standby database; 

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 

     

    八.  启动主库

    SQL> startup; 

    SQL> alter system switch logfile; 

     

    九. 在主库查看log_archive_dest 参数的状态,是否有效。

    因为这里与监听和启动顺序有关,如果值为error,则归档不能传送到备库。 

    SQL>select status,database_mode from v$archive_dest_status; 

    Status状态为valid即可。 如果有错误,一般都是启动顺序和监听问题。 如果启动顺序没有问题,那么就把主库重新启动一下。

     

    十. 验证同步状态

    在主库运行:

    SQL>alter system switch logfile;

        然后在主备库分别运行:select sequence#,applied from v$archived_log; 

    确保applied都为YES。 

    如果用:select max(sequence#) from v$archived_log; 

    查看,如果主备库显示的一致,则只能表明归档已经传送到了备库,并不能表明该归档已经应用。 而applied 状态为YES,就表明该归档已经应用到了备库。

    如果等了很长时间applied 都无法应用,可以尝试一下方法:

    alter database recover managed standby database cancel; 

    alter database recover managed standby database disconnect from session; 

    2个语句是取消recover manager,在启动它。 

      通过以上十步,switchover 切换完成。 

     

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

    Blog: http://blog.csdn.net/tianlesoftware 

    网上资源: http://tianlesoftware.download.csdn.net 

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 

    DBA1 群:62697716(); DBA2 群:62697977

    DBA3 群:63306533;     聊天 群:40132017

     

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    阅读任务
    自我介绍
    学习总结
    第十二周课程总结
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第四周课程总结&实验报告
    第3周Java编程总结
    学习总结
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3610063.html
Copyright © 2011-2022 走看看