ROSE HA,想说爱你不容易——为ROSE HA配置IP资源的LocalFailover

我们有几个项目使用了Windows Server 2008+ROSE HA+Oracle的组合方案,但是最近遇到了一个不大不小的麻烦。
甲方在进行故障测试时,断掉了一个网络交换机的电源(共有两个网络交换机,对应两个冗余的业务网络),Oracle服务竟然停止了,导致所有的客户端数据库连接中断。
首先,这个测试结果甲方是无法接受的;
其次,这个结果也出乎我们的意料,在另外一个交换机正常工作的情况下,ROSE HA停止了Oracle服务。

那么,如何给甲方一个交代呢?在和ROSE售后经过多次沟通后,配置IP资源的LocalFailover似乎是个不错的选择。

一、ROSE HA是什么

ROSE HA是美国ROSE Datasystem 公司出品的新一代高可用性软件,它可以将UNIX服务器和Windows 服务器组成集群系统,并对服务器进行监控、故障检测、故障恢复,保护运行服务器中的关键性数据服务和网络服务。对于在客户机/服务器环境中的网络及数据库中集成的高可用需求,ROSE HA提供了非常灵活而且适用的解决方案。

二、IP资源(IP Resource)

ROSE HA包括卷资源、IP资源、应用程序等多种资源,其中IP资源(IP Resource)由IP地址和IP地址依赖的网卡组成。网卡组作为创建IP资源的载体需要首先创建。
IP资源分为心跳IP和虚拟IP两类。心跳IP作为集群服务传递信息的桥梁,虚拟IP作为客户端访问应用程序的入口地址。

管理员可以根据具体需求,灵活创建网卡组。创建网卡组时,需要注意以下几个方面:
1.网卡组中的网卡上的IP可以在不同的网段,即组成网卡组的网卡可以自由组合;
2.集群节点心跳IP的简历需要同一个IP段的IP地址;
3.在网卡组中的主机允许选择超过一片的网卡,以配合做IP资源的LocalFailover(多片网卡需要用户指定一个优先顺序);
4.基于网卡组的IP资源的替换IP功能会作用于该资源,不单独提供或者智能的替换某些主机的网卡上的IP地址。

三、如何设置IP资源的LocalFailover

假如我们现在有两台服务器,每台服务器上有两片网卡:
服务器名称 IP1 IP2
SUPPORT-58-114 192.168.58.114 192.168.10.114
SUPPORT-58-113
192.168.58.113
192.168.10.113
其中,对应的虚拟IP分别为192.168.58.115和192.168.10.115。
接下来,我们来配置IP资源的LocalFailover。

1.将资源带出

首先,我们修改IP资源的配置前,需要将资源带出。ROSE HA会自动把所有的服务停止,所有的资源都处于离线状态。
通过右键菜单“带出”即可。

2.配置网卡组

选中网卡组1,右键“属性”,将10网段的网卡信息添加到网卡列表中,注意优先级顺序(58在前,10在后);
选中网卡组2,右键“属性”,将58网段的网卡信息添加到网卡列表中,注意优先级顺序(10在前,58在后)




3.网卡组配置完成



4.配置IP资源

选中IP资源1,勾选“自动回切IP”,注意,不要勾选“替换IP”;
选中IP资源2,勾选“自动回切IP”,注意,不要勾选“替换IP





5.将资源带入

最后,我们修改IP资源的配置后,需要将资源带入。ROSE HA会自动将所有的资源带入在线状态,并启动相关服务。
通过右键菜单“带入”即可。


四、看似完美的LocalFailover

这样,我们就完成了为ROSE HA配置IP资源的LocalFailover。
现在我们考虑以下场景,ROSE HA状态正常,服务器SUPPORT-58-114为当前活动主机,
当对应IP为192.168.58.114的网卡1(命名为HOEGH-1)故障时,ROSE HA会完成LocalFailover,IP资源会转而挂在网卡2上,而不会自动倒切服务;
网卡1(命名为HOEGH-1)恢复时,ROSE HA会完成LocalFailover,IP资源会恢复挂在网卡1上,同样不会倒切服务

我们来看一下
LocalFailover过程中的ROSE HA的日志

