Published on

December 7, 2012

Assurer l’intégrité de la base de données avec les plans de maintenance SQL Server

En tant qu’administrateur de base de données (DBA), l’une de vos responsabilités principales est de garantir l’intégrité de vos bases de données. Une façon d’y parvenir est d’exécuter régulièrement des vérifications de cohérence. Cependant, l’exécution de ces vérifications via un plan de maintenance dans SQL Server peut parfois entraîner des erreurs inattendues.

Avez-vous déjà rencontré le message d’erreur “Msg 5808, Level 16, State 1, Line 2 Ad hoc update to system catalogs is not supported” lors de l’exécution de checkdb via un plan de maintenance ? Cette erreur peut être frustrante et vous laisser perplexe quant à la raison pour laquelle un outil conçu pour créer des plans de maintenance générerait une telle erreur.

La cause de ce comportement réside dans un extrait de code TSQL qui est exécuté lors du plan de maintenance. L’extrait de code, EXEC sys.sp_configure N'user options', 0, est responsable de la mise à jour d’un paramètre de configuration appelé “Allow Updates”. Cependant, ce paramètre peut causer des conflits et entraîner le message d’erreur mentionné ci-dessus.

Pour résoudre ce problème, vous avez plusieurs options. Une solution rapide consiste à modifier la valeur du paramètre “Allow Updates” à 0 en utilisant le code suivant :

EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH override

Alternativement, vous pouvez modifier le plan de maintenance pour exclure l’exécution de l’extrait de code EXEC sys.sp_configure N'user options', 0 complètement. Cela peut être fait en supprimant ou en modifiant l’étape pertinente dans le plan de maintenance.

Cependant, la meilleure approche, à mon avis, est d’éviter d’utiliser les plans de maintenance pour les vérifications de cohérence. Au lieu de cela, envisagez d’utiliser des routines personnalisées, telles que celles utilisant sp_msforeachdb, ou tirez parti des routines de plan de maintenance développées par des experts comme Ola Hallengren. Ces routines nécessitent un peu plus de réflexion et d’effort pour être mises en place, mais elles offrent plus de contrôle et de flexibilité dans la gestion des vérifications de cohérence de vos bases de données.

En adoptant une approche proactive pour garantir l’intégrité de la base de données, vous pourrez dormir tranquille en sachant que vos bases de données ne sont pas corrompues. Évitez les pièges de l’exécution de checkdb via des plans de maintenance et explorez des méthodes alternatives qui offrent un meilleur contrôle et une meilleure fiabilité.

N’oubliez pas, en tant que DBA, il est crucial de rester vigilant et d’améliorer continuellement vos stratégies de maintenance de base de données pour que vos systèmes fonctionnent correctement.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.