Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-00838

Natknąłem się na interesujący problem, którego naprawienie zajęło mi trochę czasu. Próbowałem uruchomić nieprodukcyjną bazę danych i otrzymałem następujący błąd:

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

Na początek dokumentacja Oracle dla mojej wersji mówi, że minimalna wartość dla MEMORY_TARGET to 512 MB, ale powyższy błąd mówi mi, że muszę użyć większej wartości. Więc następnym logicznym krokiem jest uzyskanie pomocy dotyczącej tego komunikatu o błędzie.

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

To ciekawe. Oto moja zawartość 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'

Zauważ, że nie określam SGA_TARGET ani PGA_AGGREGATE_TARGET. Więc komunikat o błędzie pomocy nie był tutaj pomocny. Po rozwiązaniu problemu odkryłem, że ktoś zmienił mój plik parametrów.

*.processes=1600

To jest mała nieprodukcyjna baza danych. Moja MEMORY_TARGET ma tylko 1 GB. Dlaczego więc PROCESY mają tak dużą wartość? Kiedy przywróciłem to do znacznie mniejszej wartości 600, instancja nie miała problemów z uruchomieniem. Liczba procesów wywodzi się z liczby sesji, co wymusza wyższy SGA. Początkowy komunikat o błędzie był prawidłowy, ale nie zawierał żadnych wskazówek, dlaczego wystąpił problem.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie bez rozróżniania wielkości liter w Oracle

  2. Zmień nazwę tabeli lub widoku Oracle

  3. ORA-00933:Polecenie SQL nie zostało poprawnie zakończone

  4. Jaka jest różnica między maską daty „yy” i „rr” Oracle?

  5. SQL (ORACLE):ORDER BY i LIMIT