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

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

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

在 Physical Standby 搭建实例 这片文章的最后对switchover和failover的切换都做了说明,不过这里面没有涉及到服务器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

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

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 切换完成。

dataguard如何实现切换_ORACLE dataguard 切换相关推荐

  1. dataguard如何实现切换_Oracle dataguard切换实施步骤

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

  2. Oracle dataguard 正常切换和应急切换

    Oracle dataguard 正常切换和应急切换 oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换 ...

  3. 【DATAGUARD】物理dg的switchover切换(五)

    [DATAGUARD]物理dg的switchover切换(五) [DATAGUARD]物理dg的switchover切换(五) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各 ...

  4. 【DATAGUARD】物理dg的failover切换(六)

    [DATAGUARD]物理dg的failover切换(六) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你 ...

  5. php 实现tab切换_微信小程序实例:实现顶部tab切换以及滑动切换时导航栏会随着移动的效果(代码)...

    本篇文章给大家带来的内容是关于微信小程序实例:实现顶部tab切换以及滑动切换时导航栏会随着移动的效果(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 实现的效果: js: Pa ...

  6. 根据端口不同来切换站点_KVM切换器是什么,看懂这一篇就够

    在服务器机房的机架不便于存放多个显示器和键盘的空间里,KVM切换器起着重要的作用.KVM切换器能从本地或远程监视与控制多个计算机与服务器,由键盘.鼠标和显示屏组成的KVM控制台是最方便和经济的理想解决 ...

  7. 7.Windows线程切换_时钟中断切换

    绝大部分系统内核函数都会调用SwapContext函数,来实现线程的切换,那么这种切换是线程主动调用的. 如何中断一个正在执行的程序? 异常 比如缺页,或者INT N指令 中断 比如时钟中断 系统时钟 ...

  8. 6.windows线程切换_主动切换

    ida 分析KiSwapThread sub esp, 10h mov [esp+10h+var_4], ebx ;保存当前线程寄存器现场 mov [esp+10h+var_8], esi mov [ ...

  9. 软切换、硬切换,垂直切换、水平切换

    1.软切换 (1)软切换是"先切换,后断开",移动节点只有在取得了与新基站的链接之后,才会中断与原基站的联系,因此在切换过程中没有中断,不会影响通话质量: (2)软切换由于是在频率 ...

最新文章

  1. box-shadow属性四个值_重学前端:什么是盒子模型?标准盒子模型有哪些属性和尺寸计算?...
  2. 004_Icon图标
  3. Java的知识点33——JDBC
  4. jzoj4231-寻找神格【线段树,数学】
  5. Angular ngTemplateOutlet
  6. leetcode 1154 一年中的第几天
  7. 【万里征程——Windows App开发】使用华丽丽的字体
  8. CentOS随笔 - 4.CentOS7安装MySql 5.5.60(下载 tar 方式安装)
  9. SRE(运维工程师)的核心能力
  10. Android 在后台无法启动Activity
  11. win7浏览器主页修改不过来_win7无法修改ie浏览器主页的解决方法
  12. opencv c++实现棋盘格标定
  13. java如何虚拟ip_Linux建立虚拟ip的方法
  14. Galera-MariaDB多主集群搭建
  15. 植物大战僵尸之加钱外挂..
  16. maven安装及环境部署(IDEA)
  17. day13-web前端之JS与JQuery
  18. 抖音商家引流的正确方法,抖音商家引流脚本实操教程。
  19. vue中引入jquery方法 或 $ is not defined错误解决方法
  20. GSM AT 判断电话是否接通

热门文章

  1. linux入门 适合初学者_听说 C++ Primer-不适合初学者入门!元芳,你怎么看呢?
  2. linux内核动画,8个炫酷的HTML5动画、应用和游戏
  3. cc1 transform链
  4. 29 顺时针打印矩阵(四-画图让抽象问题形象化)
  5. 损失函数与代价函数区别
  6. 多线程上下文切换优化与注意
  7. 本机tomcat的server.xml被还原的问题及解决办法
  8. 最大公约数与最小公倍数问题
  9. php 事务回滚,php实现事务回滚的方法
  10. Android报错:FAILED:_nl_intern_locale_data: ?? ‘cnt < (sizeof (_nl_value_type_LC_TIME)