ORACLE dataguard 切换

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:25

[backcolor=inherit]Oracle Data Guard Switchover 切换

[backcolor=inherit]昨天总部巡检,要求对Oracle Data Guard 做一个switchover的切换演示。 以前都是在虚拟机上做这种切换的,没有在生产库上做过。所以还是有些紧张。不过做DBA 一定要给自己留一条后路: 备份。 先shutdown,做冷备,在逻辑备份,加上之前的RMAN。 即使切换失败,还有备份可用心里也就有底了。[backcolor=inherit]照着文档做,切换还是比较顺利的。但是在改IP的时候还是有点小插曲,在这里浪费了点时间。因为之前在虚拟机上没有改过IP。 但是在生产环境上,肯定是要改主备库IP的。 不管怎样。总算折腾完了。 [backcolor=inherit]三点多同事送我回去的,洗个澡就睡了,早上9点多就起来了。 上班前室友和我说你太幸苦了。 回: This is Job。 [backcolor=inherit][color=rgb(202,0,0)][backcolor=inherit] [backcolor=inherit]在 Physical Standby 搭建实例 这片文章的最后对switchover和failover的切换都做了说明,不过这里面没有涉及到服务器IP的修改。 我们前台应用都是和IP地址关联的,如果不改服务器的IP,就要修改应用的IP,如果应用很多的话,改起来还是比较麻烦的。[backcolor=inherit]修改IP地址情况下的switchover 步骤如下:[backcolor=inherit]一. 查看主库switchover 状态 [backcolor=inherit]SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;[backcolor=inherit]SWITCHOVER_STATUS[backcolor=inherit]--------------------[backcolor=inherit]TO STANDBY[backcolor=inherit]附: A:switchover_status出现session active/not allowed [backcolor=inherit] 当出现session active的时候表示还有活动的session,则运行 [backcolor=inherit] Alter database commit to switchover to physical standby with session shutdown; [backcolor=inherit] 当出现not allowed时,在官方文档说转换会不成功,但是我测试的时候成功了。 [backcolor=inherit] B.ora- 01153: an incompatible media recovery is active [backcolor=inherit] 运行下面代码 [backcolor=inherit] Alter database recover managed standby database finish; [backcolor=inherit] 或者Alter database recover managed standby database finish force; [backcolor=inherit] Alter database recover managed standby database disconnect from session; [backcolor=inherit] [backcolor=inherit]二. 将主库切换成备库[backcolor=inherit]SQL>Alter database commit to switchover to physical standby with session shutdown; [backcolor=inherit]或者[backcolor=inherit]SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; [backcolor=inherit] [backcolor=inherit]三. 关闭主库[backcolor=inherit]SQL> SHUTDOWN IMMEDIATE
[backcolor=inherit]四. 查看备库 switchover 状态[backcolor=inherit]SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; [backcolor=inherit] TO PRIMARY [backcolor=inherit]附:若不是用此语句切换:[backcolor=inherit]ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown [backcolor=inherit]补充:若出现:ORA-16139: media recovery required[backcolor=inherit]是因为没有执行:alter database recover managed standby database disconnect from session; [backcolor=inherit] [backcolor=inherit]五. 将备库切换成主库,然后关闭[backcolor=inherit]SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; [backcolor=inherit]Database altered. [backcolor=inherit]SQL> shutdown immediate;
[backcolor=inherit]六. 更改服务器IP地址[backcolor=inherit]这个可以用xmanager 连过去,在界面上改,也可以直接用命令来修改。[backcolor=inherit]vi /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart[backcolor=inherit][color=rgb(202,0,0)][backcolor=inherit]
[backcolor=inherit]七. 启动备库。 这里的启动顺序不能错,先启动备库,在启动主库,不然主库识别不了备库。[backcolor=inherit]SQL> startup nomount; [backcolor=inherit]SQL> alter database mount standby database; [backcolor=inherit]SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
[backcolor=inherit]八. 启动主库[backcolor=inherit]SQL> startup; [backcolor=inherit]SQL> alter system switch logfile;
[backcolor=inherit]九. 在主库查看log_archive_dest 参数的状态,是否有效。[backcolor=inherit]因为这里与监听和启动顺序有关,如果值为error,则归档不能传送到备库。 [backcolor=inherit]SQL>select status,database_mode from v$archive_dest_status; [backcolor=inherit]Status状态为valid即可。 如果有错误,一般都是启动顺序和监听问题。 如果启动顺序没有问题,那么就把主库重新启动一下。
[backcolor=inherit]十. 验证同步状态[backcolor=inherit]在主库运行:[backcolor=inherit]SQL>alter system switch logfile;[backcolor=inherit] 然后在主备库分别运行:select sequence#,applied from v$archived_log; [backcolor=inherit]确保applied都为YES。 [backcolor=inherit]如果用:select max(sequence#) from v$archived_log; [backcolor=inherit]查看,如果主备库显示的一致,则只能表明归档已经传送到了备库,并不能表明该归档已经应用。 而applied 状态为YES,就表明该归档已经应用到了备库。[backcolor=inherit]如果等了很长时间applied 都无法应用,可以尝试一下方法:[backcolor=inherit]alter database recover managed standby database cancel; [backcolor=inherit]alter database recover managed standby database disconnect from session; [backcolor=inherit]这2个语句是取消recover manager,在启动它。 [backcolor=inherit] 通过以上十步,switchover 切换完成。

本文标签:
本文标题:ORACLE dataguard 切换
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】