ASM实例的SPILE 存储在ASM的磁盘组上时,集群要如何去获取SPFILE并启动ASM实例?(1)

news2024/12/31 3:34:30

从11g R2 开始,ASM spfile 会自动存储在安装集群软件时创建的第一个磁盘组中,一般为OCR磁盘组。
由于投票盘/OCR 存储在 ASM 上,因此需要在节点上启动 ASM。要启动 ASM,需要其 SPFILE 。但 SPFILE 仅位于 ASM 磁盘组上。集群是如何解决这个问题呢?

  • 当 Oracle Clusterware 集群的节点重新启动时,OHASD 将通过特定于平台的方式启动。OHASD 访问存储在本地文件系统上的 OLR(Oracle 本地注册表),以获取完成 OHASD 初始化所需的数据
  • OHASD 调出 GPNPD 和 CSSD。CSSD 访问存储在本地文件系统上的 GPNP 配置文件,其中包含以下重要的引导数据;
    1. ASM_DISKSTRING参数(如果指定)以查找配置了 ASM 磁盘的磁盘。
    2. ASM SPFILE 位置:包含 ASM spfile 的磁盘组的名称.
    3. 投票文件的位置 : ASM– CSSD 扫描所有 ASM 磁盘的标头(如 GPnP 配置文件中的ASM_DISKSTRING所示)以识别包含投票文件的磁盘。使用 ASM 磁盘头中的指针,CSSD 可以访问 ASM 磁盘上的投票文件位置,并且 CSSD 能够完成初始化并启动或加入现有集群。

要在 ASM 实例启动期间读取 ASM spfile,无需打开磁盘组。访问数据所需的所有信息都存储在设备的头部中。OHASD 读取包含 ASM SPfile 的 ASM 磁盘的标头(从 GPnP 配置文件读取),并使用磁盘标头中的指针读取 ASM spfile 的内容。此后,将启动 ASM 实例。
– 在 ASM 实例运行并挂载其磁盘组的情况下,CRSD 可以访问 Clusterware 的 OCR。
– OHASD 通过访问 ASM 磁盘组中的 OCR 来启动 CRSD。
– Clusterware完成初始化并启动其控制下的其他服务。

根据上述流程进行Spfile文件的获取:

第一步 通过gpnp配置文件找出ASM Spfile的位置
gpnptool get |grep ASM-Profile
--获取到以下信息
ASM-Profile id="asm" DiscoveryString="/dev/mapper/*" SPFile="+OCR_VOTE/rac-cluster/asmparameterfile/registry.253.1088942297"

找出ASM磁盘组对应的磁盘列表

[grid@rac01 ~]$ asmcmd lsdsk -G OCR_VOTE
---------------------------------
Path
/dev/mapper/ocr_vote01
/dev/mapper/ocr_vote02
/dev/mapper/ocr_vote03
[grid@rac01 ~]$ ll /dev/mapper/ocr_vote*
lrwxrwxrwx 1 root root 7 Jun 10 10:48 /dev/mapper/ocr_vote01 -> ../dm-2
lrwxrwxrwx 1 root root 7 Jun 10 10:48 /dev/mapper/ocr_vote02 -> ../dm-3
lrwxrwxrwx 1 root root 7 Jun 10 10:48 /dev/mapper/ocr_vote03 -> ../dm-4


第二步 扫描磁盘的盘头
[root@RAC01 ~]# kfed read /dev/dm2 | grep -E 'spf|ausize'
kfdhdb.ausize:                  4194304 ; 0x0bc: 0x00400000
kfdhdb.spfile:                       27 ; 0x0f4: 0x0000001b
kfdhdb.spfflg:                        1 ; 0x0f8: 0x00000001
[root@RAC01 ~]# kfed read /dev/dm3 | grep -E 'spf|ausize'
kfdhdb.ausize:                  4194304 ; 0x0bc: 0x00400000
kfdhdb.spfile:                        0 ; 0x0f4: 0x00000000
kfdhdb.spfflg:                        0 ; 0x0f8: 0x00000000
[root@RAC01 ~]# kfed read /dev/dm4 | grep -E 'spf|ausize'
kfdhdb.ausize:                  4194304 ; 0x0bc: 0x00400000
kfdhdb.spfile:                        0 ; 0x0f4: 0x00000000
kfdhdb.spfflg:                        0 ; 0x0f8: 0x00000000

