oracle 19c rac 磁盘误删除卷组不能挂载

oracle 19c rac 磁盘误删除卷组不能挂载
最新回答
三天三夜,三斤作业

2024-03-17 08:48:49

在Oracle 19c RAC环境中,磁盘误删除导致卷组无法挂载时,需根据具体场景(如OCR磁盘组丢失、密码文件指向错误或磁盘组状态异常)针对性处理,核心步骤包括检查磁盘状态、修复配置或恢复数据。

一、OCR磁盘组丢失磁盘的处理

若OCR磁盘组中某磁盘被标记为_DROPPED_(如RAC19C_OCR_0001故障组磁盘丢失),需优先检查多路径设备状态。通过ASM命令lsdsk -kG <磁盘组名>确认磁盘是否仍被系统识别,并区分是共享存储故障(如存储阵列问题)还是单个节点配置错误(如多路径映射异常)。若磁盘物理存在但逻辑丢失,可尝试重新扫描存储设备(如Linux下执行echo "- - -" > /sys/class/scsi_host/host*/scan),或联系存储管理员恢复磁盘映射。

二、更换OCR磁盘组后的认证问题

若强制删除原OCR磁盘组(如+GRID)并更换为新组(如+DG_GRID),可能导致集群CRSD服务启动失败,错误日志显示ORA-15001(磁盘组不存在)及ORA-01017(无效用户名/密码)。此问题源于ASM密码文件仍指向已删除的磁盘组路径。需通过orapwd命令生成新密码文件(如orapwd file=$ORACLE_HOME/dbs/orapw+DG_GRID password=<密码> entries=5),并修改ASM实例的SPFILE参数(如*.asm_passwordfile='+DG_GRID'),确保密码文件路径与新磁盘组一致。

三、磁盘组状态查询与恢复

通过SQL查询select GROUP_NUMBER,NAME,STATE from v$asm_diskgroup确认剩余磁盘组状态。若磁盘组被误删除但数据未被覆盖,需结合存储层操作恢复:

  1. 从备份恢复:若存在ASM磁盘组备份(如RMAN备份或存储快照),可通过ALTER DISKGROUP <磁盘组名> RESTORE命令还原。
  2. 手动重建磁盘组:若无备份但磁盘物理存在,可尝试重新创建磁盘组(如CREATE DISKGROUP DG_NEW EXTERNAL REDUNDANCY DISK '/dev/sd*'),但需确保磁盘未被其他系统占用。
  3. 联系专业支持:若数据覆盖或存储层损坏,需联系Oracle支持或存储厂商进行数据恢复。
四、关键日志分析

处理过程中需结合日志定位问题根源:

  • ASM日志:检查alertasm.log中的磁盘扫描、挂载错误(如ORA-15032、ORA-15041)。
  • 集群日志:分析crsd.trc中的服务启动失败原因(如资源依赖关系错误)。
  • 操作系统日志:查看/var/log/messages或dmesg中的存储设备识别异常。

总结:处理此类故障需优先确认磁盘物理状态,再根据场景修复配置(如密码文件、多路径映射)或恢复数据(从备份或存储层)。操作前建议备份关键配置文件(如SPFILE、密码文件),并在测试环境验证步骤可行性。