ORACLE RAC ASM磁盘组OFFLINE后的处理步骤

近期某客户的备机数据库集群ASM磁盘出现问题,数据库系统异常关闭。对问题进行排查,可以发现问题是存储磁盘出现了IO问题后OFFLINE,从而导致磁盘组也OFFLINE。由于系统是备机,发现时已经过去了较长时间,多余NORMAL冗余(或者双活的存储配置)来说,超过REPAIR TIME的断开需要在加回ASM磁盘组时重新同步。

如下是整个分析及处理过程:
1、检查磁盘状态

SQL> select NAME,GROUP_NUMBER,TYPE,state from v$asm_diskgroup;

NAME
--------------------------------------------------------------------------------
GROUP_NUMBER TYPE               STATE
------------ ------------------ ---------------------------------
test_DBDATA
           0                    DISMOUNTED

test_OCR
           2 NORMAL             MOUNTED

2、尝试MOUNT磁盘组的报错

SQL> alter diskgroup all mount;
alter diskgroup all mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "2" is missing from group number "1"
ORA-15042: ASM disk "1" is missing from group number "1"
ORA-15017: diskgroup "test_OCR" cannot be mounted
ORA-15013: diskgroup "test_OCR" is already mounted


SQL> ALTER DISKGROUP test_DBDATA MOUNT ;
ALTER DISKGROUP test_DBDATA MOUNT
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "2" is missing from group number "1"
ORA-15042: ASM disk "1" is missing from group number "1"

3、检查当前的ASM磁盘情况(注意此命令是动态查看磁盘,如果磁盘现在丢失不显示,就不体现在输出,也就是看到的盘的数量,和正常运行时可能不一样,需要注意。)

SQL> set linesize 200 pagesize 200
SQL> col name for a20
SQL> col path for a30
SQL> col HEADER_STATUS for a12
SQL> select NAME,GROUP_NUMBER,HEADER_STATUS,PATH from V$ASM_DISK order by 2,4;

NAME                 GROUP_NUMBER HEADER_STATU PATH
-------------------- ------------ ------------ ------------------------------
                                0 MEMBER       /dev/raw/raw6
                                0 MEMBER       /dev/raw/raw7
                                0 MEMBER       /dev/raw/raw8
test_OCR_0001                    2 MEMBER       /dev/raw/raw5
test_OCR_0002                    2 MEMBER       /dev/raw/raw9
_DROPPED_0000_test_OC            2 UNKNOWN

4、操作系统日志查看磁盘故障日志

ul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
Jul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] CDB: Write(10): 2a 00 08 9a 05 1c 00 00 01 00
Jul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] Unhandled error code
Jul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
Jul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] CDB: Write(10): 2a 00 08 9a 05 1a 00 00 02 00
Jul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] Unhandled error code
Jul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
Jul 25 13:26:48 test1 kernel: sd 2:0:1:1: [sdac] CDB: Write(10): 2a 00 08 9a 05 19 00 00 01 00
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 144311575
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 929664
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 927744
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 1133312
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 1133056
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 930816
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 929792
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 4146944
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 4146688
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 1134464
Jul 25 13:26:48 test1 kernel: sd 2:0:1:2: rejecting I/O to offline device
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 7267456
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 7274992
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 144311573
Jul 25 13:26:48 test1 kernel: end_request: I/O error, dev sdac, sector 144311571

5、查看和修复ASM磁盘

[root@test1 rules.d]# cat 60-raw.rules
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360060160076042009e3fff15cc1de711", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36006016007604200e69910facb1de711", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36006016007604200e4f075cdcb1de711", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360060160076042009bc20b31cc1de711", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360060160068044001b35a19bd01de711", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36006016006804400818e5d63d01de711", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360060160068044000b4a946ed01de711", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36006016006804400ebb2b17cd01de711", RUN+="/bin/raw /dev/raw/raw8 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360060160068044003f43ddb3851fe711", RUN+="/bin/raw /dev/raw/raw9 %N"
KERNEL=="raw[1-9]", OWNER="grid", GROUP="asmadmin", MODE="660"


[root@test1 rules.d]# start_udev
Starting udev:                                             [  OK  ]
[root@test1 rules.d]# ls -al /dev/raw/raw*
crw-rw---- 1 grid asmadmin 162, 1 Jul 25 17:23 /dev/raw/raw1
crw-rw---- 1 grid asmadmin 162, 2 Jul 25 17:23 /dev/raw/raw2
crw-rw---- 1 grid asmadmin 162, 3 Jul 25 17:23 /dev/raw/raw3
crw-rw---- 1 grid asmadmin 162, 4 Jul 25 17:23 /dev/raw/raw4
crw-rw---- 1 grid asmadmin 162, 5 Jul 25 17:23 /dev/raw/raw5
crw-rw---- 1 grid asmadmin 162, 6 Jul 25 17:23 /dev/raw/raw6
crw-rw---- 1 grid asmadmin 162, 7 Jul 25 17:23 /dev/raw/raw7
crw-rw---- 1 grid asmadmin 162, 8 Jul 25 17:23 /dev/raw/raw8
crw-rw---- 1 grid asmadmin 162, 9 Jul 25 17:23 /dev/raw/raw9
crw-rw---- 1 root disk     162, 0 Jul 25 17:23 /dev/raw/rawctl