可以看到/dev/dm2中包含ASM Spfile (spfflg=1) 位置从磁盘offest 27(spfile 28)开始,AU大小4M(ausize 4194304).

从磁盘内将ASM Spfile 转储出来

[root@rac2 ~]#dd if=/dev/dm2 of=spfileASM_Copy.ora skip=27  bs=4M count=1
1+0 records in
1+0 records out
4194304 bytes (4.2 MB) copied, 0.0594547 s, 70.5 MB/s

[root@rac2 ~]# strings spfileASM_Copy.ora
+ASM1.__asm_max_connected_clients=5
+ASM1.__oracle_base='/oracle/gridbase'#ORACLE_BASE set from in memory value
+ASM2.__oracle_base='/oracle/gridbase'#ORACLE_BASE set from in memory value
*.asm_diskgroups='DATA'#Manual Mount
*.asm_diskstring='/dev/asm-*'
*.asm_power_limit=1
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'

相同的办法也可以获取到OCR File

扫描votedisk的盘头
[root@rac2 ~]# kfed read /dev/asm-diskc | grep -E 'vf'
kfdhdb.vfstart:                      56 ; 0x0ec: 0x00000038
kfdhdb.vfend:                        64 ; 0x0f0: 0x00000040
[root@rac2 ~]# kfed read /dev/asm-diskd | grep -E 'vf'
kfdhdb.vfstart:                      64 ; 0x0ec: 0x00000040
kfdhdb.vfend:                        72 ; 0x0f0: 0x00000048
[root@rac2 ~]# kfed read /dev/asm-diske | grep -E 'vf'
kfdhdb.vfstart:                      56 ; 0x0ec: 0x00000038
kfdhdb.vfend:                        64 ; 0x0f0: 0x00000040

所以集群可以通过这种方式获取到ASM磁盘内的文件,所以通过这个操作还能获取到哪些东西呢?后续继续探索。

请添加图片描述

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

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

相关文章

融合创新趋势:Web3时代的跨界融合

随着互联网技术的飞速发展,Web3时代的到来正引领着一场深刻的技术与社会变革。Web3,作为下一代互联网技术的代表,不仅仅是一种技术创新,更是一种跨界融合的趋势。通过去中心化、智能合约和区块链技术的应用,Web3正在重…

大模型心高气傲,没有AI Agents生死难料

前言 AI Agent,正在接棒大语言模型LLM,成为AI圈最火的话题。 目前,AI创投圈的众生相,大概是这样的: 大厂俱乐部:OpenAI内部员工声称,AI Agent是OpenAI的新方向;微软尝试推动copil…

解锁高效办公新姿势:SSO单点登录+企业网盘完美搭配

在现代互联网环境中,随着企业业务的不断扩展,多系统、多应用的集成成为常态。为了提升用户体验,减少用户在不同系统间切换的繁琐,单点登录(SSO, Single Sign-On)技术应运而生。 本文将详细介绍SSO单点登录的…

NRK3301语音识别芯片在头戴式照明灯上的应用的方案

在现代社会,头戴式照明灯在各个领域发挥着重要作用,如户外探险、工业作业、夜间骑行等。为了提高这类产品的便捷性和安全性,我们采用了NRK3301语音识别芯片,并将其应用于头戴式照明灯中。这一创新应用使用户能够通过语音指令控制灯…

Browserless 网页抓取:在 Selenium 中使用 NodeJs

Selenium 是否有效? Selenium 是一个流行的开源网页自动化框架,主要用于浏览器测试自动化。此外,它也可以用来解决动态网页抓取问题。 Selenium 有三个主要组件: Selenium IDE:一个浏览器插件,提供了一种…

「JVS更新日志」逻辑引擎、智能BI、规则引擎8.20功能更新说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架,主要解决企业信息化项目交付难、实施效率低、开发成本高的问题,采用微服务配置化的方式,提供了 低代码数据分析物联网的核心能力产品,并构建了协同办公、企业常用的管理工具等&am…

单域名SSL证书申请三步法

申请单域名SSL证书,确保您的网站安全可信,只需简单三步: 选择证书类型与提供商:首先,确定您需要的单域名SSL证书类型,如DV(域名验证)证书。接着,选择一个信誉良好的证书提…

