数据库学习案例20240206-ORACLE NEW RAC agent and resource关系汇总。

news2024/10/5 22:21:18

1 集群架构图

整体集群架构图如下:

1 数据库启动顺序OHASD层面

操作系统进程init.ohasd run启动ohasd.bin

init.ohasd run

  1. 集群自动启动是否被禁用 crsctl enable has/crs
  2. GIHOME所在文件系统是否被正常挂载。
  3. 管道文件npohasd是否能够被访问, cd /var/tmp/.oracle/ (管道文件目录)
  4. 手动执行run脚本 nohup /etc/init.d/init.ohasd run &.

ohasd.bin

  1.  确认OLR存在而且能够正常被访问。($GI_HOME/crsdata/tjnrmsdb1/olr/,或者使用./ocrcheck -local
  2. ohasd所使用的嵌套字文件socket file存在。
  3. ohasd对应的日志文件能够正常访问。

2 初始化集群初始资源

ohasd.bin会启动4个代理进程来启动所有的集群初始化资源。

oraagent负责启动资源:ora.asm,ora.evmd,ora.gipcd,ora.gpnpd,ora.mdnsd等。

orarootagent负责启动资源:ora.crsd\ora.ctssd\ora.cluster_interconnect.ha\ora.crf等。

cssdagent负责启动ora.cssd

cssdmonitor负责启动ora.cssdmonitor.  

常见失败汇总

1 二进制文件损坏

拷贝健康节点的二进制文件过来继续使用。

2 代理进程日志文件无法访问。

3 集群初始化资源开始启动

虽然ohasd的代理进程oraagent会同时启动所有的集群初始化资源,但是它们之间还是有依赖关系的。

1 )mdnsd守护进程被启动,并启动mdns服务,以便gpnpd能够通过mdns在节点之间传输gpnp profile文件。
2)gpnpd守护进程被启动,gpnpd开始读取本地节点的gpnp profile,之后和远程节点的gpnpd守护进程通信,以便获得集群中最新的gpnp profile信息。
3)gpnpd启动完毕,向本地节点的其他集群初始化资源提供gpnp profile服务。
4)gipcd守护进程被启动,从gpnpd守护进程获得集群的私网信息,并和远程节点的gipcd守护进程通信,最后开始监控本地节点的私网。
5)cssdagent代理进程启动ocssd.bin守护进程。
6)cssdmonitor守护进程启动,并开始监控ocssd.bin守护进程的状态。
在整个过程中,可能导致集群的bootstrap过程无法成功的主要原因如下。
原因1:集群中有其他的mdns软件运行(例如:avahi),这会导致GI的mdnsd服务无法正常工作。例如:
​​Oct  6 22:52:58 test1?avahi-daemon[22477]: Withdrawing address record?for *.*.*.* on bond1.
Oct  6 22:52:58 test1?avahi-daemon[22477]: Leaving mDNS multicast group on interface?bond1.IPv4 with address *.*.*.*.
Oct  6 22:52:58 test1?avahi-daemon[22477]: Joining mDNS multicast group on interface?bond1.IPv4 with address 169.254.180.94.
Oct  6 22:52:58 test1 avahi-daemon[22477]: Withdrawing address record for 169.254.180.94 on bond1.
Oct  6 22:52:58 test1?avahi-daemon[22477]: Interface bond1.IPv4 no longer relevant for mDNS.​​
原因2:gpnp profile文件中的信息出现错误,这会导致集群的bootstrap过程无法完成。例如:
​​[grid@test1 oraagent_grid]$ gpnptool get
Warning: some command line parameters were defaulted. Resulting command line:
         /u01/app/11.2.0/grid/bin/gpnptool.bin get -o-
......
gpnp-profile.xsd" ProfileSequence="13" ClusterUId="7d414c4a930cdfc4ff23e150c9acd5e0" ClusterName="test-cluster" PALocation=""><gpnp:Network-Profile><gpnp:HostNetwork id="gen" HostName="*">
<gpnp:Network id="net2" IP="*.*.*.0" Adapter="eth88" Use="cluster_interconnect"/>  <<<<<私网网卡信息错误
<gpnp:Network id="net1" Adapter="eth0" IP="*.*.*.0" Use="public"/>​​
原因3:节点之间的网络通信存在问题,这会导致gpnp profile无法正常传输。
原因4:gpnp的一些线程被挂起,这会导致gpnpd守护进程无法成功完成启动任务。
原因5:集群的私网网卡出现问题,这会导致gipcd无法和其他节点的gipcd进行通信或者集群没有可用的私网进行通信。
原因6:gipcd存在问题,这会导致它错误地认为集群私网网卡存在问题。
原因7:以上守护进程的套接字文件丢失。
而对应的解决方法如下。
方法1:停止并禁用其他的mdns软件。例如:
​​# /etc/rc.d/init.d/avahi-dnsconfd stop
# /etc/rc.d/init.d/avahi-daemon stop
# chkconfig avahi-dnsconfd off
# chkconfig avahi-daemon off​​
方法2:如果gpnp profile只是在集群的某一个节点上出现了错误,可以从集群的其他节点将其复制过来。如果集群所有节点的gpnp profile都出现了问题,那么就需要使用gpnp工具来进行修正。

