热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

【VIP】RAC中VIP2异常转移的解决方法

VIP2的无法使用,使得node2没有新的连接接入,负载全部存在了node1上,同时node1没有故障转移功能了,为了使node2可用,在无法解

VIP2的无法使用,使得node2没有新的连接接入,负载全部存在了node1上,同时node1没有故障转移功能了,为了使node2可用,在无法解

环境:AIX 5.3+10.2.0.5 RAC

情景描述:在一套RAC中,node2节点的VIP2异常漂移至node1通过重启VIP2无法使其转移回node2,于此同时node2节点上并没有发现任何故障。服务器甚至都尝试了重启也无法使VIP2恢复正常。

VIP2的无法使用,使得node2没有新的连接接入,负载全部存在了node1上,同时node1没有故障转移功能了,为了使node2可用,在无法解决原VIP2的前提下,最后的解决办法是:不在考虑原有VIP2的问题,将VIP2在node1关掉,随后在node2上重新添加了一个VIP。

1. 查看资源状态

Oracle@gisdb1:/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.lsnr application ONLINE ONLINE gisdb1
ora.gisdb1.gsd application ONLINE ONLINE gisdb1
ora.gisdb1.ons application ONLINE ONLINE gisdb1
ora.gisdb1.vip application ONLINE ONLINE gisdb1
ora....B2.lsnr application ONLINE OFFLINE
ora.gisdb2.vip application ONLINE OFFLINE
ora.gisdb2.ons application ONLINE ONLINE gisdb2
ora.gisdb2.gsd application ONLINE ONLINE gisdb2
ora.nxgis.db application ONLINE ONLINE gisdb2
ora....s1.inst application ONLINE ONLINE gisdb1
ora....s2.inst application ONLINE ONLINE gisdb2


此时ora.gisdb2.vip资源无法再节点node2启动,,如果使用crs_start 启动则自动在node1上起来。
当然,此时节点node2上的资源ora.gisdb2.listener_gisdb2.lsnr依赖vip2,必然同样无法启动。


2. 在问题解决期间尝试了多次跟踪vip2的启动过程,但依然没有有效的收获。随后查看ocr里的信息:
oracle@gisdb1>ocrdump
OCRDUMPFILE
oracle@gisdb1>vi OCRDUMPFILE
发现里面没有vip2的有关信息,我们知道此时ocr里的信息混乱了。(曾在此之前执行过:srvctl remove nodeapps -f,其中-f参数指强制执行,此参数可能会造成ocr信息的紊乱,非常不建议执行)


3. 当ocr里的ora.gisdb2.vip信息出现问题时,首先考虑进行重新注册ora.gisdb2.vip。
所谓的重新注册就是将ocr中关于ora.gisdb2.vip的信息删除,然后重建vip。重建VIP可以使用VIPCA工具也可以用命令crs_profile,crs_register等一系列的crs_*命令来完成。


4. 移除ora.gisdb2.vip使用命令:
root用户执行:
root@gisdb2: ./srvctl remove nodeapps -n gisdb2(此命令会删除vip,ons,gsd,所以一会你得重建vip和ons,gsd为了保持向后兼容而存在可以选择不重建)
PRKO-02112:"Some or all node applications are not removed successfully onnode:gisdb2"
显然,这里报错无法完成删除node2上的nodeapps
随后查看crs的资源:
oracle@gisdb1:/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.lsnr application ONLINE ONLINE gisdb1
ora.gisdb1.gsd application ONLINE ONLINE gisdb1
ora.gisdb1.ons application ONLINE ONLINE gisdb1
ora.gisdb1.vip application ONLINE ONLINE gisdb1
ora....B2.lsnr application ONLINE OFFLINE
ora.gisdb2.vip application ONLINE OFFLINE
ora.nxgis.db application ONLINE ONLINE gisdb2
ora....s1.inst application ONLINE ONLINE gisdb1
ora....s2.inst application ONLINE ONLINE gisdb2
可以看到ora.gisdb2.vip依然存在,但是ora.gisdb2.ong,ora.gisdb2.gsd资源没有了。


5. 为了从ocr中移除ora.gisdb2.vip,又尝试使用crs_unregister,此命令从ocr文件中删除掉相应资源的信息
root用户执行:
root@gisdb2:/# ./crs_unresgiter ora.gisdb2.vip
Cann't unregister 'ora.gisdb2.vip‘ because it is required by other resources.
CRS-0214:Could not unregister resource 'ora.gisdb2.vip'
再次报错,因与其它资源关联无法注册掉ora.gisdb2.vip。要注销掉vip设置可能要先注册掉lsnr,database(未测试)
总之,我们失败了。此时问题陷入了窘境。VIP2删除的命令无法成功,我们就没办法更新OCR里的VIP2信息。VIP2在node2上不可用,
RAC此时变成了单节点失去了高可用性。

推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文介绍如何使用 Sortable.js 库实现元素的拖拽和位置交换功能。Sortable.js 是一个轻量级、无依赖的 JavaScript 库,支持拖拽排序、动画效果和多种插件扩展。通过简单的配置和事件处理,可以轻松实现复杂的功能。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • This document outlines the recommended naming conventions for HTML attributes in Fast Components, focusing on readability and consistency with existing standards. ... [详细]
author-avatar
北干吴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有