当前位置: 首页 > news >正文

主机OS重装的节点加回RAC集群步骤示例(11gR2 RAC)

原文地址:

https://blogs.oracle.com/Database4CN/entry/%E4%B8%BB%E6%9C%BAos%E9%87%8D%E8%A3%85%E7%9A%84%E8%8A%82%E7%82%B9%E5%8A%A0%E5%9B%9Erac%E9%9B%86%E7%BE%A4%E6%AD%A5%E9%AA%A4%E7%A4%BA%E4%BE%8B#

 

很多客户遇到过这样的情况:由于RAC其中一个节点的主机OS损坏,需要重装。而重装后怎样把节点加回集群呢?
这里将涉及的步骤整理如下:
1. 清除重装主机的OCR条目(这里以节点2重装为例,请将node2换成您节点2的主机名)
# crsctl delete node -n node2
要检查上述步骤是否成功,在尚存节点执行"olsnodes"即可,重装的主机不应该出现在它列出的清单里。
以grid用户执行
$ olsnodes

2. 从OCR中删除重装主机的VIP信息
在尚存节点上执行:
$ /grid/bin/srvctl remove vip -i node2-v -f

3. 清除重装主机的GI和DB home的inventory信息:
在尚存节点执行:
1)GI
$ /grid/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/grid "CLUSTER_NODES=node1" CRS=TRUE -silent -local
注:这里CLUSTER_NODES是写尚存节点的清单

2)在db home下执行同样的步骤:
$ /home/oracle/app/oracle/product/11.2.0/dbhome_1/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1/ CLUSTER_NODES=node1 -silent -local

4. 下面开始添加节点。运行CVU检查:
./cluvfy  stage -pre nodeadd -n node2 -verbose

在这里,由于OCR和voting disk在ASM中,并且使用了ASMLIB,最常见的错误是:
ERROR:
PRVF-5449 : Check of Voting Disk location "ORCL:DISK6(ORCL:DISK6)" failed on the following nodes:
node2:No such file or directory
PRVF-5431 : Oracle Cluster Voting Disk configuration check failed

在下面步骤中将解释这个错误的影响。
5. 在尚存节点上执行grid home下的"addNode.sh" .
[oracle@node1] /grid/oui/bin% ./addNode.sh -silent "CLUSTER_NEW_NODES={node2}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={node2-v}"
[oracle@node1] /grid/oui/bin%
在这里,上述命令没有任何信息就退出,实际上addNode.sh根本没运行。

原因 : ASMLIB在使用中,符合MOS Note : 1267569.1描述的问题

第四步的报错能帮我们发现它。

解决办法 :
设置如下环境变量并重新运行addNode.sh。
IGNORE_PREADDNODE_CHECKS=Y
export IGNORE_PREADDNODE_CHECKS
[oracle@node1] /grid/oui/bin% ./addNode.sh -silent "CLUSTER_NEW_NODES={node2}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={node2-v}"

Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB.   Actual 12143 MB
Performing tests to see whether nodes node2 are available
............................................................... 100% Done.

Cluster Node Addition Summary
Global Settings
 Source: /grid
 New Nodes

Space Requirements
 New Nodes
    node2

Instantiating scripts for add node (Tuesday, December 21, 2015 3:35:16 AM PST)

.                                                                 1% Done.
Instantiation of add node scripts complete
Copying to remote nodes (Tuesday, December 21, 2015 3:35:18 AM PST)
...............................................................................................                                 96% Done.
Home copied to new nodes
Saving inventory on nodes (Tuesday, December 21, 2015 3:37:57 AM PST)
.                                                               100% Done.
Save inventory complete

WARNING:
The following configuration scripts need to be executed as the "root" user in each cluster node.
/grid/root.sh # On nodes node2

To execute the configuration scripts:

  1. Open a terminal window

  2. Log in as "root"

  3. Run the scripts in each cluster node

The Cluster Node Addition of /grid was successful.
Please check '/tmp/silentInstall.log' for more details.

6. 在重装节点上执行root.sh来启动CRS stack.
这会结束该节点上GI的安装。

7. 在尚存节点上执行DB home下的addNode.sh
/home/oracle/app/oracle/product/11.2.0/dbhome_1/addNode.sh -silent "CLUSTER_NEW_NODES={node2}"

8. 当DB Home添加完成,使用srvctl检查DB和实例的注册情况,如需要则添加他们。

 

相关文章:

  • 5.迪米特法则(Law Of Demeter)
  • 并查集(Union-Find)算法介绍
  • 创建 多个 MySQL docker 出现错误时
  • ocx控件打印之基础篇
  • unity 中 protoc-gen-lua 生成 lua 文件
  • django 添加comments app
  • Yeoman_Bower_Grunt
  • Spring @Resource, @Autowired and @Inject 注入
  • 标准I/O和管道
  • 深入理解java的抽象类和接口(转载)
  • CentOS系统故障 | 一桩血案引发的容器存储驱动比较
  • 探针技术
  • DUBBO服务调用超时问题记录
  • html学习记录之表格、表单基础
  • JAVA API-----String类和StringBuffer类
  • __proto__ 和 prototype的关系
  • 《深入 React 技术栈》
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Angular 2 DI - IoC DI - 1
  • Bootstrap JS插件Alert源码分析
  • CentOS 7 修改主机名
  • Docker下部署自己的LNMP工作环境
  • egg(89)--egg之redis的发布和订阅
  • gops —— Go 程序诊断分析工具
  • java8 Stream Pipelines 浅析
  • Netty 4.1 源代码学习:线程模型
  • python_bomb----数据类型总结
  • session共享问题解决方案
  • spring security oauth2 password授权模式
  • Spring框架之我见(三)——IOC、AOP
  • 诡异!React stopPropagation失灵
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 通过git安装npm私有模块
  • 为什么要用IPython/Jupyter?
  • 应用生命周期终极 DevOps 工具包
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​flutter 代码混淆
  • #pragma once
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $.ajax()
  • (11)MSP430F5529 定时器B
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)共用体union的用法举例
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .a文件和.so文件
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET 设计一套高性能的弱事件机制