gc buffer busy: Attente (RAC) : contention sur un bloc cache fusion en cours de transfert entre instances
OracleQue signifie cette erreur ?
Dans un environnement RAC, une session attend d'accéder à un bloc global en cours de transfert via cache fusion vers/depuis une autre instance, ou maintenu occupé par cette instance.
Cause
Mêmes blocs chauds partagés entre les nœuds RAC (hot block inter-instances), latence/goulot d'étranglement de l'interconnexion, contention inter-nœuds sur des index à clés séquentielles, ou répartition déséquilibrée de la charge.
Comment la corriger
Trouvez les segments concernés avec v$segment_statistics et les vues GV$. Vérifiez l'état et la latence de l'interconnexion (réseau privé et rapide). Utilisez des index à clé inversée ou un partitionnement par hachage pour les index chauds. Réduisez la contention inter-nœuds sur les mêmes blocs en séparant la charge entre les nœuds par service.
Autres entrées pour ce moteur
- db file sequential readAttente : lecture physique d'un seul bloc, généralement un accès par index ou à une table
- db file scattered readAttente : lecture physique multibloc, généralement un full table scan ou un index fast full scan
- buffer busy waitsAttente : contention sur un buffer déjà en cours de lecture ou de modification par une autre session
- library cache lockAttente : contention sur un handle d'objet du library cache (sérialisation parse/DDL)
- ORA-00604error occurred at recursive SQL level (erreur au niveau du SQL récursif)
- ORA-01438value larger than specified precision allowed for this column (valeur supérieure à la précision autorisée pour la colonne)
- ORA-01400cannot insert NULL into (column) (insertion de NULL impossible dans la colonne)