Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORA-00838

Mengalami masalah menarik beberapa hari yang lalu yang membutuhkan waktu beberapa saat untuk saya perbaiki. Saya mencoba memulai database non-produksi dan menerima kesalahan ini:

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

Sebagai permulaan, dokumentasi Oracle untuk versi saya mengatakan bahwa nilai minimum untuk MEMORY_TARGET adalah 512 MB, tetapi kesalahan di atas memberi tahu saya bahwa saya harus menggunakan nilai yang lebih besar. Jadi, langkah logis berikutnya adalah mendapatkan bantuan untuk pesan kesalahan ini.

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

Nah itu menarik. Ini isi PFILE saya.

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

Perhatikan bahwa saya tidak menentukan SGA_TARGET atau PGA_AGGREGATE_TARGET. Jadi bantuan pesan kesalahan tidak membantu di sini. Setelah menyelesaikan masalah, saya menemukan bahwa seseorang telah mengubah file parameter saya.

*.processes=1600

Ini adalah database non-produksi kecil. MEMORY_TARGET saya hanya 1GB. Jadi mengapa PROCESSES diatur ke nilai yang begitu besar? Ketika saya mengembalikan ini ke nilai 600 yang jauh lebih kecil, instans tidak memiliki masalah saat memulai. Jumlah proses menghasilkan jumlah sesi, yang memerlukan SGA yang lebih tinggi. Pesan kesalahan awal benar tetapi tidak memberikan petunjuk mengapa masalah itu ada.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh Oracle FOR LOOP REVERSE

  2. Urutan baris default untuk kueri pemilihan di Oracle

  3. Permintaan rekursif di Oracle

  4. Bagaimana cara menggunakan konstanta paket dalam pernyataan SQL SELECT?

  5. Bagaimana saya bisa mendeskripsikan tabel di Oracle tanpa menggunakan perintah DESCRIBE?