笔记-系统规划与管理师-案例题-2022年-服务规划设计

【说明】 某跨国公司新聘小唐为系统规划管理师来帮助提升中国区总部的IT服务水平,中国区的IT系统尚在设计阶段,小唐需根据已经识别的服务需求及设定的服务级别,进行资源配置,以确保服务团队满足与业务团队约定的当前及未来的IT服务…

Grafana指标汉化攻略:轻松实现中文可视化

1、Grafana解压 目录(grafana-v11.1.3) 进入到\conf 2、找到:defaults.ini 3、打开defaults.ini ,搜索:en-US 4、注释掉default_language en-US # Default UI language (supported IETF language tag, such as en…

吐血整理,最全论文指令手册,还有 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】

今天给大家分享下论文润色、降重、写作的GPT指令提示词,按论文步骤整理 让你的文章更加有逻辑且通顺,助力快速完成论文,相信对你有帮助~ 一、论文写作润色指令 1、写作选题指令 ① 确定研究对象 我是一名【XXXXX】,请从以下素…

新书上架 | 《智能计算系统:从深度学习到大模型(第2版)》重磅上市!

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

多元统计分析——基于R的笔记本电脑价格与参数可视化

注:能力有限,存在不足之处。 现如今,笔记本电脑现在已经成为了我们日常生活中所必备的一种工具,使用笔记本既可以为我们在学习上带来便利也可以在为我们在工作上带来便利,但是笔记本的价格与许多参数有关,因…

构建个人编程学习的知识宝库:高效笔记记录与整理策略

文章目录 每日一句正能量前言笔记工具选择笔记结构设计实践与复习策略后记 每日一句正能量 人生之美,不在争求,而在静守。只愿此心:一世清宁,安然盛开! 前言 在编程的广阔天地中,我们如同探险者&#xff0…

Stable Diffusion最强插件ControlNet简介

前言 随着人工智能技术的飞速发展,图像生成已经成为了一个热门领域。在这其中,Stable Diffusion插件ControlNet凭借其创新的技术和强大的功能,获得了一致好评。 所有的AI设计工具,模型和插件,都已经整理好了&#xff…

SpringBoot笔记01

第1章 Spring Boot概要 1.1 SpringBoot介绍 随着动态语言的流行(Ruby、Scala、Node.js), Java的开发显得格外的笨重;繁多的配置、低下的开 发效率、复杂的部署流程以及第三方技术整合难度大。 在上述环境下,Spring Boot由此诞生…

《Techporters架构搭建》-Day06 Springboot国际化

Springboot国际化 什么是国际化?为什么使用国际化?国际化细分国际化相关知识Locale对象MessageSource接口LocaleResolver接口国际化文件 国际化一般实现国际化改进版框架中国际化 源码地址:请看day06 什么是国际化? 国际化&#…

Ubuntu24.04用C++ Connector连接MySQL数据库

首先安装MySQL官方提供的C Connector库。 sudo apt-get install libmysqlcppconn-dev 然后找一个目录&#xff0c;建立一个main.cpp文件。 #include <iostream> #include <mysql_driver.h> #include <mysql_connection.h> #include <cppconn/statemen…

vscode提升:JSON 中不允许有注释

解决方案 &#xff1a; 运行&#xff1a; json with comment 参考链接&#xff1a; https://blog.csdn.net/eqizhihui/article/details/134014010 人工智能学习网站 https://chat.xutongbao.top

逆变器的防孤岛测试基础知识

防孤岛测试是逆变器并网前的重要测试项目&#xff0c;主要用于验证并网发电系统在电网断电的情况下&#xff0c;能否快速、准确地检测到电网的失电状态&#xff0c;并在规定的时间内停止向电网输送电能&#xff0c;以防止电力系统出现孤岛效应。 孤岛效应是指当电网因故障或停电…

Chainlit接入FastGpt接口快速实现自定义用户聊天界面

前言 由于fastgpt只提供了一个分享用的网页应用&#xff0c;网页访问地址没法自定义&#xff0c;虽然可以接入NextWeb/ChatGPT web等开源应用。但是如果我们想直接给客户应用&#xff0c;还需要客户去设置配置&#xff0c;里面还有很多我们不想展示给客户的东西怎么办&#xf…