ORA-15025: could not open disk / ORA-27041: unable to open file
A la hora de realizar las distintas alertas de mantenimiento en una base de datos, se estaba repitiendo el siguiente error en el alertlog de manera diaria en una de las monitorizaciones que tengo activas
2024-09-16T23:32:43.966732+02:00
Errors in file /u01/app/oracle/diag/rdbms/xxxx/xxxxx/trace/xxxx_ora_76583.trc:
ORA-00202: control file: '+RECO/XXXXX/CONTROLFILE/current.256.1152553023'
ORA-15081: failed to submit an I/O operation to a disk
ORA-15062: ASM disk is globally closed
2024-09-16T23:32:44.320010+02:00
Errors in file /u01/app/oracle/diag/rdbms/xxxx/xxxxx/trace/xxxx_ora_76583.trc:
ORA-15025: could not open disk "/dev/RECODISK5"
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 3
Parece que todos los ORA% que aparecen ahí están relacionados, pero para asegurarnos vamos a mirar el trc.
Leyendo el trc vemos la siguiente información:
WARNING: failed to open a disk[/dev/RECODISK5]
ORA-15025: could not open disk "/dev/RECODISK5"
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 3
<error barrier> at 0x7ffd30ba9380 placed kfksubs.c@5299
kfk_debug_get_user_groups: uid:39123, euid:101, gid:1001, egid:1004
WARNING: disk locally closed resulting in I/O error [0x434c5344]
DDE rules only execution for: ORA 202
“Permission denied“ para el usuario 39123, ¿Pero quien es ese usuario?
Para mirar quien es el usuario, tendremos que ir al fichero passwd, que ahí tenemos el usuario dados de alta y que tienen acceso a la máquina
[oracle@~]$ grep 39123 /etc/passwd
orarom:x:39123:1001::/home/orarom:/bin/bash
Un vez que sabemos quien es el usuario, miramos que grupos tiene asociado mediante el comando id.
[oracle@~]$ id orarom
uid=39123(orarom) gid=1001(oinstall) groups=1001(oinstall),1003(dba)
Ahí esta el problema, el usuario no esta dentro del grupo asmadmin. En una base de datos hay que tener en cuenta lo siguiente:
ASM home: propietario es grid:asmadmin
DB Home: propietario es oracle:oinstall
Editamos el fichero /etc/group para incluir el usuario orarom en el grupo asmadmin, quedando de la siguiente manera
[oracle@~]$ id orarom
uid=39123(orarom) gid=1001(oinstall) groups=1001(oinstall),1004(asmadmin),1003(dba)
Listo. Las alertas ya no aparecen en el alertlog. ¡Espero que os sirva!
Subscribe to my newsletter
Read articles from David Sanz directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
David Sanz
David Sanz
Soy desarrollador, Analista, DBA Oracle y Arquitecto OCI, certificado en OCI Migration and Integration Certified Professional y Certified Architect Associate con más de 15 años de experiencia en plataformas Oracle además de especialista en temas de rendimiento.