---索引如果修改集群私网要备份gpnp profile文件 

下面的例子演示了如何使用gpnp tool修改集群的私网信息。
1)检查当前的gpnp profile,确认gpnpd能够通过mdns找到集群的其他节点。
​​$<gi_home>/bin/gpnptool get
$<gi_home>/bin/gpnptool find​​
2)创建一个工作路径以用于编辑gpnp profile。
​​$mkdir /home/grid/gpnp
$export GPNPDIR=/home/grid/gpnp
$<gi_home>/bin/gpnptool get -o=$GPNPDIR/profile.original​​
3)创建一个用于修改的gpnp profile副本。
​​$cp $GPNPDIR/profile.original $GPNPDIR/p.xml​​
4)查看gpnp profile的序列号和私网信息。
​​$<gi_home>/bin/gpnptool getpval -p=$GPNPDIR/p.xml -prf_sq -o-
$<gi_home>/bin/gpnptool getpval -p=$GPNPDIR/p.xml -net -o-​​
5)修改集群私网的网卡信息。
​​$<gi_home>/bin/gpnptool edit -p=$GPNPDIR/p.xml -o=$GPNPDIR/p.xml -ovr -prf_sq=<当前序列号+1> -net<私网编号>:net_ada=<私网网卡名>​​
例如:
​​gpnptool edit -p=$GPNPDIR/p.xml -o=$GPNPDIR/p.xml -ovr -prf_sq=9 -net2:net_ada=eth1​​
6)确认之前的修改。
​​$<gi_home>/bin/gpnptool sign -p=$GPNPDIR/p.xml -o=$GPNPDIR/p.xml -ovr -w=cw-fs:peer​​
7)将修改后的gpnp profile应用到gpnpd守护进程中。
​​$<gi_home>/bin/gpnptool put -p=$GPNPDIR/p.xml​​
8)将改变后的gpnp profile推送到集群的其他节点。
​​$<gi_home>/bin/gpnptool find -c=<集群名>
$<gi_home>/bin/gpnptool rget -c=<集群名>​​
方法3:确认集群私网通信正常(例如:使用ping、traceroute等命令确认集群私网的连通性)。
方法4:在操作系统层面重新启动gpnp守护进程,例如:kill-9<gpnpd进程ID>。
注意
当gpnpd守护进程被终止之后,对应的ohasd代理进程会及时发现这一情况,并启动新的gpnpd守护进程。
方法5:确认集群私网通信正常(例如:使用ping、traceroute等命令确认集群私网的连通性)。
方法6:在操作系统层面重新启动gipcd守护进程,例如:kill-9<gipcd进程ID>。
注意
当gpicd守护进程被终止之后,对应的ohasd代理进程会及时发现这一情况,并启动新的gipcd守护进程。
方法7:重新启动GI,以便重建套接字文件。
​​#<gi_home>/bin/crsctl stop crs


#<gi_home>/bin/crsctl start crs​​

 2 AGENT对应的进程架构图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1436206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Etsy做什么店铺比较靠谱? 什么叫做真人店?

作为Etsy是美国最大的原创手工在线销售平台之一&#xff0c;以其店铺利润高、平台佣金低、平台同质化不严重的优点在跨境电商里颇具竞争力。然而Etsy开店却不是件容易事&#xff0c;原因是Etsy真人店对于环境以及卖家的运营操作要求较高&#xff0c;下面就给各位有意入局Etsy的…

2024版细致idea解读(包含下载,安装,破解,讲解怎么使用)

前言 我们历经了对应的javase开发&#xff0c;使用的软件从eclipse也逐步升级到了idea&#xff0c;IntelliJ旗下的产品之一 内部复函很大的集成平台插件供大家使用 下载介绍 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE 这个是他的网站地址 进入之后我们可以看到对应的界面…

Linux-3进程概念(一)

1.冯诺伊曼结构 1.1 冯诺依曼结构的概念 冯诺依曼结构&#xff0c;又称为普林斯顿结构&#xff0c;是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置&#xff0c;因此程序指令和数据的宽度相同&…

【大模型】万亿级别的大语言模型训练,基础设施如何支持

万亿级别的大语言模型训练&#xff0c;基础设施如何支持 前言1&#xff09;培训百万亿参数的LLM是可行的&#xff0c;但需要每个GPU高达1 TiB的次级内存池&#xff0c;双向带宽为100 GB/s。2&#xff09;对于1T模型的强扩展在约12288个GPU左右停滞&#xff0c;因为矩阵乘法变得…

C++二维数组

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 大家好&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习二维数组。 文章目录 1.二维数组的概念与思想 2.二维数组和一维数组的区别 3.二维数组的特点 4.二维数组的操作 1.定义 2.初始化 1.直…

