Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-00838

Bin neulich auf ein interessantes Problem gestoßen, dessen Behebung eine Weile gedauert hat. Ich habe versucht, eine Nicht-Produktionsdatenbank zu starten, und habe diesen Fehler erhalten:

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

Für den Anfang sagt die Oracle-Dokumentation für meine Version, dass der Mindestwert für MEMORY_TARGET 512 MB beträgt, aber der obige Fehler sagt mir, dass ich einen größeren Wert verwenden muss. Der nächste logische Schritt ist also, Hilfe für diese Fehlermeldung zu erhalten.

[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.

Nun, das ist interessant. Hier ist mein PFILE-Inhalt.

*.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'

Beachten Sie, dass ich weder SGA_TARGET noch PGA_AGGREGATE_TARGET angebe. Die Fehlermeldung help war hier also keine Hilfe. Nachdem ich das Problem gelöst hatte, stellte ich fest, dass jemand meine Parameterdatei geändert hatte.

*.processes=1600

Dies ist eine kleine Nicht-Produktionsdatenbank. Mein MEMORY_TARGET ist nur 1 GB groß. Warum also ist PROCESSES auf einen so großen Wert gesetzt? Als ich dies auf einen viel kleineren Wert von 600 zurücksetzte, hatte die Instanz keine Probleme beim Starten. Die Anzahl der Prozesse leitet sich aus der Anzahl der Sessions ab, was eine höhere SGA erfordert. Die anfängliche Fehlermeldung war korrekt, gab aber keinen Hinweis darauf, warum das Problem bestand.