Onehdy jsem narazil na zajímavý problém, který mi chvíli trvalo opravit. Pokoušel jsem se spustit neprodukční databázi a zobrazila se tato chyba:
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1428M ORA-01078: failure in processing system parameters
Pro začátek, dokumentace Oracle pro mou verzi říká, že minimální hodnota pro MEMORY_TARGET je 512 MB, ale výše uvedená chyba mi říká, že musím použít větší hodnotu. Takže dalším logickým krokem je získat nápovědu pro tuto chybovou zprávu.
[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.
No to je zajímavé. Zde je můj obsah 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'
Všimněte si, že neuvádím SGA_TARGET nebo PGA_AGGREGATE_TARGET. Takže chybová zpráva help zde nepomohla. Po vyřešení problému jsem zjistil, že někdo změnil můj soubor parametrů.
*.processes=1600
Jedná se o malou neprodukční databázi. Moje MEMORY_TARGET je pouze 1 GB. Proč jsou tedy PROCESY nastaveny na tak vysokou hodnotu? Když jsem to vrátil na mnohem menší hodnotu 600, instance neměla problémy se spuštěním. Počet procesů odvozuje počet relací, což vyžaduje vyšší SGA. Počáteční chybová zpráva byla správná, ale neposkytla žádné vodítko k tomu, proč problém existoval.