Out of memory on oracle startup
Sintomo: allo startup del database errore out of memory
SQL> startup
ORA-27102: out of memory
SVR4 Error: 22: Invalid argument
SQL> Disconnected
una volta verificato che oracle_home, oracle_sid etc … siano settati in modo corretto verificare che non si siano raggiunti i limiti di memoria massima concessi all’utente oracle.
Con la procedura seguente e’ possibile modificare provvisoriamente i parametri di sistema:
$ id -p
uid=60003(oracle) gid=203(oinstall) projid=100(user.oracle)
$ prctl -n project.max-shm-memory -i project user.oracle
project: 100: user.oracle
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 4.00GB - deny -
system 16.0EB max deny -$ su -
# prctl -n project.max-shm-memory -v 6gb -r -i project user.oracle
# exit
$ prctl -n project.max-shm-memory -i project user.oracle project: 100: user.oracle
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 6.00GB - deny -
system 16.0EB max deny -$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.2.0 – Production on Mon Sep 15 08:43:06 2008
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.Total System Global Area 1073741824 bytes
Fixed Size 2132680 bytes
Variable Size 266171704 bytes
Database Buffers 801112064 bytes
Redo Buffers 4325376 bytes
Database mounted.
Database opened.
SQL>
Per modificare permanentemente tali parametri occorre aggiungere un nuovo progetto nel project file:
# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
Per aggiungere un progetto usare il comando projadd, per modificarlo usare projmod:
# projadd -U oracle -K "project.max-shm-memory=(priv,6144MB,deny)" user.oracle
# projmod -s -K "project.max-sem-ids=(priv,256,deny)" user.oracle
Il project file dovrebbe apparire cosi’:
# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
user.oracle:100::oracle::project.max-sem-ids=(priv,256,deny);project.max-shm-memory=(priv,6442450944,deny)