Rumah  >  Artikel  >  pangkalan data  >  Cara membetulkan tugas berjadual Oracle gagal 16 kali

Cara membetulkan tugas berjadual Oracle gagal 16 kali

下次还敢
下次还敢asal
2024-05-10 03:00:271190semak imbas

Sebab kegagalan kerja Oracle cron sebanyak 16 kali mungkin termasuk pakej yang tidak sah, kebenaran pengguna yang tidak mencukupi, tidak aktif pangkalan data atau sumber yang tidak mencukupi. Langkah pembaikan termasuk: 1. Sahkan kesahihan pakej; 2. Semak kebenaran pengguna 3. Semak status pangkalan data 4. Pantau penggunaan sumber;

Cara membetulkan tugas berjadual Oracle gagal 16 kali

Betulkan tugas berjadual Oracle gagal 16 kali

Punca masalah

Sebab tugas berjadual Oracle gagal 16 kali: 🜎 sah mungkin disebabkan oleh masalah berikut :

Penggunaan tugas berjadual Prosedur atau fungsi yang disimpan telah diubah suai, menyebabkan pakej menjadi tidak sah.
  • Kebenaran pengguna yang tidak mencukupi: Pengguna yang menjalankan tugas yang dijadualkan tidak mempunyai kebenaran pelaksanaan pada objek panggilan (seperti prosedur tersimpan).
  • Pangkalan data tidak aktif: Pangkalan data ditutup atau tidak tersedia, menyebabkan tugas yang dijadualkan gagal dilaksanakan.
  • Sumber pangkalan data tidak mencukupi: Tugas berjadual memerlukan banyak sumber, seperti CPU atau memori, tetapi pangkalan data tidak dapat menyediakannya pada masa ini.
  • Pengecualian lain: Mana-mana pengecualian lain yang disebabkan oleh keadaan yang tidak dijangka, seperti ralat ORA.
  • Betulkan Langkah

1. Sahkan kesahihan pakej

Jalankan arahan berikut dari command prompt:

<code class="sql">SELECT object_name, status FROM dba_objects WHERE object_type='PACKAGE' AND status='INVALID';</code>
Jika anda mendapati pakej yang tidak sah, susun semula atau muatkan semula.

2. Semak kebenaran pengguna

Gunakan arahan berikut untuk menyemak kebenaran pengguna untuk melaksanakan tugas yang dijadualkan:

<code class="sql">SELECT granted_role FROM dba_role_privs WHERE grantee = '<user_name>';</code>
Pastikan pengguna mempunyai kebenaran pelaksanaan pada objek yang berkaitan.

3. Semak status pangkalan data

Semak status pangkalan data menggunakan arahan berikut:

<code class="sql">SELECT open_mode FROM v$database;</code>
Jika hasilnya 'BACA SAHAJA' atau pangkalan data ditutup, sila mulakan semula pangkalan data.

4. Pantau penggunaan sumber

Gunakan arahan berikut untuk memantau penggunaan sumber pangkalan data:

<code class="sql">SELECT name, busy_time, wait_time, time_waited FROM v$active_session_history;</code>
Jika tugas berjadual mempunyai permintaan tinggi untuk sumber, sila pertimbangkan untuk mengoptimumkan kod atau meningkatkan peruntukan sumber pangkalan data.

5. Diagnosis pengecualian lain

Jika langkah di atas tidak menyelesaikan isu, semak fail log Oracle (/oracle/[db_name]/trace/[trace_file].dbf) untuk pengecualian lain.

6. Tetapkan semula tugas yang dijadualkan

Tetapkan semula tugas yang dijadualkan:

<code class="sql">BEGIN
  SYS.DBMS_SCHEDULER.DISABLE('<job_name>');
  SYS.DBMS_SCHEDULER.DROP_JOB('<job_name>');
END;
/</code>
Kemudian buat semula tugasan yang dijadualkan.

Atas ialah kandungan terperinci Cara membetulkan tugas berjadual Oracle gagal 16 kali. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn