# 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

```plaintext
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:

```plaintext
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

```plaintext
[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**.

```plaintext
[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

```plaintext
[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!
