sql >> Base de Datos >  >> RDS >> Oracle

ORA-00838

Me encontré con un problema interesante el otro día que me llevó un tiempo solucionarlo. Estaba tratando de iniciar una base de datos que no es de producción y recibí este error:

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1428M
ORA-01078: failure in processing system parameters

Para empezar, la documentación de Oracle para mi versión dice que el valor mínimo para MEMORY_TARGET es de 512 MB, pero el error anterior me dice que debo usar un valor mayor. Entonces, el siguiente paso lógico es obtener ayuda para este mensaje de error.

[oracle@host ~]$ oerr ora 838
00838, 00000, "Specified value of MEMORY_TARGET is too small, needs to be at least %sM"
// *Cause: The specified value of MEMORY_TARGET was less than the sum of the
// specified values for SGA_TARGET and PGA_AGGREGATE_TARGET.
// *Action: Set MEMORY_TARGET to at least the recommended value.

Bueno, eso es interesante. Aquí está el contenido de mi PFILE.

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='DB_EXTENDED'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/orcl/data01/control01.ctl','/u01/app/oracle/oradata/orcl/data02/control02.ctl','/u01/app/oracle/oradata/orcl/data03/control03.ctl'
*.db_block_size=8192
*.db_domain='naucom.com'
*.db_files=1100
*.db_name='orcl'
*.db_recovery_file_dest_size=214748364800
*.db_recovery_file_dest='/archivelog'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.event=''
*.job_queue_processes=10
*.memory_target=1048576000
*.open_cursors=300
*.processes=1600
*.remote_login_passwordfile='EXCLUSIVE'
*.sec_case_sensitive_logon=FALSE
*.undo_tablespace='UNDOTBS4'

Tenga en cuenta que no estoy especificando SGA_TARGET o PGA_AGGREGATE_TARGET. Entonces, la ayuda del mensaje de error no fue de ayuda aquí. Después de resolver el problema, descubrí que alguien había cambiado mi archivo de parámetros.

*.processes=1600

Esta es una pequeña base de datos que no es de producción. Mi MEMORY_TARGET tiene solo 1 GB. Entonces, ¿por qué se establece PROCESOS en un valor tan grande? Cuando devolví esto a un valor mucho menor de 600, la instancia no tuvo problemas para iniciarse. El número de procesos deriva del número de sesiones, lo que requiere un SGA más alto. El mensaje de error inicial era correcto pero no proporcionaba pistas sobre por qué existía el problema.