2008-11-24 6 views
4

J'ai un plan de maintenance qui s'exécute chaque semaine dans les heures creuses. Cela rapporte toujours le succès, mais les anciennes sauvegardes ne sont pas supprimées. Je ne veux pas que le lecteur se remplisse.Pourquoi mes sauvegardes SQL Server 2005 ne sont-elles pas supprimées?

DB Server Info: SQL Server Standard Edition 9.00.3042.00

Il y a un "nettoyage de tâches de maintenance" mis à

"Chercher dans le dossier et supprimer des fichiers à partir d'une extension"

et " Supprimer les fichiers en fonction de l'âge du fichier au moment de l'exécution de la tâche "est vérifié et défini sur 4 semaines.

La seule chose que je peux voir est que mes sauvegardes ont chacune leur propre sous-dossier et que ce n'est pas récursif. Est-ce que je manque quelque chose?

aussi: J'ai vu les problèmes pré-SP2, mais je suis en cours d'exécution Service Pack 2.

Répondre

2

Si vous faites vos sauvegardes dans des sous-dossiers, vous devez spécifier le sous-dossier exact pour la suppression.

Par exemple:

Vous faites la sauvegarde en choisissant l'option qui dit quelque chose comme « Faire un fichier de sauvegarde pour chaque base de données » et cochez la case qui dit « Créer un sous-dossier pour chaque base de données ». (je travaille avec une version allemande de SQL Server, donc je traduis tout en anglais moi-même maintenant)

Le dossier spécifié est H: \ sauvegarde, de sorte que les sauvegardes seront effectivement créés dans le dossier H: \ Sauvegarde \ DatabaseName.

Et si vous voulez la tâche de nettoyage de maintenance pour supprimer les sauvegardes via « Supprimer les fichiers en fonction de l'âge du fichier au moment de l'exécution de la tâche », vous devez spécifier le dossier H: \ Backup \ DatabaseName, non H: \ Backup !!!

C'est l'erreur que j'ai faite quand j'ai commencé à utiliser SQL Server 2005 - j'ai mis le même dossier dans les deux champs, sauvegarde et nettoyage.

+0

Ceci est proche de ce que je vois. Nous avons des sauvegardes dans "H: \ Backups \ DatabaseName" et le dossier que j'ai défini pour le nettoyage est H: \ Backups \. Existe-t-il une meilleure façon de faire cela que de simplement sauvegarder TOUT en H: \ Backups \ et que le MP l'efface? – andyhky

+0

Je veux dire, quelle est la solution que vous avez utilisée après avoir vu ce problème? – andyhky

+0

Je crée un travail pour chaque base de données et chaque travail sauvegarde et nettoie cette base de données. En raison de "Créer un sous-dossier pour chaque base de données", la sauvegarde est sous H: \ Backup \ DatabaseName. Et je spécifie exactement ce dossier dans la tâche de nettoyage. (... voir le deuxième commentaire) –

1

Ma compréhension est que vous ne pouvez inclure le premier niveau de sous-dossiers. Je suppose que vous avez déjà coché cette case.

Vos sauvegardes sont-elles plus profondes que celles d'un seul niveau?

Une autre idée est, avez-vous un seul plan de maintenance que vous exécutez pour supprimer les sauvegardes de plusieurs bases de données? La raison pour laquelle je pose cette question est que la façon dont je pourrais voir que vous auriez à faire cela serait de pointer vers un dossier de niveau supérieur, ce qui signifie que vos sous-dossiers de premier niveau ne seraient pas assez profonds. La façon dont j'ai configuré le mien est que la tâche de nettoyage de maintenance fait partie de mon processus de sauvegarde. Ainsi, une fois la sauvegarde terminée pour une base de données spécifique, la tâche de nettoyage de maintenance s'exécute sur les mêmes fichiers de sauvegarde de base de données. Cela me permet d'être plus précis sur le répertoire, donc je ne rencontre pas la structure de répertoires trop profonde. Comme les critères sont définis comme je le souhaite, les éléments ne sont pas supprimés tant que je ne suis pas prêt à les supprimer de toute façon.

Tim

0

Assurez-vous que votre plan de maintenance ne comporte aucune erreur associée. Vous pouvez vérifier le journal des erreurs sous la zone SQL Server Agent dans SQL Server Management Studio. S'il y a des erreurs au cours de vos plans de maintenance, il se ferme probablement avant de commencer à supprimer les sauvegardes obsolètes.

0

Un autre problème pourrait être le "workflow" du plan de maintenance.

Si votre plan comporte plusieurs tâches, vous devez connecter les tâches avec des flèches pour définir l'ordre dans lequel elles seront exécutées.

Problème possible # 1:

Vous avez oublié de les relier avec des flèches. Je viens de tester cela - le travail s'exécute sans erreur ni avertissement, mais il n'exécute que la première tâche.

Problème possible # 2:

Vous avez défini le flux de travail d'une manière que la tâche de nettoyage ne fonctionnera jamais. Si vous connectez deux tâches avec une flèche, vous pouvez cliquer avec le bouton droit de la souris sur la flèche et spécifier si la deuxième tâche sera toujours exécutée ou seulement si la première fonctionne correctement (cela change la couleur de la flèche, les couleurs possibles sont rouges /vert bleu). Peut-être que la sauvegarde fonctionne, puis le nettoyage ne s'exécute jamais car il ne fonctionnera que lorsque les sauvegardes échouent?