En Solaris 10, los parámetros de kernel ya no se pasan por el /etc/system. La forma correcta de hacerlo es mediante los proyectos. Es mucho mas granular y mas seguro que cambiar los parametros del kernel directamente.
En el caso de Oracle, todos los parámetros que había que tocar anteriormente se igualan o superan en los valores por defecto del sistema. Solo hay que cambiar un parametro:
max-shm-memory
Este parámetro debe ser igual a casi todo el tamaño de la memoria. El comando es el siguiente:
# projadd -U oracle -K "project.max-shm-memory=(priv,4GB,deny)" user.oracle
Asumiendo que existe el usuario oracle, que es el que ejecuta la base de datos, y que la memoria del sistema es de 4GB.
Ahora vemos el resultado de la ejecución del parametro anterior:
# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
user.oracle:100::oracle::project.max-shm-memory=(priv,4294967296,deny)
Para ver si funcionó, como el usuario oracle, hacemos:
$ prctl -i project user.oracle
project: 100: user.oracle
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-contracts
privileged 10.0K - deny -
system 2.15G max deny -
project.max-device-locked-memory
privileged 125MB - deny -
system 16.0EB max deny -
project.max-port-ids
privileged 8.19K - deny -
system 65.5K max deny -
project.max-shm-memory
privileged 4.00GB - deny -
system 16.0EB max deny -
project.max-shm-ids
privileged 128 - deny -
system 16.8M max deny -
project.max-msg-ids
privileged 128 - deny -
system 16.8M max deny -
project.max-sem-ids
privileged 256 - deny -
system 16.8M max deny -
project.max-crypto-memory
privileged 498MB - deny -
system 16.0EB max deny -
project.max-tasks
system 2.15G max deny -
project.max-lwps
system 2.15G max deny -
project.cpu-shares
privileged 1 - none -
system 65.5K max none -
zone.max-lwps
system 2.15G max deny -
zone.cpu-shares
privileged 1 - none -
Como vemos, el valor a cambiado satisfactoriamente.