sql >> Databáze >  >> RDS >> Oracle

ORA-00838

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.


  1. Nasazení databáze z ovládání zdroje

  2. Jak bezpečné je vlákno EnableWriteAheadLogging v kontextu skutečného použití a dokumentace SQLite?

  3. Potřebujete sloupec datetime na serveru SQL Server, který se automaticky aktualizuje při změně záznamu

  4. Naučte se, jak vytvořit PK z Sequence Trigger v SQL Developer