docker-images: Oracle 12c EE - ORA-27106: system pages not available to allocate memory

Using Oracle 12c EE version throws ORA-27106: system pages not available to allocate memory due missed parameter in sysctl.conf file. According to Oracle documentation this parameter should be: vm.hugetlb_shm_group=dba_gid for example, if groupadd -g 500 dba is Dockerfile.ee: vm.hugetlb_shm_group=500 at docker run time running as root is fixed by calling:

#!/bin/bash
# fix ORA-27106: system pages not available to allocate memory
sysctl vm.hugetlb_shm_group=500

At Dockerfile.ee script the effective user is oracle, so I propose fixed that using another script running as root user which call finally runOracle.sh script, for example: Dockerfile

USER	root

VOLUME ["/opt/oracle/oradata"]
EXPOSE	1521 5500

CMD	[ "sh" , "-c" ,  "/home/oracle/manage-oracle.sh" ]

where manage-oracle.sh call sysctl command and then runOracle.sh as user oracle.

sysctl vm.hugetlb_shm_group=500

echo "export ORACLE_SID=$ORACLE_SID" >>/home/oracle/.bashrc
echo "export ORACLE_PDB=$ORACLE_PDB" >>/home/oracle/.bashrc
su - oracle -c "$ORACLE_BASE/runOracle.sh"

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 15 (15 by maintainers)

Most upvoted comments

No. If you follow the link to the documentation you will find that TRUE means that the database can use huge pages if available and can even mix between huge pages and regular pages if there aren’t enough huge pages available. However, if there are no huge pages available the database will use regular pages which means that huge pages are not mandatory to be there. Hence why TRUE is the default parameter. If there are huge pages available, use them, otherwise continue with regular pages. Only if the parameter is set to ONLY the database will accept huge pages and huge pages only. In the case that huge pages aren’t available the database will raise an error on startup.

If you read my response above a second time you will also find that all of that has nothing to do with the Linux parameter vm.hugetlb_shm_group as per the second documentation link. So whatever issue you face is not related, at least not directly, to the parameter vm.hugetlb_shm_group.

But given that you still have not shared under what circumstances you do get this error it is hard for me to figure out why you get that error and whether it is legitimate. So please share a test case here in this issue thread and some explanation what you are trying to do that causes this error.

Well as in my blogpost a Docker image running in Oracle CS service run faster than in DBAAS, but is only just for fun. I am preparing another post with my personal test of the CS.

El 12/12/2016 21:39, “Bruno Borges” notifications@github.com escribió:

@marcelo-ochoa https://github.com/marcelo-ochoa out of curiosity, what is the value of running Oracle DB on a Docker container inside Container CS, instead of DBCS ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/oracle/docker-images/issues/222#issuecomment-266599763, or mute the thread https://github.com/notifications/unsubscribe-auth/AQNVhhFHU39pnOOiulqjwzhmB1CX1sGJks5rHeldgaJpZM4K_sk5 .