DBAtlas · Atlas d'exploitation des bases de données

ORA-00494: enqueue held for too long by 'inst N, osid M' (enqueue détenu trop longtemps par 'inst N, osid M')

Oracle

Que signifie cette erreur ?

Un enqueue de ressource critique (par ex. CF - enqueue du fichier de contrôle) a été détenu par un processus bien plus longtemps que permis, et Oracle a tué ce processus pour éviter que le système se fige. Apparaît dans l'alert.log avec une entrée 'killing enqueue blocker'.

Cause

Un processus d'arrière-plan ou utilisateur a détenu un enqueue important au-delà du délai autorisé à cause d'un goulot d'étranglement I/O, d'une forte pression CPU ou d'un blocage de l'OS (swap, disques lents) ; pour l'enqueue du fichier de contrôle (CF), ce délai est fixé par _controlfile_enqueue_timeout (900 s par défaut). Les paramètres cachés (underscore) ne doivent être modifiés que sur indication d'Oracle Support. Généralement déclenché par la latence du stockage ou des processus lents comme LGWR/CKPT.

Comment la corriger

Examinez l'alert.log et le fichier de trace du processus tué pour déterminer quel enqueue (généralement le fichier de contrôle) et quel processus d'arrière-plan sont en cause. La vraie cause est généralement la latence du stockage/des I/O : vérifiez les temps de réponse des disques, le multipath et l'état des contrôleurs. Réduisez la pression CPU/mémoire et l'utilisation du swap. Si cela se répète, partagez l'analyse de la trace avec Oracle Support.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur