一套Oracle 12.2.0.1环境的RAC,在1月4日的时候发生了集群重启
【重启原因和下面没关系,我们只是说下emcp_pseudo_ctl_ioctl错误哦!!~】
在/var/log/message显示如下报错ecmp_pseudo_ctl_ioctl错误,那么这个错误是什么?是否对我的数据库有影响?或者说是潜在的io错误吗?我们带着这样的疑问来看下。
Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: ora_rbal_topprd Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x2285, proc name: ora_rbal_topprd Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: ora_rbal_topprd Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: mdb_rbal_-mgmtd Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x2285, proc name: mdb_rbal_-mgmtd Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: mdb_rbal_-mgmtd Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: mdb_rbal_-mgmtd Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: mdb_rbal_-mgmtd Jan 4 10:12:20 racdb2 kernel: sd 16:0:0:4: [sdf] Very big device. Trying to use READ CAPACITY(16). Jan 4 10:12:20 racdb2 kernel: sd 16:0:1:4: [sdn] Very big device. Trying to use READ CAPACITY(16). Jan 4 10:12:20 racdb2 kernel: sd 16:0:0:3: [sde] Very big device. Trying to use READ CAPACITY(16). Jan 4 10:12:20 racdb2 kernel: sd 16:0:1:3: [sdm] Very big device. Trying to use READ CAPACITY(16). Jan 4 10:12:22 racdb2 systemd-logind: New session 33129 of user grid. Jan 4 10:12:22 racdb2 systemd: Started Session 33129 of user grid. Jan 4 10:12:22 racdb2 systemd-logind: Removed session 33129. Jan 4 10:12:29 racdb2 su: (to grid) root on none Jan 4 10:12:29 racdb2 systemd: Started Session c11794 of user grid. Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: ora_rbal_topprd Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x2285, proc name: ora_rbal_topprd Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: ora_rbal_topprd Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd
这个错误在MOS上找到了原因:
Error:emcp:emcp_pseudo_ctl_ioctl" output in messages on ASM env. ( Doc ID 2648758.1 )
APPLIES TO:
Oracle Database - Enterprise Edition - Version 12.2.0.1 and later
Oracle Database - Standard Edition - Version 12.2.0.1 and later
Information in this document applies to any platform.
SYMPTOMS
When using ASM and EMC powerpath, "Error:emcp:emcp_pseudo_ctl_ioctl" output in messages.
Messages indicates (messages inside /var/log location):
Mar 12 20:26:10 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: kfod.bin
Mar 12 20:26:10 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: kfod.bin
Mar 12 20:26:10 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: kfod.bin
:
Mar 12 20:31:06 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_iocltl: Invalid cmd 0x1268, proc name: kfod.bin
Mar 12 20:31:06 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: kfod.bin
:
Mar 12 20:31:58 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: asm_rbal_+asm
Mar 12 20:31:58 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: asm_rbal_+asm
Mar 12 20:31:58 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: asm_rbal_+asm
CAUSE
These messages which shows kfod.bin and ASM rbal process open '/dev/emcpower' and call ioctl to it and failed.
The '/dev/emcpower' is used in PowerPath internal.
We can confirm the following parameter value.
In this case, name of some disks used for ASM are '/dev/emcpower<string>'.
Therefore CRS/ASM can start successfully and mount diskgroup start successfully too.
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string /dev/emcpower*
SOLUTION
We can ignore this message.
To control invalid ioctl for '/dev/emcpower', and to control this output("Error:emcp:emcp_pseudo_ctl_ioctl"),
edit asm_diskstring so that '/dev/emcpower' isn't made the detection target.
只用于12.2.0.1之后的版本
我们可以忽略此消息。
控制 '/dev/emcpower' 的无效 ioctl,并控制此输出(“Error:emcp:emcp_pseudo_ctl_ioctl”), 编辑 asm_diskstring,使“/dev/emcpower”不会成为检测目标。
[oracle@rac1 ~]$ cd /dev/ [oracle@rac1 dev]$ ls -l |grep emc crw-r--r-- 1 root root 10, 55 Jan 5 23:18 emcpower brw-rw---- 1 grid oinstall 120, 0 Jan 7 16:31 emcpowera brw-rw---- 1 grid oinstall 120, 16 Jan 7 16:31 emcpowerb brw-rw---- 1 grid oinstall 120, 32 Jan 7 16:31 emcpowerc brw-rw---- 1 grid oinstall 120, 48 Jan 7 16:31 emcpowerd brw-rw---- 1 grid oinstall 120, 64 Jan 7 16:31 emcpowere brw-rw---- 1 grid oinstall 120, 80 Jan 7 16:31 emcpowerf brw-rw---- 1 grid oinstall 120, 96 Jan 7 16:31 emcpowerg brw-rw---- 1 grid oinstall 120, 112 Jan 7 16:31 emcpowerh [oracle@racdb1 dev]$ exit logout [root@racdb1 grid]# multipath -ll Jan 07 16:32:00 | DM multipath kernel driver not loaded Jan 07 16:32:00 | /etc/multipath.conf does not exist, blacklisting all devices. Jan 07 16:32:00 | A default multipath.conf file is located at Jan 07 16:32:00 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf Jan 07 16:32:00 | You can run /sbin/mpathconf --enable to create Jan 07 16:32:00 | /etc/multipath.conf. See man mpathconf(8) for more details Jan 07 16:32:00 | DM multipath kernel driver not loaded [root@racdb1 grid]# cd /etc/udev/rules.d/ [root@racdb1 rules.d]# ls -ltr total 28 -rw-r--r--. 1 root root 628 Sep 26 2019 70-persistent-ipoib.rules -rw-r--r--. 1 root root 148 Apr 2 2020 99-vmware-scsi-timeout.rules -rw-r--r--. 1 root root 512 Aug 3 17:57 99-oracleasm.rules -rw-r--r-- 1 root root 175 Aug 4 22:13 55-usm.rules -rw-r--r-- 1 root root 318 Jan 5 23:18 04-nvme-pp.rules -rw-r--r-- 1 root root 879 Jan 5 23:18 05-udev-pp.rules -rw-r--r-- 1 root root 412 Jan 5 23:18 80-udev-pp2.rules [root@racdb1 rules.d]# more 99-oracleasm.rules KERNEL=="emcpowera", OWNER="grid" GROUP="oinstall", MODE="0660" KERNEL=="emcpowerb", OWNER="grid" GROUP="oinstall", MODE="0660" KERNEL=="emcpowerc", OWNER="grid" GROUP="oinstall", MODE="0660" KERNEL=="emcpowerd", OWNER="grid" GROUP="oinstall", MODE="0660" KERNEL=="emcpowere", OWNER="grid" GROUP="oinstall", MODE="0660" KERNEL=="emcpowerf", OWNER="grid" GROUP="oinstall", MODE="0660" KERNEL=="emcpowerg", OWNER="grid" GROUP="oinstall", MODE="0660" KERNEL=="emcpowerh", OWNER="grid" GROUP="oinstall", MODE="0660" [root@racdb1 rules.d]# su - grid Last login: Fri Jan 7 16:25:28 CST 2022 [grid@racdb1 ~]$ sqlplus / as sysasm SQL*Plus: Release 12.2.0.1.0 Production on Fri Jan 7 16:33:31 2022 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> show parameter disk NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ asm_diskgroups string MGMT, DATA, ARCH asm_diskstring string /dev/emcpower* ASM Disk Information ====================== --------------------------------------------------------------------------------------------------------------------- | G# | GROUP_NAME | PATH | FAILGROUP | DISK_NAME | STATE | MODE_S | HEAD_S | MOUNT_S | REPAIR? | --------------------------------------------------------------------------------------------------------------------- | 1 | ARCH | /dev/emcpowerf | ARCH_0000 | ARCH_0000 | NORMAL | ONLINE | MEMBER | CACHED | 0 | | 1 | ARCH | /dev/emcpowerg | ARCH_0001 | ARCH_0001 | NORMAL | ONLINE | MEMBER | CACHED | 0 | | 2 | DATA | /dev/emcpowerd | DATA_0000 | DATA_0000 | NORMAL | ONLINE | MEMBER | CACHED | 0 | | 2 | DATA | /dev/emcpowere | DATA_0001 | DATA_0001 | NORMAL | ONLINE | MEMBER | CACHED | 0 | | 3 | MGMT | /dev/emcpowerh | MGMT_0000 | MGMT_0000 | NORMAL | ONLINE | MEMBER | CACHED | 0 | | 4 | OCR_VOTE | /dev/emcpowera | OCR_VOTE_0000 | OCR_VOTE_0000 | NORMAL | ONLINE | MEMBER | CACHED | 0 | | 4 | OCR_VOTE | /dev/emcpowerb | OCR_VOTE_0001 | OCR_VOTE_0001 | NORMAL | ONLINE | MEMBER | CACHED | 0 | | 4 | OCR_VOTE | /dev/emcpowerc | OCR_VOTE_0002 | OCR_VOTE_0002 | NORMAL | ONLINE | MEMBER | CACHED | 0 | ---------------------------------------------------------------------------------------------------------------------
可以看到都正常的,那么/var/log/message中的报错信息是可以忽略的。