6、查看磁盘并MOUNT磁盘组(此时可以看到全部ASM需要用的磁盘)

SQL> select NAME,GROUP_NUMBER,HEADER_STATUS,PATH from V$ASM_DISK order by 2,4;

NAME                 GROUP_NUMBER HEADER_STATU PATH
-------------------- ------------ ------------ ------------------------------
                                0 MEMBER       /dev/raw/raw1
                                0 MEMBER       /dev/raw/raw2
                                0 MEMBER       /dev/raw/raw3
                                0 MEMBER       /dev/raw/raw4
                                0 MEMBER       /dev/raw/raw6
                                0 MEMBER       /dev/raw/raw7
                                0 MEMBER       /dev/raw/raw8
test_OCR_0001                    2 MEMBER       /dev/raw/raw5
test_OCR_0002                    2 MEMBER       /dev/raw/raw9
_DROPPED_0000_test_OCR            2 UNKNOWN

MOUNT磁盘组,此时对于DATA磁盘组,整个UMOUNT,此时MOUNT就行:

SQL> ALTER DISKGROUP test_DBDATA MOUNT ;

Diskgroup altered.
对于OCR磁盘组,为NORMAL模式,部分盘OFFLINE,此时加回来就提升报错(参数不支持):

SQL> ALTER DISKGROUP test_OCR ONLINE DISKS   IN FAILGROUP test_OCR_0000 NOWAIT;
ALTER DISKGROUP test_OCR ONLINE DISKS   IN FAILGROUP test_OCR_0000 NOWAIT
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15283: ASM operation requires compatible.rdbms of 11.1.0.0.0 or higher

需要强制加回来:

SQL> alter diskgroup test_OCR add disk '/dev/raw/raw4' force;  

Diskgroup altered.

也再次提升,双活存储时需要设置compatible.rdbms参数及disk_repair_time参数,来应对这种盘OFFLINE问题。

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

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

相关文章

【核武器】2024 年美国核武器-20240507

2024年5月7日,《原子科学家公报》发布了最新版的2024美国核武器手册 Hans M. Kristensen, Matt Korda, Eliana Johns, and Mackenzie Knight, United States nuclear weapons, 2024, Bulletin of the Atomic Scientists, 80:3, 182-208, DOI: https://doi.org/10.1080/00963…

有Python 2和3,但只给Python 2安装模块

系统中同时安装了Python 2和Python 3,并且你想要为Python 2的pip安装pytz,你需要确保使用Python 2的pip版本来执行安装命令。通常,Python 2的pip可以通过pip2命令来调用。以下是详细步骤: 首先,你需要确认系统中安装了…

Pandas数据取值与选择

文章目录 第1关:Series数据选择第2关:DataFrame数据选择方法 第1关:Series数据选择 编程要求 本关的编程任务是补全右侧上部代码编辑区内的相应代码,要求实现如下功能: 添加一行数据,时间戳2019-01-29值为…

【问题分析】锁屏界面调起google语音助手后壁纸不可见【Android 14】

1 问题描述 为系统和锁屏分别设置两张不同的壁纸,然后在锁屏界面长按Power调起google语音助手后,有时候会出现壁纸不可见的情况,如以下截图所示: 有的时候又是正常的,但显示的也是系统壁纸,并非是锁屏壁纸…

Android system property运作流程源码分析

一.序 前文分析了build.prop这个系统属性文件的生成,每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性&#x…

初装byzer notebook,启动错误

原因是jdk版本不对 (base) gw00241401gw00241401-pc:/data/tools/byzer-notebook$ sudo update-alternatives --config java There are 4 choices for the alternative java (providing /usr/bin/java). Selection Path Priori…

傻傻分不清楚:JDK/JRE/JVM的区别和联系

在Java开发的世界里,JDK、JRE和JVM是三个经常听到的术语。 对于初学者来说,它们的概念和区别可能会让人感到困惑。 这篇文章详细解释下三个组件的含义、它们之间的区别和联系。 一,JDK:Java Development Kit JDK是Java开发工具…

vi 和 vim的基本使用