点击(此处)折叠或打开

  1. [2016-07-27 12:34:46][ERROR]<5005>网卡(HOEGH-1)断开网络连接。
  2. [2016-07-27 12:34:48][INFO ]<5150>[LocalFailOver]本地停止资源组(Oracle)中的资源(IP-Oracle)开始。
  3. [2016-07-27 12:34:48][INFO ]<5008>停止网卡({17C98833-C217-43BB-8852-74D21D9A08DB})活动IP(192.168.58.115)成功。
  4. [2016-07-27 12:34:48][INFO ]<5152>[LocalFailOver]本地停止资源组(Oracle)中的资源(IP-Oracle)成功。
  5. [2016-07-27 12:34:48][INFO ]<5147>[LocalFailOver]本地启动资源组(Oracle)中的资源(IP-Oracle)开始。
  6. [2016-07-27 12:34:52][INFO ]<5011>启动网卡({C30FAA44-25C7-42DF-8859-AF21462E933F})活动IP(192.168.58.115)成功。
  7. [2016-07-27 12:34:52][INFO ]<5149>[LocalFailOver]本地启动资源组(Oracle)中的资源(IP-Oracle)成功。
  8. [2016-07-27 12:34:52][INFO ]<5202>资源组(Oracle)中资源(IP-Oracle)的本地failover成功。
  9. [2016-07-27 12:35:08][INFO ]<5410>客户端(sessionId:0x401)断开连接
  10. [2016-07-27 12:35:46][INFO ]<5006>网卡(HOEGH-1)的网络连接恢复正常。
  11. [2016-07-27 12:35:48][INFO ]<5150>[LocalFailOver]本地停止资源组(Oracle)中的资源(IP-Oracle)开始。
  12. [2016-07-27 12:35:48][INFO ]<5008>停止网卡({C30FAA44-25C7-42DF-8859-AF21462E933F})活动IP(192.168.58.115)成功。
  13. [2016-07-27 12:35:48][INFO ]<5152>[LocalFailOver]本地停止资源组(Oracle)中的资源(IP-Oracle)成功。
  14. [2016-07-27 12:35:48][INFO ]<5147>[LocalFailOver]本地启动资源组(Oracle)中的资源(IP-Oracle)开始。
  15. [2016-07-27 12:35:53][INFO ]<5011>启动网卡({17C98833-C217-43BB-8852-74D21D9A08DB})活动IP(192.168.58.115)成功。
  16. [2016-07-27 12:35:53][INFO ]<5149>[LocalFailOver]本地启动资源组(Oracle)中的资源(IP-Oracle)成功。
  17. [2016-07-27 12:35:53][INFO ]<5202>资源组(Oracle)中资源(IP-Oracle)的本地failover成功。

五、不完美的LocalFailover

配置IP资源的LocalFailover后,重复甲方的故障测试,系统没有倒切,Oracle服务没有中断。这也算是给甲方一个交代。
但是,这样会导致设备“带病工作”。
我们考虑以下场景,ROSE HA配置了IP资源的LocalFailover当当前主机的其中一片网卡故障后,系统不会倒切,而此时另外一个主机的两片网卡都是正常工作的。这一点不完美。
为此,我们和ROSE售后以及技术人员都沟通过,提出两点疑问:
1.如果两台主机配置了多个IP资源,那么当二者同时存在一片网卡故障时,考虑到健康度相等,ROSE HA应该保持原状,继续对外提供服务,而不是关闭服务;
2.ROSE HA配置了IP资源的LocalFailover后,可能存在“带病工作”的情况。
ROSE售后以及技术人员也承认存在这样的问题,但是,
他们暂时不会考虑去修改ROSE HA的倒切逻辑。

如果ROSE不改变,也许我们就得考虑改变了。



~~~~~~~ the end~~~~~~~~~
hoegh
2016.08.04


