Hace unos dias se tuvo que hacer un redimensionamiento de la memoria donde hubo dos componentes en la memoria:
- Quitar del manejo automatico la memoria.
- Aumentar el valor de la memoria.
Revisamos los parametros y vemos que la memoria se encuentra configurada de modo automatica.
SQL> sho parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 7960M sga_target big integer 0
Configuramos los parametros para colocar los nuevos valores:
SQL> alter system set sga_max_size = 10240M scope=spfile; System altered. SQL>
Cuando inicio la instancia me encuento con el siguiente error:
SQL> startup mount ORA-00845: MEMORY_TARGET not supported on this system SQL>
Bien, revisemos que nos cuenta Oracle acerca de ello:
00845, 00000, "MEMORY_TARGET not supported on this system" // *Cause: The MEMORY_TARGET parameter was not supported on this operating system or /dev/shm was not sized correctly on Linux. // *Action: Refer to documentation for a list of supported operating systems. Or, size /dev/shm to be at least the SGA_MAX_SIZE on each Oracle instance running on the system.
Observemos que cuando la instancia de Oracle tiene configurado el uso de la memoria de forma automatica, requiere en los Sistemas Operativos Linux el uso de la archivo temporal de almacenamiento llamado /dev/shm .
El concepto de tmpfs utiliza la memoria RAM para el almacenamiento de respaldo. Puede funcionar como una memoria compartida de aplicación que facilita el IPC.
El filesystem /tmp es la ubicación de los archivos temporales, cunpliendo asi con el estandar de Sistemas de Archivos, que se cumplimenta en la mayoria de sistemas Unix y de las distribuciones de Linux.
Ya que la RAM es mucho más rápido que el almacenamiento en disco, se puede utilizar el sistema de archivos /dev/shm para mejorar el rendimiento, en lugar del /tmp, si se tratare de un proceso es intensivas de I/O y utiliza ampliamente archivos temporales.
El uso de la memoria automática requiere el uso de /dev/shm en Linux para la administración de la SGA y la PGA.
Este error también puede ocurrir si el parámetro memory_target o memory_max_target son mayores al que se encuentra configurado en /dev/shm
Entendiendo esto, aseguremonos que el tamaño de /dev/shm es suficiente.
Lo haremos por medio de la ejecucion del siguiente comando.
# mount -t tmpfs shmfs -o size=15000m /dev/shm
Para que el parametro quede seteado de forma permanente debemos hacerlo desde el archivo de configuracion /etc/fstab de acuerdo con la opinion del administrador de OS para que los valores se validen.
[root@src01 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Jul 30 22:33:34 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg_labo01-lv_root / ext4 defaults 1 1 UUID=59adbf2c-8e57-49de-9461-b34a9d6a56a2 /boot ext4 defaults 1 2 /dev/mapper/vg_labo01-lv_swap swap swap defaults 0 0 #tmpfs /dev/shm tmpfs defaults 0 0 tmpfs /dev/shm tmpfs 15000M 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 [root@src01 ~]#
Luego probamos que los parametros impactados son los correctos por medio de la ejecucion del startup de la base.
$ sqlplus / as sysdba SQL> startup mount ORACLE instance started. ... Database mounted. SQL>
Justo estoy instalando una 12C y me salio este error… muchas gracias!!
LikeLiked by 1 person
Pedro, gracias por compartirlo. Regards !
LikeLike