Solución Veeam Oracle Permission Denied

Durante la semana pasada estuve recibiendo algunas consultas sobre algunos errores que se encuentran en los archivos logs de Veeam con la integración de Oracle. Ya sea la integración nativa de Veeam con Oracle sobre VMware o usando Veeam Plugin for Oracle RMAN. En este post veremos como solucionar un error que aparece frecuentemente y es fácil de solucionar.

Introducción

El error al cual me refería es el siguiente:

Error has occurred while executing SSH command: boost::filesystem::status: Permission denied: "/grid/app/grid/product/12.2.0.1/oraInst.loc"
Error has occurred while executing SSH command: boost::filesystem::status: Permission denied: "/oracle/oraInventory/ContentsXML/inventory.xml" 

El error aparece en Veeam Backup & Replication o Veeam Plugin for Oracle RMAN cuando esa tratando de detectar las instancias de Oracle Database que existan en el servidor, como vemos, las soluciones de Veeam no tienen acceso a los archivos.

También veremos que el usuario utilizado por Veeam para realizar la consistencia, puede leer directamente los archivos oraInst.loc e inventory.xml desde la linea de comando del sistema operativo.

Pero cuando se ejecuta desde las soluciones de Veeam, ya sea el plugin o VBR, sigue sin detectar las instancias y el error aparece nuevamente en los archivos de logs.

Para solucionar lo anterior debemos validar los requerimientos de permisos de Veeam Backup & Replication o Veeam Plugin for Oracle, cual sea tu caso:

VBR (Bajar hasta los permisos específicos de Oracle):

https://helpcenter.veeam.com/docs/backup/vsphere/required_permissions.html?ver=100

Veeam Plugin:

https://helpcenter.veeam.com/docs/backup/plugins/rman_plugin_permissions.html?ver=100

En caso de que el usuario de servicio de veeam (debe poder elevar a root) no se encuentre con los permisos requeridos, será necesario agregarlos a los grupos requeridos, como por ejemplo:

usermod -a -G oinstall,dba,grid usuarioveeam

Y por supuesto como también aparece en la documentación, el usuario que se utilice para la autenticación de Oracle debe tener permisos de SYSDBA:

Como valido si es usuario que entregaron tiene permisos de SYSDBA?, con el siguiente script de SQL puedes validarlo:

select username,sysdba,sysoper,sysasm,sysbackup,sysdg,syskm from v$pwfile_users;

Donde debes validar que el usuario exista en la siguiente salida del comando:

De lo contrario, solicitar al DBA que agregue al usuario al rol de SYSDBA.

Permisos de Oracle

Si aun así, aun no consiguen detectar las instancias, la solución pasa por recrear los permisos de las carpetas donde se encuentra instalado Oracle, ya que por algún motivo fueron modificados.

Por tanto, en este paso, se debe contar con la ayuda o autorización del DBA para recrear automáticamente los permisos con un script de instalación root.sh o directamente ejecutar lo siguiente en las rutas de Oracle:

chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

Donde /u01 es la carpeta donde se instalo el software de Oracle y -R quiere decir recursivo. Y con eso funcionará la detección y respaldo de tus bases de datos Oracle en el caso que tengas problemas con permisos de carpeteas y/o archivos.