ORA-00845: MEMORY_TARGET not supported on this system

We encountered ORA-00845: MEMORY_TARGET not supported on this system, PRCR-1079, CRS-5017, CRS-2674, CRS-2632 while starting the RAC database. Below are the full error code.

[oracle@orahow dbs]$ srvctl start database -d cltest
PRCR-1079 : Failed to start resource ora.cltest.db
CRS-5017: The resource action "ora.cltest.db start" encountered the following error:
ORA-00845: MEMORY_TARGET not supported on this system
. For details refer to "(:CLSN00107:)" in "/scratch/u01/app/grid/diag/crs/orahow/crs/trace/crsd_oraagent_orahow.trc".
CRS-2674: Start of 'ora.cltest.db' on 'orahow' failed
CRS-5017: The resource action "ora.cltest.db start" encountered the following error:
ORA-00845: MEMORY_TARGET not supported on this system
. For details refer to "(:CLSN00107:)" in "/scratch/u01/app/grid/diag/crs/orahow/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.cltest.db' on 'orahow' failed
CRS-2632: There are no more servers to try to place resource 'ora.cltest.db' on that would satisfy its placement policy
[oracle@orahow dbs]$

We got this error after modification of the memory parameters of the database.

Older value:

SQL> ALTER SYSTEM SET pga_aggregate_target =2G SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET pga_aggregate_limit =4G SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET sga_target =10g SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET sga_max_size=12g SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET memory_max_target=24g SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET memory_target=20g SCOPE=SPFILE sid='*';
New Value:

SQL> ALTER SYSTEM SET pga_aggregate_target =4G SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET pga_aggregate_limit =12G SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET sga_target =36g SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET sga_max_size=36g SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET memory_max_target=40g SCOPE=SPFILE sid='*';
SQL> ALTER SYSTEM SET memory_target=40g SCOPE=SPFILE sid='*';

After modification of the above parameters we tried to start the database but got the below error.

 [oracle@orahow dbs]$ srvctl start database -d cltest
PRCR-1079 : Failed to start resource ora.cltest.db
CRS-5017: The resource action "ora.cltest.db start" encountered the following error:
ORA-00845: MEMORY_TARGET not supported on this system
. For details refer to "(:CLSN00107:)" in "/scratch/u01/app/grid/diag/crs/orahow/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.cltest.db' on 'orahow' failed
CRS-5017: The resource action "ora.cltest.db start" encountered the following error:
ORA-00845: MEMORY_TARGET not supported on this system
. For details refer to "(:CLSN00107:)" in "/scratch/u01/app/grid/diag/crs/orahow/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.cltest.db' on 'orahow' failed
CRS-2632: There are no more servers to try to place resource 'ora.cltest.db' on that would satisfy its placement policy
[oracle@orahow dbs]$
Alert Log:
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 38654705664 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can work as expected. Current available is 32335376384 and used is 651341824 bytes. Ensure that the mount point is /dev/shm for this directory.
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 38654705664 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can work as expected. Current available is 32335376384 and used is 651341824 bytes. Ensure that the mount point is /dev/shm for this directory.

Resolution Steps:

The new ASM functionality uses /dev/shm on Linux for SGA and PGA management. The errors occur if either MEMORY_TARGET or MEMORY_MAX_TARGET is configured larger than the configured /dev/shm size,
or if /dev/shm is mounted incorrectly.

To resolve it, login to root user and edit the fstab and increase the value of /dev/shm. Like tmpfs /dev/shm tmpfs size=50g 0 0 .Please note that set the tmpfs size more than the required memory target.

[root@orahow trace]$ cat /etc/fstab
#
/etc/fstab
Created by anaconda on Thu Feb 14 13:10:34 2019
#
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
#
UUID=6583b31c-81dd-4045-ae63-e9d7982899d3 / ext4 barrier=0 1 1
UUID=gaefc7c5-80ee-4fb3-b523-76c5541a3364 /boot ext3 barrier=0 1 2
UUID=4daf99e2-beda-4574-b966-28e693170e93 /oem ext4 barrier=0 1 2
/dev/mapper/DomUVol-scratch /scratch ext4 barrier=0 1 2
UUID=7b2594de-9f83-4307-a3c7-06397017d4ae swap swap defaults 0 0
tmpfs /dev/shm tmpfs size=50g 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/LOCAL_SWAP/swapfile1 swap swap defaults 0 2
/LOCAL_SWAP/swapfile2 swap swap defaults 0 2
/LOCAL_SWAP/swapfile3 swap swap defaults 0 2
/LOCAL_SWAP/swapfile4 swap swap defaults 0 2

Now executer the below command to make changes to tmpfs. If new value is not reflecting then reboot the server.

 [root@orahow ~]# mount -o remount /dev/shm
[root@orahow trace]$ df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 50G 37G 14G 74% /dev/shm
[root@orahow ~]# shutdown -r now
Check the /dev/shm available space:
[root@orahow trace]$ df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 50G 37G 14G 74% /dev/shm

Finally after making changes started the database and it worked perfectly.