Sunday, October 26, 2014

SQL1220N The database manager shared memory set cannot be allocated

I faced this error while using db2 on Ubuntu 12.04 desktop, When tried to start instance it failed as below.

SQL1220N

The database manager shared memory set cannot be allocated.

The term shared memory is a term used to describe a type of memory management in the Unix kernel.  It is a memory region that can shared between different processes. Using a shared memory model, this avoids creating duplicate copies of memory.  So programs can eaily share data.
SHMMAX is just the maximum size of a single shared memory segment.  It’s size is represented in bytes”.

By default SHMMAX is 32 MB , Here db2 database manager wasn't able to start the instance with existing SHMMAX value use cat /proc/sys/kernel/shmmax to find out current value, so What we do is increase the value

Place an entry in /etc/sysctl.conf like kernel.shmmax=500000000, which is around 500MB just restart the machine and we are good to go. If not working increase it to 1 gb or more.

db2inst1@ubuntu:~$ db2start
10/26/2014 18:50:07     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.