Maison  >  Article  >  base de données  >  Comment réparer la tâche planifiée Oracle a échoué 16 fois

Comment réparer la tâche planifiée Oracle a échoué 16 fois

下次还敢
下次还敢original
2024-05-10 03:00:271192parcourir

Les raisons de l'échec de la tâche cron Oracle 16 fois peuvent inclure un package non valide, des autorisations utilisateur insuffisantes, une inactivité de la base de données ou des ressources insuffisantes. Les étapes de réparation comprennent : 1. Vérifier la validité du package ; 2. Vérifier les autorisations des utilisateurs ; 3. Vérifier l'état de la base de données ; 4. Surveiller l'utilisation des ressources ; 6. Réinitialiser les tâches planifiées ;

Comment réparer la tâche planifiée Oracle a échoué 16 fois

La tâche planifiée Oracle a échoué 16 fois

Cause du problème

La raison pour laquelle la tâche planifiée Oracle a échoué 16 fois peut être due aux problèmes suivants :

  • Exception de package non valide : Utilisation des tâches planifiées La procédure stockée ou la fonction a été modifiée, ce qui rend le package invalide.
  • Autorisations utilisateur insuffisantes : L'utilisateur exécutant la tâche planifiée n'a pas d'autorisations d'exécution sur l'objet appelant (comme une procédure stockée).
  • La base de données est inactive : La base de données est fermée ou indisponible, ce qui entraîne l'échec de l'exécution des tâches planifiées.
  • Ressources de base de données insuffisantes : Les tâches synchronisées nécessitent beaucoup de ressources, telles que le processeur ou la mémoire, mais la base de données est actuellement incapable de les fournir.
  • Autres exceptions : Toute autre exception causée par des conditions inattendues, telles que des erreurs ORA.

Étapes de correction

1. Vérifiez la validité du package

Exécutez la commande suivante à partir de l'invite de commande :

<code class="sql">SELECT object_name, status FROM dba_objects WHERE object_type='PACKAGE' AND status='INVALID';</code>

Si vous trouvez des packages non valides, recompilez-les ou rechargez-les.

2. Vérifiez les autorisations de l'utilisateur

Utilisez la commande suivante pour vérifier les autorisations de l'utilisateur pour exécuter les tâches planifiées :

<code class="sql">SELECT granted_role FROM dba_role_privs WHERE grantee = '<user_name>';</code>

Assurez-vous que l'utilisateur dispose des autorisations d'exécution sur les objets concernés.

3. Vérifiez l'état de la base de données

Vérifiez l'état de la base de données à l'aide de la commande suivante :

<code class="sql">SELECT open_mode FROM v$database;</code>

Si le résultat est « LECTURE SEULEMENT » ou si la base de données est fermée, veuillez redémarrer la base de données.

4. Surveiller l'utilisation des ressources

Utilisez la commande suivante pour surveiller l'utilisation des ressources de la base de données :

<code class="sql">SELECT name, busy_time, wait_time, time_waited FROM v$active_session_history;</code>

Si les tâches planifiées ont une forte demande de ressources, veuillez envisager d'optimiser le code ou d'augmenter l'allocation des ressources de la base de données.

5. Diagnostiquer les autres exceptions

Si les étapes ci-dessus ne résolvent pas le problème, vérifiez le fichier journal Oracle (/oracle/[db_name]/trace/[trace_file].dbf) pour d'autres exceptions.

6. Réinitialisez la tâche planifiée

Réinitialisez la tâche planifiée :

<code class="sql">BEGIN
  SYS.DBMS_SCHEDULER.DISABLE('<job_name>');
  SYS.DBMS_SCHEDULER.DROP_JOB('<job_name>');
END;
/</code>

Recréez ensuite la tâche planifiée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn