历史遗留问题-Oracle 19c RAC 安装时节点连接性问题

news2025/3/17 6:23:25

测试服务器的二节点数据库宕掉了,原因不明,需要产环境重新安装。我想上次在自己虚拟机安装实验过一次,应该一天能搞定,事实证明,你永远有学不完的bug!!!!

首先查看一下系统的基本信息,按理说应该没什么问题,但是还好检查了

发现节点二的Oracle环境变量都是错的,ORACLE_HOME基目录、掩码等错了,多了几个字符比如umask 022写成Pumask 022、$ORACLE_HOME=写成$ORACLE_HOMESHCBAK=????,这是宕机了吗,这应该是二节点就应该没装上吧???

用户和用户组缺少

这里我遇到过,在安装Grid时会检查,如果两个节点组号,用户ID不一样,会报错提醒,

可以通过id 用户 查看id和所属组

cat etc/group 查看有哪些组 组号复制出来 对比一下 或者 vi 里用 "/"查找对比

ps:不知道Linux目录结构功能的,可以查看往期Linux的专栏

public IP能ping通,priv ping 不通,重点,后面要说。

接着停掉集群清理环境,二节点虽然宕机了,但是也要停掉,不然一些守护进程杀不掉

问题一 杀进程时

ps -ef | grep has

crsctl stop has

在清理 二节点 has 进程的时候

[root@oratest01 bin]# ./crsctl stop has

CRS-4639: Could not contact Oracle High Availability Services CRS-4000: Command Stop failed, or completed with errors.

有一个子进程杀掉后会导致会话关闭,重新连接后,第一时间没有ps -ef | grep has进程

一会有一个进程,接着子进程又都出来了。

这里做发现忽略,后面没发现什么问题

问题二 清理磁盘头

Oracle在安装时选择ASM磁盘需要是干净的,需要把之前的信息清掉

我第一遍清理dd if=/dev/zero of=/dev/asm-ocr1 bs=8k count=1000

没清掉,难道是bs问题,这里我想难道是操作系统扇区(写数据)大小需要和bs保持一致没清理掉?

查看扇区大小 :fdisk -l /dev/asm-ocr1 显示210多G 扇区512K

再清 : dd if=/dev/zero of=/dev/asm-ocr1 bs=512k count=1000 还是没清掉。

原来bs大小值和清理数据速率有关,不用和扇区保持一直,那速率的就是操作系统的一些性能指标了(之前专栏里应该有)

那是什么原因呢?数据太多了 bs*count = 500M 没清干净呗?

全清理一遍: dd if=/dev/zero of=/dev/asm-data2 bs=4M status=progress

还是没删干净,安装界面没有可选择磁盘。

ok,注意地方来了,按理说是删干净了,也确实删干净了。原因是,刷新,没错,界面没反应过来,上一步下一步选择所偶有盘、可用盘刷新是没用的,要重新选择路径。

我的理解是,对比Web项目,一般有一个会话缓存, cookie和session分别保存到服务器和浏览器里面,保存当前的操作的一些缓存信息,比如图片、视频(流格式)等在yml里可以配置刷新时间,(用户操作刷新、实时刷新),这里是OUI界面,道理应该差不多,在选择路径时,读取到了第一次的磁盘信息,上一步下一步应该是没有刷新。“刷新”这个任务只在选择磁盘路径的时候生效。

所以总结就是,注意清理的大小,安装前我清理的8k*1000=5M没干净,后面清理500M就没了,OCR还能理解DATA数据盘就存这点信息吗?下次应该看看磁盘使用容量和剩余容量。而且物理文件没有删?

dd用法请查看:dd操作命令-CSDN博客

问题三 连接性问题

这里需要关注节点连接性问题,虚拟IP的两个节点不通,现在还没有解决,好像是TCP连接问题

这里贴一些参考命令

Host位置

/etc/hosts hostnamectl set-hostname myhost

网络IP位置

/etc/sysconfig/network

查看防火墙规则

iptables -L

查看路由表

route -n

进程监视器

sestatus

重新启动网络服务

systemctl restart network systemctl start network

查看TCP、UDP等

netstat -nutlp

Virtual IP出现故障,系统可能会影响高可用性功能,但不会影响Grid和数据库的安装过程。

解决不了就继续往下装,失败重新再清理环境呗😭

但是在执行脚本之前,数据库信息没有同步到二节点,,但是公共IP时没问题的,可以ping通,

查看日志:

这里做出假设;

假设一:在安装RAC时同步节点信息需要priv IP 保持畅通

假设二:设备网络故障

之前总结了一些安装时可以忽略的错误,大家可以看看:

1.物理内存推荐8G 只有4G 忽略,tip可以把swap内存设大一点。

2.因为测试环境,没有使用DNS,删除resolv.conf文件即可。或者直接 忽略该失败

# mv /etc/resolv.conf /etc/resolv.conf_bak

RAC GI安装,报"Task resolv.conf Integerity"验证失败-CSDN博客

3.支持配更多SCAN最多三个,这里只配了一个192.168.66.145 SCAN,忽略

PRVG-11368 : A SCAN is recommended to resolve to "3" or more IP addresses, but SCAN "oracle19c-rac-scan1" resolves to only "192.168.66.145"

4.19C RAC PRVG-11250 : “The check “RPM Package Manager database” was not performed”-CSDN博客

5.搭建rac时,DNS检查失败_verifying dns/nis name service ‘rac-scan’ ...faile-CSDN博客

Chat GPT

GPT归档,现在可以分享GPT提问链接了,因为是公司的服务器,所以就不透露详细的了,这里贴几个当时解惑的几个问题

脱敏事故提问 + Grid安装时的两个脚本的作用

https://chat.openai.com/share/3c9d02de-b6aa-4c97-a448-b856c2f013ef

dd 命令的格式
dd [选项]

dd 命令是一个用于复制和转换文件的工具,它可以从输入文件中读取数据,然后将数据写入到输出文件中,同时还支持对数据进行转换和处理。下面是一些常用的选项:

  • if=<输入文件>:指定输入文件的路径。如果未指定输入文件,默认从标准输入中读取。
  • of=<输出文件>:指定输出文件的路径。如果未指定输出文件,默认将数据写入到标准输出。
  • bs=<块大小>:指定每个数据块的大小,可以使用不同的单位,如字节(b)、千字节(k)、兆字节(m)等,默认为512字节。
  • count=<块数>:指定要复制或转换的数据块数量。
  • seek=<偏移块数>:在写入数据时跳过指定数量的块。
  • skip=<跳过块数>:在读取数据时跳过指定数量的块。
  • status=<信号>:指定进程状态报告的信号,默认为info,可以使用none禁用状态报告。
  • conv=<转换选项>:指定对数据进行的转换操作,常用的选项包括:
    • notrunc:在写入数据时不截断输出文件。
    • noerror:忽略读取或写入过程中的错误并继续进行操作。
    • sync:在每个块之间进行同步,以确保数据已写入磁盘。
  • iflag=<输入标志>:指定输入操作的标志,常用的标志包括direct(直接I/O操作)和sync(同步I/O操作)。
  • oflag=<输出标志>:指定输出操作的标志,常用的标志包括direct(直接I/O操作)和sync(同步I/O操作)。

如何清理干净磁盘头

清理磁盘头通常意味着擦除磁盘的前几个扇区(通常称为磁盘头),以确保没有任何旧数据残留。这可以通过多种方法来实现,其中一种常见的方法是使用 dd 命令。

以下是使用 dd 命令清理磁盘头的一种方法:

  1. 确认目标磁盘:首先,确保你选择了正确的目标磁盘。清理磁盘头将擦除磁盘的前几个扇区,所以确保你选择的是正确的磁盘,否则可能会导致数据丢失。
  2. 使用dd命令擦除磁盘头:执行以下命令来使用 dd 命令擦除磁盘头。在这个例子中,我们将使用 /dev/zero 设备来写入零值来擦除磁盘头。
sudo dd if=/dev/zero of=/dev/your_disk bs=512 count=100

