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

从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.mzph.cn/bicheng/52117.shtml

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

相关文章

【html+css 绚丽Loading】 - 000009 五行逆流珠

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f495…

[000-01-018].第3节:Linux环境下ElasticSearch环境搭建

我的后端学习笔记大纲 我的ElasticSearch学习大纲 1.Linux系统搭建ES环境: 1.1.单机版: a.安装ES-7.8版本 1.下载ES: 2.上传与解压:将下载的tar包上传到服务器software目录下,然后解压缩:tar -zxvf elasticsearch-7…

Excel求和方法之

一 SUM(),选择要相加的数,回车即可 二 上面的方法还不够快。用下面这个 就成功了 三 还有一种一样快的 选中之后,按下Alt键和键(即Alt)

深度学习------------------卷积神经网络(LeNet)

目录 LeNet网络手写的数字识别MNIST总结卷积神经网络(LeNet) 问题 LeNet网络 手写的数字识别 MNIST ①输入的是:3232的image ②放到一个55的卷积层里面(为什么是5?因为32-x128,∴x5)&#xff0c…

计算机毕业设计PySpark+Flask bilibili弹幕情感分析 B站视频数据可视化 B站爬虫 机器学习 深度学习 NLP自然语言处理 大数据毕业设计

### 开题报告:基于PySpark和Flask的B站弹幕情感分析系统 #### 一、研究背景 在网络视频平台的用户互动中,弹幕(Danmaku)作为一种实时评论的形式,已经成为观众表达观点和情感的重要方式。尤其是在B站(哔哩…

MySQL 数据库管理

在 MySQL 中,数据库管理是非常基础但又至关重要的技能。无论是创建新的数据库、选择当前使用的数据库,还是查看数据库的相关信息,这些操作都是日常数据库管理中不可或缺的一部分。本文将详细介绍 MySQL 数据库管理的基本操作,包括…

Go Roadmap-Basics中文笔记

Go Roadmap-Basics 地址:https://roadmap.sh/golang 简介:Github star No.6 学习路线 Go 中译版 Learn the Basics Go特点:静态类型,运行速度快,编译语言,编译速度快,自动垃圾回收&#xff…

【GH】【EXCEL】P4: Chart

文章目录 data and chartdonut chart (radial chart)Radial Chart bar chartBar Chart line chartLine Chart Scatter ChartScatter Chart Surface ChartSurface Chart Chart DecoratorsChart Decorators Chart GraphicsChart Graphics data and chart donut chart (radial cha…

C语言04--数组超详解

1.基本概念 逻辑:一次性定义多个相同类型的变量,并存储到一片连续的内存中语法: 数据类型 数组名字 [ 数据的量 ] ; 示例: int a[5]; int Num ; 语法释义: a 是数组名,即这片连续内存的名称[5] …

一文入门:使用 Python的requests 库

简介 requests 是 Python 中一个简单易用的 HTTP 库,用于发送各种 HTTP 请求。它建立在 Python 标准库 urllib 之上,提供了更人性化的接口。 安装 requests 库 在开始之前,确保你已经安装了 requests 库。如果还没有安装,可以通…

基于WEB的旅游推荐系统设计与实现

TOC springboot280基于WEB的旅游推荐系统设计与实现 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔…

(七)Flink Watermark

Flink 的 Watermark 是用来标识数据流中的一个时间点。Watermark 的设计是为了解决乱序数据处理的问题,尤其是涉及到多个分区的 Kafka 消费者时。在 Watermark 的作用下,即使某些数据出现了延迟到达的情况,也不会导致整个处理流程的中断。此外,Watermark 还能防止过期的数据…

五、2 移位操作符赋值操作符

1、移位操作符 2、赋值操作符 “ ”赋值,“ ”判断是否相等 1)连续赋值 2)复合赋值符

驾驭时间之舟:SQL中时序数据处理的深度探索

标题:驾驭时间之舟:SQL中时序数据处理的深度探索 在数据的长河中,时间序列数据以其独特的流动性和连续性,记录着世界的每一次脉动。SQL作为数据查询的通用语言,在处理时序数据时,也展现出了其独特的魅力和…

VS Code开发C#(.NET)之快速入门

本篇快速介绍在VS Code中开发C#的完整说明和示例: 环境准备 安装VS Code: 前往Visual Studio Code官网 下载并安装VS Code。 安装.NET SDK: C#是基于.NET框架的,因此需要安装 .NET SDK。 前往 .NET官网 下载并安装适用于操…

每天一个数据分析题(四百九十一)- 主成分分析与因子分析

因子载荷矩阵是主成分载荷矩阵()的结果 A. 最小方差斜交旋转 B. 最大方差斜交旋转 C. 最小方差正交旋转 D. 最大方差正交旋转 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖…

成为Python砖家(4): 装饰器的简单理解

第一次理解 Python 中的装饰器(decorator),是Python中一个非常强大的工具,它是一个返回函数的函数。 上面这个定义很简洁,但是没说清楚。 第二次理解 装饰器,是一个接收函数 func、返回封装后的函数 wr…

编译器揭秘

从上世纪50年代开始,编程语言五花八门,编译器和解释器层出不穷。此处只列出常见编程语言的编译器和解释器信息,不常见的编程语言有单独文章介绍。 C/C cc 此处代表Unix C编译器,其他平台可能借用cc软链接到真正的C编译器。MSVC 微…

【生日视频制作】路虎劳斯莱斯中控改名字AE模板修改文字软件生成器教程特效素材【AE模板】

路虎劳斯莱斯中控改名字生日视频制作教程AE模板改文字软件特效 怎么如何做的【生日视频制作】路虎劳斯莱斯中控改名字AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频

Element-UI Table实现列表筛选数据及列表嵌套选择框

VUE 框架在 Element UI 的基础上,Table 组件中实现了列表数据的修改功能,支持单选和多选功能,并且列表具备筛选功能。样式如图所示。 功能介绍 点击table列名实现筛选查询功能相关性判断点击列表中的正方形实现选择框功能,同时修…