décembre 19, 2021

Journaux SQL Server DBA

Effectuer des sauvegardes de base de données est l’une des tâches les plus fréquemment exécutées par un DBA. La plupart du temps, la fenêtre de maintenance que l’équipe DBA obtient pour effectuer des activités de maintenance de base de données est généralement inférieure. Le plus souvent, les tâches de maintenance de la base de données s’exécutent au-delà de la fenêtre stipulée et l’équipe d’application commence à s’en plaindre.

Même dans notre environnement, l’équipe d’application revient généralement à déclarer:  » Nos travaux critiques sont sur le point de commencer dans les prochaines minutes. Nous voyons qu’un processus de sauvegarde de base de données utilise la plupart des ressources. Puisque cela peut affecter nos emplois, pouvez-vous le TUER? »

Pour eux, c’est le travail de sauvegarde qui s’exécute tous les jours. Mais seul le DBA saurait à quel point une sauvegarde de base de données est précieuse. Je ne me souviens pas combien de fois cette sauvegarde supplémentaire m’a aidé à sortir de situations difficiles ou m’a donné la confiance nécessaire pour aller de l’avant avec une proposition risquée.

Lorsque quelqu’un demande combien de temps ce travail de sauvegarde s’exécute ou combien de travail il a déjà fait, la meilleure option dans SQL Server 2000 était de vérifier la sortie donnée par le paramètre stats dans le script de sauvegarde. Mais si quelqu’un a oublié d’inclure le paramètre stats dans le script de sauvegarde, il n’y a aucun moyen de vérifier l’état d’achèvement de la sauvegarde dans SQL Server 2000.

Mais à partir de SQL Server 2005, ce comportement a changé. L’un des nombreux DMV merveilleux à inclure dans SQL Server 2005 est sys.dm_exec_requests. Avec ce DMV, le statut, le pourcentage terminé, etc. du processus de sauvegarde (d’ailleurs toute commande SQL) peut être facilement suivie. Voici le script qui fait exactement la même chose.

SELECT A.NAME,B.TOTAL_ELAPSED_TIME/60000 AS ,B.ESTIMATED_COMPLETION_TIME/60000 AS ,B.PERCENT_COMPLETE as ,(SELECT TEXT FROM sys.dm_exec_sql_text(B.SQL_HANDLE))AS COMMAND FROM MASTER..SYSDATABASES A, sys.dm_exec_requests BWHERE A.DBID=B.DATABASE_ID AND B.COMMAND LIKE '%BACKUP%' order by percent_complete desc,B.TOTAL_ELAPSED_TIME/60000 desc

Je sais que la plupart d’entre nous utilisent déjà une version ou l’autre de ce script depuis très longtemps. Étant donné que ce script a récemment aidé David Rummel à suivre la sauvegarde d’une grande base de données, j’ai pensé que cela pourrait aider quelqu’un d’autre quelque part.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.