环境说明:

DB:Oracle 11g RAC
OS:Redhat7.6

操作:

Redhat7.6系统上安装Oracle11gRAC。

问题现象:

当在第一个节点执行root.sh时,报错如下:
Disk Group XXX_CJCDB_OCR creation failed with the following message:
ORA-15018:diskgroup cannot be created
ORA-15020:discoverd duplicate ASM disk "XXX_CJCDB_OCR_0002"

问题分析:
OCR磁盘组创建失败,需要查看ASM日志:

Reconfiguration complete
Mon Apr 19 17:44:28 2021
LCK0 started with pid=22, OS id=7558
ORACLE_BASE from environment = /oracle/grid
Mon Apr 19 17:44:29 2021
SQL> ALTER DISKGROUP ALL MOUNT
Diskgroup used for OCR is:XXX_CJCDB_OCR
NOTE: cache registered group XXX_CJCDB_OCR number=1 incarn=0x588274a5
NOTE: cache began mount (first) of group XXX_CJCDB_OCR number=1 incarn=0x588274a5
ERROR: no read quorum in group: required 2, found 0 disks
NOTE: cache dismounting (clean) group 1/0x588274A5 (XXX_CJCDB_OCR)
NOTE: messaging CKPT to quiesce pins Unix process pid: 7561, image: oracle@xxx-cjcdb01 (TNS V1-V3)
NOTE: dbwr not being msg'd to dismount
NOTE: lgwr not being msg'd to dismount
NOTE: cache dismounted group 1/0x588274A5 (XXX_CJCDB_OCR)
NOTE: cache ending mount (fail) of group XXX_CJCDB_OCR number=1 incarn=0x588274a5
NOTE: cache deleting context for group XXX_CJCDB_OCR 1/0x588274a5
GMON dismounting group 1 at 2 for pid 23, osid 7561
ERROR: diskgroup XXX_CJCDB_OCR was not mounted
WARNING: Disk Group XXX_CJCDB_OCR containing configured OCR is not mounted
ORA-15032: not all alterations performed
ORA-15017: diskgroup "XXX_CJCDB_OCR" cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "XXX_CJCDB_OCR"
ERROR: ALTER DISKGROUP ALL MOUNT
Mon Apr 19 17:44:29 2021
NOTE: No asm libraries found in the system
Mon Apr 19 17:44:29 2021
ALTER SYSTEM SET asm_diskstring='/dev/' SCOPE=MEMORY SID='*';
ASM Health Checker found 1 new failures
SQL> CREATE DISKGROUP XXX_CJCDB_OCR NORMAL REDUNDANCY  DISK '/dev/asm-ocr1',
'/dev/asm-ocr2',
'/dev/asm-ocr3' ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M' /* ASMCA */
NOTE: Assigning number (1,0) to disk (/dev/asm-ocr1)
NOTE: Assigning number (1,1) to disk (/dev/asm-ocr2)
NOTE: Assigning number (1,2) to disk (/dev/asm-ocr3)
NOTE: initializing header on grp 1 disk XXX_CJCDB_OCR_0000
NOTE: initializing header on grp 1 disk XXX_CJCDB_OCR_0001
NOTE: initializing header on grp 1 disk XXX_CJCDB_OCR_0002
WARNING: detected duplicate paths to the same disk:
  '/dev/asm-ocr3' and
  '/dev/sdd'
More trace information dumped to '/oracle/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_7592.trc'
WARNING: detected duplicate paths to the same disk:
  '/dev/asm-ocr1' and
  '/dev/sdb'
More trace information dumped to '/oracle/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_7592.trc'
WARNING: detected duplicate paths to the same disk:
  '/dev/asm-ocr2' and
  '/dev/sdc'
More trace information dumped to '/oracle/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_7592.trc'
NOTE: erasing header on grp 1 disk XXX_CJCDB_OCR_0000
NOTE: erasing header on grp 1 disk XXX_CJCDB_OCR_0001
NOTE: erasing header on grp 1 disk XXX_CJCDB_OCR_0002
GMON dismounting group 1 at 3 for pid 23, osid 7592
NOTE: Disk XXX_CJCDB_OCR_0000 in mode 0x7e marked for de-assignment
NOTE: Disk XXX_CJCDB_OCR_0001 in mode 0x7e marked for de-assignment
NOTE: Disk XXX_CJCDB_OCR_0002 in mode 0x7e marked for de-assignment
ERROR: diskgroup XXX_CJCDB_OCR was not created
ORA-15018: diskgroup cannot be created
ORA-15020: discovered duplicate ASM disk "XXX_CJCDB_OCR_0002"
ERROR: CREATE DISKGROUP XXX_CJCDB_OCR NORMAL REDUNDANCY  DISK '/dev/asm-ocr1',
'/dev/asm-ocr2',
'/dev/asm-ocr3' ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M' /* ASMCA */
可以看到多个路径指向同一块磁盘,例如/dev/asm-ocr1和/dev/sdb指向了同一块磁盘。
实际上确实是执行的同一块物理磁盘,因为/dev/asm-ocr1是通过udev绑定sdb得来的。
但在创建磁盘组时,oracle应该只识别到/dev/asm-ocr1才对,为什么两块盘都识别到了?
WARNING: detected duplicate paths to the same disk:
实际是是因为在安装grid时,选择磁盘组路径时,本应选择/dev/asm-*,却错误的选择了/dev,导致了上面的错误。
[grid@xxx-cjcdb01 ~]$ export ORACLE_SID=+ASM1
[grid@xxx-cjcdb01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Apr 19 18:07:17 2021
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> show parameter asm_diskstring
NAME      TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring      string /dev/

解决方案:

1 清空CRS配置
perl $GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig –force
2 删除对应目录和文件
重新安装grid

作者:chenoracle

最后修改:2022 年 02 月 20 日
如果觉得我的文章对你有用,请随意赞赏