sql >> Database >  >> RDS >> Oracle

ORA-00838

Kwam onlangs een interessant probleem tegen dat me een tijdje kostte om op te lossen. Ik probeerde een niet-productiedatabase te starten en kreeg deze foutmelding:

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

Om te beginnen zegt de Oracle-documentatie voor mijn versie dat de minimumwaarde voor MEMORY_TARGET 512 MB is, maar de bovenstaande fout vertelt me ​​dat ik een grotere waarde moet gebruiken. Dus de volgende logische stap is om hulp te krijgen voor deze foutmelding.

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

Nou dat is interessant. Hier is mijn PFILE-inhoud.

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

Merk op dat ik geen SGA_TARGET of PGA_AGGREGATE_TARGET specificeer. Dus de hulp bij de foutmelding hielp hier niet. Nadat ik het probleem had opgelost, ontdekte ik dat iemand mijn parameterbestand had gewijzigd.

*.processes=1600

Dit is een kleine niet-productiedatabase. Mijn MEMORY_TARGET is slechts 1 GB. Dus waarom is PROCESSEN op zo'n grote waarde ingesteld? Toen ik dit terugbracht naar een veel kleinere waarde van 600, had de instantie geen problemen met opstarten. Het aantal processen leidt tot het aantal sessies, waarvoor een hogere SGA nodig is. De aanvankelijke foutmelding was correct, maar gaf geen aanwijzingen waarom het probleem bestond.


  1. PostgreSQL-triggers en basisfuncties voor opgeslagen functies

  2. Strings samenvoegen in SQL

  3. Het gebruik van 'case expression column' in where-clausule

  4. Hoe u met sqlalchemy dynamisch kunt binden aan de database-engine per verzoek