其中:

    • if=/dev/zero:从 /dev/zero 设备读取零值。
    • of=/dev/your_disk:将数据写入到你选择的目标磁盘。
    • bs=512:每个数据块的大小为512字节,这是磁盘扇区的大小。
    • count=100:指定要写入的数据块数量。这里写入100个扇区,你可以根据需要调整这个值。
  1. 等待命令完成:命令执行完成后,等待一段时间以确保所有数据都已经被擦除。这可能会花费一些时间,具体取决于磁盘的大小和速度。
  2. 验证清理结果:完成后,你可以使用其他工具或命令来验证磁盘头是否已被成功擦除。例如,你可以使用 hexdump 命令来检查磁盘的前几个扇区是否都是零值。

这种方法能够相对彻底地擦除磁盘头,但请注意,即使是在擦除后,仍然有可能恢复部分数据,特别是在物理损坏的情况下。如果你对数据的安全性有更高的要求,你可能需要考虑使用专业的数据擦除工具。

每个磁盘扇区大小一样吗?

磁盘扇区大小不一定都相同,它可以因磁盘类型、制造商和规格而异。然而,在大多数情况下,磁盘扇区大小通常是512字节或4KB。

在过去,512字节的扇区大小是最常见的,它被广泛应用于许多旧的硬盘和存储设备。然而,随着技术的发展和新型存储设备的出现,现在越来越多的磁盘开始采用4KB的扇区大小,这被称为高级格式(Advanced Format)。

一些最新的硬盘甚至支持更大的扇区大小,如4096字节或更高,这种情况下,它们通常被称为物理扇区大小(Physical Sector Size)。

值得注意的是,虽然磁盘扇区大小可能不同,但操作系统和文件系统通常会将其视为逻辑扇区,以简化操作和管理。在操作系统中,你通常不需要关心磁盘的物理扇区大小,因为大多数操作系统和文件系统会自动处理这些细节。

这个和 dd if=/dev/zero of=/dev/asm-data2 bs=8k count=1000 有什么区别

这两个命令都是使用 dd 命令来向磁盘写入零值来清理数据,但有一些区别:

  1. 写入数据的量
    • 第一个命令 dd if=/dev/zero of=/dev/asm-data2 bs=4M 会向磁盘 /dev/asm-data2 写入零值,直到磁盘被填满或者遇到写入错误为止。这样会覆盖整个磁盘的所有扇区,从而清理掉全部数据。
    • 第二个命令 dd if=/dev/zero of=/dev/asm-data2 bs=8k count=1000 则只会向磁盘 /dev/asm-data2 写入零值,重复1000次。这样只会清理磁盘的前1000个8KB大小的数据块,而不会覆盖整个磁盘。
  1. 块大小
    • 第一个命令中使用的块大小是4MB(bs=4M),而第二个命令中使用的块大小是8KB(bs=8k)。块大小的选择会影响清理的效率,较大的块大小通常可以提高写入的速度。
  1. 数据覆盖程度
    • 第一个命令会覆盖整个磁盘,从而彻底清理掉所有数据,因为它会一直写入直到磁盘被填满或者遇到错误为止。
    • 第二个命令只会清理磁盘的前1000个8KB大小的数据块,因此清理的数据量较少,可能不足以覆盖所有的原始数据。

综上所述,第一个命令通常会更彻底地清理磁盘上的数据,而第二个命令可能只是部分清理,具体取决于磁盘的大小和所需的清理程度。

Virtual IP(虚拟IP)

Virtual IP是用于提供高可用性和故障切换的IP地址。它是一个虚拟的IP地址,可以在集群中的多个节点之间进行切换。当某个节点发生故障时,Virtual IP会自动切换到其他健康的节点上,以保证数据库服务的连续性。Virtual IP通常与VIP资源相关联,由Oracle Clusterware动态管理。这个坏了能继续装Grid 和 数据库吗

如果Virtual IP(虚拟IP)出现故障,通常不会影响Grid和数据库的安装,因为Virtual IP只是用于提供高可用性和故障切换的IP地址,它并不是Grid和数据库安装的必需组件。

Grid和数据库的安装通常会依赖于各种资源和配置,包括主机IP地址、网络连接、存储配置等,而不仅仅是Virtual IP。如果Virtual IP出现故障,系统可能会影响高可用性功能,但不会影响Grid和数据库的安装过程。

