2010-06-10 7 views
3

Existe-t-il un moyen de déterminer par programme si une sauvegarde SQL Server est en cours de réalisation sur une base de données particulière? Nous avons des scripts de sauvegarde de base de données automatisés pour les fichiers de données et les fichiers journaux, où les bases de données sont sauvegardées tous les soirs et les fichiers journaux sont sauvegardés toutes les 15 minutes, 24 heures sur 24. Cependant, nous pensons que le travail de sauvegarde du fichier journal échoue s'il s'exécute en même temps que la sauvegarde complète est en cours d'exécution.Comment puis-je savoir si une base de données SQL Server est en cours de sauvegarde

Ce que je voudrais faire est d'apporter une modification à mon script de journal des transactions pour ne pas exécuter une sauvegarde du journal des transactions pendant l'exécution de la sauvegarde complète.

S'il y a un DMV ou une table système que je peux interroger et résoudre cela?

Répondre

1

Oui, il peut être un problème dans SQL 2000. Ne devrait pas être un problème dans 2005+

Voir this ServerFault question pour la raison pour laquelle il est en conflit. Voir this Serverfault question pour un script plus sophistiqué.

+0

+1 Merci pour l'explication aussi. Je vais incorporer cela dans mes scripts. – Guy

10

Oui il y a

select * from sys.dm_exec_requests 
where command = 'backup db' 
and database_id = 6 --or whatever your db id is 
Questions connexes