sql >> Databasteknik >  >> RDS >> Oracle

ORA-00838

Stötte på ett intressant problem häromdagen som tog ett tag att fixa. Jag försökte starta en icke-produktionsdatabas och fick det här felet:

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

Till att börja med säger Oracle-dokumentationen för min version att minimivärdet för MEMORY_TARGET är 512 MB men ovanstående fel säger mig att jag måste använda ett högre värde. Så nästa logiska steg är att få hjälp med detta felmeddelande.

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

Tja det är intressant. Här är mitt PFILE-innehåll.

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

Observera att jag inte anger SGA_TARGET eller PGA_AGGREGATE_TARGET. Så felmeddelandet hjälp hjälpte inte här. Efter att ha arbetat med problemet upptäckte jag att någon hade ändrat min parameterfil.

*.processes=1600

Detta är en liten icke-produktionsdatabas. Min MEMORY_TARGET är bara 1 GB. Så varför är PROCESSER satt till ett så stort värde? När jag returnerade detta till ett mycket mindre värde på 600 hade instansen inga problem med att starta. Antalet processer härleder antalet sessioner, vilket kräver en högre SGA. Det ursprungliga felmeddelandet var korrekt men gav inga ledtrådar om varför problemet fanns.


  1. Hur klassificeras SQL-kommandon | UBIQ

  2. WinDeath på notifyDataSetChanged()

  3. Exempel på APEX_ZIP

  4. Mytop – Ett användbart verktyg för att övervaka MySQL/MariaDB-prestanda i Linux