IPv4的公网地址不够?NAT机制可能是当下最好的解决方案

目录 1.前言 2.介绍 3.NAT机制详解 1.前言 我们都知道IPv4的地址范围是32个字节,这其中还有很多地址是不可用的.比如127.*,这些都是环回地址.那么在网路发展日新月异的今天,互联网设备越来越多,我们该如何解决IP地址不够用的问题呢?目前有一种主流的解决方案,也是大家都在用…

JVM相关-JVM模型、垃圾回收、JVM调优

一、JVM模型 JVM内部体型划分 JVM的内部体系结构分为三部分&#xff0c;分别是&#xff1a;类加载器&#xff08;ClassLoader&#xff09;子系统、运行时数据区&#xff08;内存&#xff09;和执行引擎 1、类加载器 概念 每个JVM都有一个类加载器子系统&#xff08;class l…

C语言的malloc(0)问题

malloc(0)详解 首先来解释malloc&#xff08;0&#xff09;的问题&#xff0c;这个语法是对的&#xff0c;而且确实也分配了内存&#xff0c;但是内存空间是0&#xff0c;就是说返回给你的指针是不能用的&#xff0c;感觉奇怪吧&#xff1f;但是从操作系统的原理来解释就不奇怪…

(c语言版)开源项目热榜,某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目

某个开源社区希望将最近热度比较高的开源项目出一个榜单&#xff0c;推荐给社区里面的开发者。对于每个开源项目&#xff0c;开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数据库里面统计了每个开源项目关注、收藏、fork、issue、MR的数量&…

3. ⼤语⾔模型深度学习背景知识

1. LLM⼤语⾔模型⼀般训练过程 #mermaid-svg-8kci1fjEPiVolPue {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8kci1fjEPiVolPue .error-icon{fill:#552222;}#mermaid-svg-8kci1fjEPiVolPue .error-text{fill:#5522…

前端实现标题滚动点击导航

效果图 右边滚动的html代码 <div class"right-box"><el-tabs v-model"isScrollNow" tab-position"right" class"updateTab" tab-click"scrollTo"style"height: fit-content;"><el-tab-pane label…

怎么把视频音乐提取成mp3?分享详细工具和方法!

在数字媒体时代&#xff0c;音乐已经成为我们生活中不可或缺的一部分。有时候&#xff0c;我们会在社交媒体、视频分享网站或在线视频平台上看到一些非常喜欢的视频音乐&#xff0c;想要将其保存为MP3格式以便随时随地聆听。那么&#xff0c;如何从视频中提取音乐并转换为MP3格…

Python操作Word表格对齐、单元格对齐

通过Table的alignment可以设置表格居左对齐、居中对齐、居右对齐。通过Cell的vertical_alignment可以设置垂直位置。通过单元格里段落的alignment可以设置文本的左右对齐方式。 import docx from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT from…

@Repository注解的作用和用法,以及和@Mapper的区别

1、Repository的作用 Repository是属于Spring的注解。它用来标注访问层的类&#xff08;Dao层&#xff09;&#xff0c;它表示一个仓库&#xff0c;主要用于封装对于数据库的访问。其实现方式与Component注解相同&#xff0c;只是为了明确类的作用而设立。 即Repository是Comp…

Qt:QFileDialog

目录 一、介绍 二、功能 三、具体事例 1、将某个界面保存为图片&#xff0c;后缀名可选PNG、JPEG、SVG等 一、介绍 QFileDialog提供了一个对话框&#xff0c;允许用户选择文件或者目录&#xff0c;也允许用户遍历文件系统&#xff0c;用以选择一个或多个文件或者目录。 QF…

基于Java超市管理系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

牛客网--------------小红统计区间(easy)

题目描述&#xff1a; 本题为easy版本&#xff0c;和hard版本的唯一区别是aia_iai​保证是正整数&#xff01; 小红拿到了一个数组&#xff0c;她想知道&#xff0c;有多少非空区间满足区间所有元素之和不小于kkk&#xff1f; 输入描述: 输出描述: 输出一个整数表示满足条件的非…

Camunda流程引擎数据库架构

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;数据库架构…

WINDOWS搭建NFS服务器

下载并安装 Networking Software for Windows 启动配置 找到安装目录&#xff08;如C:\Program Files\nfsd&#xff09;&#xff0c;双击nfsctl.exe&#xff0c;菜单Edit->Preferences 启动后&#xff1a; 配置Export Exports->Edit exports file 其他的几句我都删除…

[Linux] 网络编程套接字

目录 预备知识 网络字节序 网络字节序和主机字节序转换的库函数 socket编程接口 socket常见API sockaddr结构 套接字的种类 预备知识 1.在IP数据包头部中&#xff0c;有两个IP地址&#xff0c;分别叫做源IP地址和目的IP地址。 2.端口号&#xff1a;是传输层协议的内容…