Si tienes "Oracle Database 19c Release 19.0.0.0.0 - Production Version 19.28.0.0.0 y quieres compilar en modo NATIVE una unidad de programación, vas a recibir el error: "ORA-06590: PL/SQL: Native mode requires execute privileges on the shared memory object directory".
El error también se reproduce en RU 19.29, si haz aplicado desde otro parcheo distinto a RU 19.27.
El mismo ambiente que con 19.27 no genera error. Funciona correctamente sin inconvenientes, hasta la aplicación del parche.
Recuerden la idea de compilar funciones, procedimientos o paquetes en modo NATIVE es que en lugar de generar bytecode, se genere código C que luego se traduce a una biblioteca compartida compilada. El código fuente de PL/SQL se compila directamente a código máquina, dando como resultado una ejecución más rápida.
El problema es con /dev/shm la carpeta especial en Linux que representa una porción de memoria RAM utilizada como sistema de archivos temporal. El sistema /dev/shm sirve para que distintos procesos puedan intercambiar información rápidamente sin pasar por el disco, utilizando la memoria compartida del kernel.
En Oracle Linux 8 de facto se monta /dev/shm con el atributo "noexec" que es la opción de montaje del sistema que impide la ejecución de cualquier binario o script almacenado en esa ubicación.
Lo que se debe hacer es remontar /dev/shm con: mount -o remount,exec /dev/shm y luego cambiar la línea en el archivo /etc/fstab como se ve a continuación, para evitar que en el siguiente reinicio, vuelva a la configuración original.
# Error en compilacion de objetos NATIVE en Oracle Database
# ORA-06590: PL/SQL: Native mode requires execute privileges on the shared memory object directory# tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
tmpfs /dev/shm tmpfs defaults,nodev,nosuid 0 0
Esto se reproduce a partir de la aplicación del Release Update 19.28 en el motor de la base de datos Oracle 19c.
SR 3-42843259511 : Error when compiling an object in NATIVE code Oracle Database 19c RU 19.28, por tanto, se encuentra documentado.Veamos el caso en detalle, tengo el siguiente código en la base de datos correspondiente a un procedimiento almacenado del esquema HR.
Con el R.U. 19.27 puedo cambiar los valores del parámetro PLSQL_CODE_TYPE de INTERPRETED a NATIVE y compilar sin problemas.

No hay comentarios:
Publicar un comentario
Te agradezco tus comentarios. Te esperamos de vuelta.