vi 和 vim的基本使用 1. vi 和 vim介绍 vi 和 vim 都是Unix和类Unix系统中的文本编辑器。vi 是一个非常早期的屏幕编辑器,而 vim(通常被认为是“VI iMproved”的缩写)是一个基于 vi 但提供了更多改进和额外功能的文本编辑器。 vi vi 是一…

MOS管栅极驱动自举电路设计

自举式驱动电路工作原理 自举式电路在高电压栅极驱动电路中是很有用的,其工作原理如下: 当 VS 降低到 IC 电源电压 VDD以下(至少要比VDD低一个二极管压降) 或下拉至地时 (低端开关导通,高端开关关断),电源 VDD 通过自举电阻RBOOT,和自举二极管DBOOT,对自举电容CBOOT…

一套pacs医学影像存档与通讯系统源码 PACS系统的起源、趋势、工作流程

PACS系统的起源 医学影像信息系统最初是从处理放射科的数字图像发展起来的。医学影像信息系统的前身是医学影像存档与通信系统(PACS,Picture Archiving & Communication System),最先推动PACS发展的动力来自于传统的相机厂家…

【已解决】QT C++中QLineEdit不可粘贴输入

本博文源于生产实际,主要解决LineEdit不可粘贴输入的情况。下面将进行具体分析 问题来源 输入框只能一个个输入,不可复制粘贴。 分析 给QLineEdit装一个监听事件,监听它的事件即可。 问题解决步骤 问题一共分为三步: 书写监…

C++反汇编——多态,面试题01

文章目录 1.C的三大特性1.1封装1.2继承1.3多态1.3.1 虚函数1.3.2 多态代码反汇编分析。反汇编分析1——基类指针指向子类对象,构造过程。反汇编分析2——基类指针指向子类对象,调用虚函数getPrice()过程。反汇编分析3——基类对象,调用虚函数…

electron-vite工具打包后通过内置配置文件动态修改接口地址实现方法

系列文章目录 electronvitevue3 快速入门教程 文章目录 系列文章目录前言一、实现过程二、代码演示1.resources/env.json2.App.vue3.main/index.js4.request.js5.安装后修改 前言 使用electron-vite 工具开发项目打包完后每次要改接口地址都要重新打包,对于多环境…

思维导图如何用AI生成?借助这几款工具

思维导图如何用AI生成?在数字化时代,思维导图作为一种高效的信息组织与展示工具,被广泛应用于学习、工作和项目管理中。随着人工智能技术的飞速发展,AI生成思维导图已成为现实,极大地提升了创建思维导图的效率和创意。…

翻译《The Old New Thing》 - Restating the obvious about the WM_COMMAND message

Restating the obvious about the WM_COMMAND message - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20060302-10/?p32093 Raymond Chen 2006年03月02日 关于 WM_COMMAND 消息的显而易见的知识点补充 简要 本文详细解释了 WM_COMMAND 消息…

Django 静态文件管理与部署指南

title: Django 静态文件管理与部署指南 date: 2024/5/10 17:38:36 updated: 2024/5/10 17:38:36 categories: 后端开发 tags: WebOptCDN加速DjangoCompressWebpackStaticDeployCICD-ToolsSecStatic 第一章:介绍 Django 静态文件的概念和重要性 在 Web 开发中&a…

算法-靠谱的车

import java.util.*; public class Main{public static void main(String[] args){Scanner innew Scanner(System.in);int nin.nextInt(),copyn;// 取每一位上的数放入数组List<Integer> listnew ArrayList<>();while(n!0){int resn%10;list.add(0,res);n/10;}// 转…

Linux diff命令(比较两个文件或目录的内容差异)

文章目录 Linux diff 命令详解教程基本用法比较文件输出解释 递归比较&#xff08;-r&#xff09;示例代码 控制输出格式统一格式&#xff08;-u&#xff09;上下文格式&#xff08;-c&#xff09; 高级选项忽略所有空白差异&#xff08;-w&#xff09;仅报告文件是否不同 Linu…

如何通过AI技术提升内容生产的效率和质量

如何利用AI提高内容生产效率? 利用人工智能&#xff08;AI&#xff09;技术提高内容生产效率和质量&#xff0c;可以从以下几个关键方面入手&#xff1a; 1. 智能内容策划与选题 数据分析&#xff1a;AI能够分析用户行为数据、市场趋势、竞争对手策略等&#xff0c;帮助内容…

纯 CSS 实现标签自动显示超出数量

现代 CSS 强大的令人难以置信。 这次我们来用 CSS 实现这样一个功能&#xff1a;有多个宽度不同的标签水平排列&#xff0c;当外层宽度不足时&#xff0c;会提示超出的数量&#xff0c;演示效果如下 如果让我用 JavaScript来实现估计都有点折腾&#xff0c;毕竟宽度都是动态的…