本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
故障现象: 用服务器上面的(客户端)sql server management  stutio 去连接本服务器上的sql server 数据库,如下图:点击连接不报任何错,就是连接不上,一直处于等待状态; 但是通过windows 身份验证是可以连接的,并且是可以正常操作的,如下图:服务器名字不在是个IP,要选择local. 通过这个现象可判断出 数据库本身的服务(通过任务管理器中也可以看出来)是没有问题,只是连接方面出现问题:网络,端口或者是监听之类的问题。 这是网上查到的一篇文档:经验证我的这里是 没有
《 Oracle DBA 工作笔记》第二章 常用工具和问题分析   一.1    BLOG 文档结构图     一.2    本文简介 建荣的新书《 Oracle DBA 工作笔记》第二章的目录如下图,主要讲解了 SQL*Plus 、 exp/imp 、 expdp/impdp 以及常见的问题分析,第二章的目录如下:     下边小麦苗将自己阅读完第二章后整理的一些内容分享给大家。 一.3    第一章内容修改 一.3.1    删除数据库的几种方式 这个内容是第一章( http://blog.itpub
工作中可能需要某一天各个时间段的ash报告或awr报告,手动一个一个生成太费力了.利用 dbms_workload_repository 包再配合sqlplus的spool 可以使这件事情简单一些. 以下示例: 一.批量生成一天的ash报告 1.生成查询语句 #此处是按照15分钟的间隔时间,生成前一天所有的ash报告  的查询语句 select 'spool ash_'||db_unique_name||'_'||inst_id||'_'||to_char(trunc(sysdate-1)+level/9
分区索引分为本地索引和全局索引,但对于在分区表上建索引,一般用的比较多的还是普通索引和本地分区索引,而全局分区索引相对用的比较少. 以下测试为验证:分区表上 的本地分区索引 因为查询条件引起跨分区,是否改为普通索引更合适. 以下测试: oracle version:11.2.0.4 建测试表: drop table SCOTT.TB_TEST01; create table SCOTT.TB_TEST01 partition by range (CREATED) (   partition P_2015
关于半自动化搭建Data Guard,自己花了一些时间,总算是把这件事情继续推进了一下,还是再啰嗦一句,为什么不自动化,因为安全。主库就是主库,任何变更都要手工检查审核,自动化的工作在备库和中控端来完成。我希望自己的脚本能够只知道主库的IP,不用一次又一次连过去配置和检查,当然要完成自动化还是半自动化,有些网友也提醒的极是,那就是规范和标准。 预先条件: 1.目前的设计是基于11.2.0.4的版本,当然这个很容易定制,在此是作为一个基本的标准,作为环境的初始化和Data Guard对的搭建的基线。 2.默认
   前段时间有个开发的同事向我咨询一个问题,     开发同事:Oracle会存在一个用户插入数据,已经提交了;但是另外一个用户还查询不到吗?都是同一张表     jeanron:   不会的。     开发同事: 我们现在一个用户写入,程序日志是说已经写入;可是读取的用户还读取不到,在线延迟5分钟可能的问题在哪儿?或者你帮忙监控一下?     jeanron:   是Oracle吗,MySQL还可能有这种情况     开发同事: Oracle,MySQL是什么情况下会这样?     jeanron: 
【故障处理】 ORA-19809 错误处理 1    BLOG 文档结构图       2    前言部分 2.1    导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~ : ① ORA-19809: limit exceeded for recovery files 错误的处理方法 RMAN-03009: failure of backup command on ORA_DISK_1 channel at 07/26/2016 17

手工搭建Data Guard - 2016-08-03 17:08:05

Data Guard的搭建可以使用GC图形化安装,优缺点很明显,优点就是图形化操作,符合国人的习惯(据secooler介绍外国程序员能用图形化做的事就一定用图形做,因为boss看得懂,和国人正相反。。。),缺点就是如同Windows一样,宛如黑盒,换句话说,要时刻祈祷不要出问题,否则有时很难知道他为什么挂了。。。 Data Guard还可以使用命令行操作,正如各位所知,图形化的任何操作背后,其实都是使用的命令。OCM第七场景考试中,我也是纠结了许久,临开始前才决定使用手工方式创建DG,怕的就是图形安装的不

mysql分区技术测试 - 2016-07-25 19:07:38

mysql是否支持partition呢,在mysql下执行show plugins;(显示插件) 其中包含了partition字段就说明你的数据库支持分区技术 1,创建带有分区的表 表明创建了带有hash分区技术的表,t2表有5个分区 mysql支持的几种分区技术,最常用的是range和list二种,Hash主要用来测试 看到test中有12张t2表,每个分区表都有表索引,检索数据更快。 把t2表创建索引 create index in_id on t2(id); 2、现在我们插入一个一千万行的数据来测试

Oracle 学习笔记 - 2016-07-25 18:07:03

1,oracle安装包下载: 官网地址:http://www.oracle.com/technetwork/indexes/downloads/index.html#database 2,安装: 在oracle官网下载安装包,以oracle 11g为例,下载下来有两个压缩包,分别是win32_11gR2_database_1of2和win32_11gR2_database_2of2,把它俩解压到同一个文件夹下,注意路径中不能出现中文符号。 3.然后双击可执行文件【setup.exe】,如图所示: 4.双击