当Virtual IP出现故障时,可能会影响Oracle Clusterware的高可用性功能,导致无法实现自动故障切换和连续性保证。在这种情况下,可能需要手动修复Virtual IP或其他相关配置,以恢复集群的正常运行。

因此,即使Virtual IP出现故障,你仍然可以继续进行Grid和数据库的安装,但可能需要在后续步骤中解决Virtual IP的故障以确保系统的高可用性。

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

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

相关文章

python 调试 c++源码

1. gdb常用调试命令概览和说明 2. 编译c库设置Debug模式 cmake设置debug 在CMake中设置debug模式通常意味着启用调试信息和优化。以下是一个简单的CMakeLists.txt文件示例&#xff0c;展示了如何设置项目以便在Debug模式下构建&#xff1a; cmake_minimum_required(VERSION 3…

【WEEK9】 【DAY3】JSR303数据校验及多环境切换【中文版】

2024.4.24 Wednesday 目录 4.JSR303数据校验及多环境切换4.1.JSR303数据校验&#xff08;了解即可&#xff09;4.1.1.修改Person.java4.1.2.修改pom.xml&#xff08;添加依赖&#xff09;4.1.3.运行Springboot02ConfigApplicationTests.java进行测试4.1.4.使用数据校验&#x…

HotSpot JVM 中的应用程序/动态类数据共享

0.前言 本文的目的是详细讨论 HotSpot JVM 自 JDK 1.5 以来提供的一项功能&#xff0c;该功能可以减少启动时间&#xff0c;但如果在多个 JVM 之间共享相同的类数据共享 (CDS) 存档&#xff0c;则还可以减少内存占用。 1.类数据共享 (CDS) CDS 的想法是使用特定格式将预处理…

【氮化镓】液态Ga在GaN(0001)和(0001̅)表面上的三维有序排列随温度的变化

文章标题是《Temperature dependence of liquid-gallium ordering on the surface of epitaxially grown GaN》&#xff0c;作者是Takuo Sasaki等人&#xff0c;发表在《Applied Physics Express》上。文章主要研究了在分子束外延(MBE)条件下&#xff0c;液态镓(Ga)在GaN(0001)…

探索在Apache SeaTunnel上使用Hudi连接器,高效管理大数据的技术

Apache Hudi是一个数据湖处理框架&#xff0c;通过提供简单的方式来进行数据的插入、更新和删除操作&#xff0c;Hudi能够帮助数据工程师和科学家更高效地处理大数据&#xff0c;并支持实时查询。 支持的处理引擎 Spark Flink SeaTunnel Zeta 主要特性 批处理 流处理 精确一次性…

状态模式和策略模式对比

状态模式和策略模式都是行为型设计模式&#xff0c;它们的主要目标都是将变化的行为封装起来&#xff0c;使得程序更加灵活和可维护。之所以将状态模式和策略模式进行比较&#xff0c;主要是因为两个设计模式的类图相似度较高。但是&#xff0c;从状态模式和策略模式的应用场景…

2024最新版JavaScript逆向爬虫教程-------基础篇之深入JavaScript运行原理以及内存管理

目录 一、JavaScript运行原理1.1 前端需要掌握的三大技术1.2 为什么要学习JavaScript1.3 浏览器的工作原理1.4 浏览器的内核1.5 浏览器渲染过程1.6 认识JavaScript引擎1.7 V8引擎以及JavaScript的执行过程1.8 V8引擎执行过程 二、JavaScript的执行过程2.1 初始化全局对象2.2 执…

解决宏定义后面无法加分号

总结&#xff1a;注意是针对单行if语句使用&#xff0c;并且宏定义后面必须带分号&#xff08;格式统一&#xff09; 参考连接 C语言种do_while(0)的妙用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1vk4y1R7VJ/?spm_id_from333.337.search-card.all.click&vd_…

Excel数据处理:动态数据分析报表、单元格数字格式、使用排序工具

1、在生成数据透视表之后选中一个单元格&#xff0c;点击插入&#xff0c;在图表中选择一个自己想要的图表。&#xff08;生成可视化的图表&#xff09; 2、在分析中找到切片器&#xff0c;通过点击切片器可以即时变换生成不同的可视化图&#xff0c;可以右键切片器选择关联两个…

