Oracle ASMLIB配置iSCSI设备导致的问题
出于测试目的或者环境不重要等目的,如果使用iSCSI设备并且使用ASMLIB配置管理,可能会遇到如下两个问题。
都是我遇到的问题。
- OracleLinux7上边正常安装配置ASMLIB后,如果进行重启会导致扫描不到之前创建标记的盘,需要手工使用oracleasm scandisks才能识别到
- 无论是OracleLinux6还是7,安装配置ASMLIB过程均正常,日志/var/log/oracleasm也无异常,ll /dev/oracleasm/disks也能够看到已经出来的盘
但是比如安装grid的时候无法发现ORCL:开头的盘,能够确定使用的包都是对的。
踏马的上边第二个问题搞了我几天才解决,还是试出来的。mos上边没有符合我现象的文档。
先说第一个,很快就解决了,根据mos文档:
Oracle Linux: oracleasm Devices are not Being Scanned After Reboot (Doc ID 2266846.1)
Oracle Linux 7: ASMLib-Managed Disks on Multipathed Targets are not Discovered after Server Reboot (Doc ID 2929856.1)
Oracle Linux 7: ASMLib-Managed Disks on Multipathed iSCSI Targets are not Discovered after Server Reboot (Doc ID 2214152.1)
原因是:https://www.cnblogs.com/PiscesCanon/p/17968113
查看系统日志 ( /var/log/message s) 中的系统启动消息,很明显:
- oracleasm.service 在iscsid.service完成之前启动 ,使所有 iSCSI 目标完全可用/可操作,并且在multipathd.service 添加之前到 iSCSI 目标的至少一条路径
- ohasd.service在oracleasm.service之后启动 ,但未发现 ASM 磁盘
其实就是iscsid.service服务未完全启动之前,就没有对应的iSCSI设备,oracleasm.service就启动完成了,那样肯定就没有盘了。
解决方式也很简单,在“ After ”行中 添加oracleasm.service,以确保 CRS ohasd.service在oracleasm.service 成功发现所有 iSCSI 多路径 ASM 磁盘后启动,即
vi /usr/lib/systemd/system/oracleasm.service [Unit] 修改或添加: Requires=iscsid.service multi-user.target After=iscsid.service multi-user.target
重载配置:
systemctl daemon-reload
至于第二个,没法解决,只能发现是由于使用iSCSI设备导致的。防。
当安装grid,到设置磁盘路径的时候,无法发现ORCL:*的盘,看安装日志类似:
KFOD-00307: asmlib error!! function = [asm_close], error = [0], mesg = [Invalid argument] KFOD-00307: asmlib error!! function = [asm_open], error = [0], mesg = [Operation not permitted]
当然,可以直接使用磁盘发现路径为:/dev/oracleasm/disks ,那就意义不大了。
后续添加一个本地盘,也是用createdisk test创建,则该盘可以正常识别。
[root@oracle1 ~]# export XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt [root@oracle1 ~]# export LANG=en_US.UTF-8 [root@oracle1 ~]# export DISPLAY=192.168.2.189:0.0 [root@oracle1 ~]# export ORACLE_BASE=/u01/app/grid [root@oracle1 ~]# export THREADS_FLAG=native [root@oracle1 ~]# export PWD=/soft/grid [root@oracle1 grid]# export ORACLE_SID=+ASM1 [root@oracle1 grid]# export NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat [root@oracle1 grid]# export USER=grid [root@oracle1 grid]# export QTINC=/usr/lib64/qt-3.3/include [root@oracle1 grid]# export CLASSPATH= [root@oracle1 grid]# export NLS_TIMESTAMP_FORMAT="yyyy-mm-dd hh24:mi:ss" [root@oracle1 grid]# export G_BROKEN_FILENAMES=1 [root@oracle1 grid]# export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 [root@oracle1 grid]# export HOME=/home/grid [root@oracle1 grid]# export HOSTNAME=oracle1 [root@oracle1 grid]# export LESSOPEN=||/usr/bin/lesspipe.sh [root@oracle1 grid]# export LD_LIBRARY_PATH=/tmp/OraInstall2024-01-04_04-21-39PM/ext/bin/../lib [root@oracle1 grid]# export ORACLE_HOME=/tmp/OraInstall2024-01-04_04-21-39PM/ext/bin [root@oracle1 grid]# export LOGNAME=grid [root@oracle1 grid]# export SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass [root@oracle1 grid]# export SHELL=/bin/bash [root@oracle1 grid]# export CVS_RSH=ssh [root@oracle1 grid]# export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS" [root@oracle1 grid]# export TEMP=/tmp [root@oracle1 grid]# export SHLVL=2 [root@oracle1 grid]# export HISTCONTROL=ignoredups [root@oracle1 grid]# export TMPDIR=/tmp [root@oracle1 grid]# export MAIL=/var/spool/mail/grid [root@oracle1 grid]# export QTDIR=/usr/lib64/qt-3.3 [root@oracle1 grid]# export JAVA_HOME= [root@oracle1 grid]# export QTLIB=/usr/lib64/qt-3.3/lib [root@oracle1 grid]# export PATH=/usr/bin:/usr/ccs/bin:/u01/app/11.2.0/grid/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/grid/bin:/usr/local/bin:/u01/app/11.2.0/grid/OPatch:/soft/grid/install [root@oracle1 grid]# /tmp/OraInstall2024-01-04_04-21-39PM/ext/bin/kfod nohdr=true, verbose=true, disks=all, status=true, op=disks, asm_diskstring='ORCL:*' 10236 CANDIDATE ORCL:TEST <unknown> <unknown> KFOD-00307: asmlib error!! function = [asm_close], error = [0], mesg = [Invalid argument] KFOD-00307: asmlib error!! function = [asm_open], error = [0], mesg = [Operation not permitted]
10236 CANDIDATE ORCL:TEST <unknown> <unknown> <--本地盘正常识别 KFOD-00307: asmlib error!! function = [asm_close], error = [0], mesg = [Invalid argument] <--通过iSCSI的盘创建的就报这个错 KFOD-00307: asmlib error!! function = [asm_open], error = [0], mesg = [Operation not permitted] <--通过iSCSI的盘创建的就报这个错标签:bin,oracle1,iSCSI,ASMLIB,grid,usr,Oracle,export,root From: https://www.cnblogs.com/PiscesCanon/p/17968113