DBATEST >startup ORA-27102: out of memory SVR4 Error: 22: Invalid argument
Lo primero es asegurarnos que el servidor si tenga la memoria suficiente para poder levantar la instancia, con el comando top, podemos ver esta informacion:
root $ top load averages: 0.70, 0.71, 0.73; up 39+18:13:12 23:19:17 442 processes: 430 sleeping, 11 stopped, 1 on cpu CPU states: 99.4% idle, 0.1% user, 0.4% kernel, 0.0% iowait, 0.0% swap Memory: 32G phys mem, 8024M free mem, 36G total swap, 36G free swap
Como podemos ver, tenemos un poco menos de 8g de memoria libre en nuestro servidor, pero no podemos levantar una instancia con una configuracion de 2g memoria. Lo primero que tenemos que hacer es detectar el id al proyecto que el usuario oracle pertenece
root $ id -p uid=1001(oracle) gid=110(dba) projid=100(user.oracle)
Una vez que logramos identificar el proyecto al que pertenece nuestro usuario, vamos a verificar los recursos que esta utilizando
root $ prstat -J . . . PROJID NPROC SWAP RSS MEMORY TIME CPU PROJECT 100 251 14G 13G 42% 37:45:26 0.1% user.oracle
Como podemos ver arriba, el usuario oracle esta usando 13g de la memoria del servidor, ahora vamos a verificar cuanto tiene asignado el proyecto
root $ prctl -n project.max-shm-memory -i project 100 project: 100: user.oracle NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-shm-memory privileged 14.0GB - deny - system 16.0EB max deny -
Ahora que verificamos que el proyecto al que esta asignado nuestro usuario esta restringido hasta los 14g, vamos a incrementarlo para poder levantar la instancia
root $ prctl -n project.max-shm-memory -r -v 16G -i project 100
Volevemos a checar la memoria asignada a nuestro proyecto, y ahora vemos que tenemos un maximo de 16g
root $ prctl -n project.max-shm-memory -i project 100 project: 100: user.oracle NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-shm-memory privileged 16.0GB - deny - system 16.0EB max deny -
Y ahora ya podemos levantar la instancia
DBATEST >startup ORACLE instance started. Total System Global Area 2088402944 bytes Fixed Size 2159904 bytes Variable Size 1375734496 bytes Database Buffers 570425344 bytes Redo Buffers 140083200 bytes
Conclusion
Espero que esta entrada te ayude a comprender el resource manager de Solaris y que te ayude cuando te enfrentes a este tipo de situaciones.
No hay comentarios.:
Publicar un comentario