matlab 对数坐标画图,及在曲线上加竖直线

matlab 对数坐标画图 方法一&#xff1a;直接对x、y值取对数&#xff0c;然后画图 plot(log(x), log(y), m, LineWidth,1, Marker,.);% ,Color,#EDB120 方法二&#xff1a;将x、y轴刻度改为对数形式 plot(x, y, r, LineWidth,1, Marker,); ax gca();% 获取当前坐标句柄 ax…

解决Oracle锁表的方法

在实际工作中&#xff0c;并发量比较大的项目&#xff0c;经常会出现锁表的问题&#xff0c;下面我将复现这个问题&#xff0c;并给出解决方法。 一、问题复现 1、session1修改aabb表的B字段为迪迦奥特曼&#xff0c;但是不提交该事务。 2、session2也修改这行的这个字段。 发…

【stomp实战】搭建一套websocket推送平台

前面几个小节我们已经学习了stomp协议&#xff0c;了解了stomp客户端的用法&#xff0c;并且搭建了一个小的后台demo&#xff0c;前端页面通过html页面与后端服务建立WebSocket连接。发送消息给后端服务。后端服务将消息内容原样送回。通过这个demo我们学习了前端stomp客户端的…

【leetcode面试经典150题】71. 对称二叉树(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

科技改变视听4K 120HZ高刷新率的投影、电视、电影终有用武之地

早在1888年&#xff0c;法国生理学家埃蒂安朱尔马莱就发明了一套盒式摄像机&#xff0c;能以120帧/s的速度在一条纸膜上曝光照片&#xff0c;但是当时没有相匹配的放映设备。而马莱的另一套拍摄设备是60帧/s的规格&#xff0c;并且图像质量非常好。 受此启发&#xff0c;雷诺的…

Linux上部署Jupyter notebook

安装jupyter notebook pip install notebook #或者 conda install notebook配置 jupyter notebook --generate-config## The IP address the notebook server will listen on. # Default: localhost # 设置可以访问的ip, 默认是localhost, 将其改为 * c.NotebookApp.ip *#…

AutoGPT-Forge使用教程,自行构建agent智能体

本博客给出AutoGPT-forge四个教程的翻译与理解&#xff0c;使用GPT4翻译&#xff0c; 参考官方教程https://aiedge.medium.com/autogpt-forge-a-comprehensive-guide-to-your-first-steps-a1dfdf46e3b4 使用AutoGPT Github代码日期2024/4/22&#xff1b; 博客开始编辑日期20…

java和python刷题的一些语法规则总结(未完成)

语法总结 Java篇1、代码补全2、编程题中常用头文件3、编程题常用的内置方法4、模版 Python篇1、2、编程题中常用的头文件3、编程题中常用的内置方法4、伪代码模版 去哪练习&#xff1f; 1、LeetCode上有个面试模拟 2、牛客公司真题&#xff08;ACM模式&#xff09; ⚠️ 笔试均…

Android Gradle查看依赖库

1.gradle :app:dependencies 输出列表展示了所有configuration下的依赖树&#xff0c;依赖关系明显&#xff0c;层次清晰。 2.日志太长可以写入本地文件gradle :app:dependencies > D:/log.txt 3.gradlew processReleaseManifest --stacktrace 跟踪具体报错文件 注…

解决Android studio更换sdk地址后flutter项目显示no device selected

问题描述 因为之前sdk的路径在c盘上,经常在更新或下在sdk后c盘饱满,于是就更换了sdk的路径,更换sdk路径后就导致flutter项目在选择设备的时候出现no device selected 找不到设备,但是在device Manager可以看到物理设备或者是虚拟设备。如下图所示。 问题分析 导致这个问题…

python 报错:ImportError: cannot import name ‘kaiser‘ from ‘scipy.signal‘

python 报错&#xff1a;ImportError: cannot import name kaiser from scipy.signal 介绍第一步&#xff1a;第二步&#xff1a;最终结果&#xff1a; 介绍 这个错误表明在导入 scipy.signal 模块时出现了问题&#xff0c;因为无法找到 kaiser 函数。可能的原因是 scipy 库没有…