Cas d’usage: Corruption d’un bloc Index

Un petit rappel d’informations sur les cas de corruption de blocs dans une base Oracle.

Les corruptions peuvent être de deux types, logiques ou physiques.
Les corruptions de blocs peuvent être causées par (liste non exhaustive) :
– Disques ou contrôleurs de disques en erreur
– Mémoire défectueuse
– Interface d’entrées/sorties défectueuse (par exemple contrôleur disque défectueux)
– Entrées/sorties OS incomplètes.

Dans le cas d’une corruption physique, la base de données ne reconnaît pas du tout le bloc : le « checksum » est invalide, le « header » et le « footer » du bloc ne correspondent pas et sont incompréhensibles pour le programme.

Dans le cas d’une corruption logique, le bloc est bien reconnu en tant bloc de base de données, mais le contenu est logiquement inconsistant, les informations ne correspondent pas à ce qu’elles devraient être.

Quand RMAN, au cours d’une sauvegarde ou d’une commande de validation, détecte une corruption logique, il laisse une trace dans le fichier alert.log et crée une entrée dans la vue v$database_block_corruption.

Cas d’usage simple, résoudre un bloc d’index corrompu :

1) Identification de l’objet impacté depuis la vue v$database_block_corruption :

Comme c’est un bloc d’index, l’opération de réparation va constituer en la reconstruction de l’index.
2) Reconstruction de l’index :

3) Vérification du block :

Toutefois, vous verrez que la vue v$database_block_corruption contient toujours 1 ligne, qui fait référence à un bloc qui n’est plus utilisé.
Il vous faudra refaire une commande « validate » sous RMAN ou une sauvegarde pour mettre à jour la vue.

Ceci est un cas simple, mais la résolution n’est pas toujours aussi évidente, le support Oracle a cependant beaucoup travaillé sur le sujet pour vous aider…
et vous pouvez approfondir en utilisant la note MOS de référence 28814.1 : « Handling Oracle Block Corruptions » qui contient le traitement pour tous les cas possibles.

En espérant que cela vous aidera lors d’une prochaine corruption.

 

Mathieu Picque

About Mathieu Picque

Mathieu Picque has written 9 post in this blog.

Technicien Support BDD chez EASYTEAM

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

%d blogueurs aiment cette page :