Échec de la sauvegarde de SQL Server. Erreur: 3041, gravité: 16, état: 1

11

Tout d'abord, je suis très nouveau chez stackexchange, alors soyez indulgent avec moi.

J'utilise un serveur SQL Server 9.0.4060.

Mon problème est le suivant: ma sauvegarde SQL Server continue d'échouer sur de nombreuses bases de données.

Le plan de maintenance s'exécute sur différents travaux de sauvegarde:

Sauvegarde DIFF tous les jours à 20h30 et sauvegarde FULL tous les dimanches à 20h30.

J'obtiens ces deux erreurs pour chaque base de données qui ne parvient pas à terminer la sauvegarde:

Date        06-11-2012 20:31:06
Log     SQL Server (Current - 07-11-2012 11:43:00)
Source      Backup
Message
BACKUP failed to complete the command BACKUP DATABASE (dbname) WITH DIFFERENTIAL. Check the backup application log for detailed messages.

Date        06-11-2012 20:31:06
Log     SQL Server (Current - 07-11-2012 11:43:00)
Source      Backup
Message
Error: 3041, Severity: 16, State: 1.

Erreurs supplémentaires.

Date     06-11-2012 17:53:27 
Log      SQL Server (Current - 07-11-2012 11:43:00) 
Source   Logon 
Message  Error: 18456, Severity: 14, State: 16.

Date     06-11-2012 17:53:27 
Log      SQL Server (Current - 07-11-2012 11:43:00) 
Source   Logon 
Message  Login failed for user 'sa'. [CLIENT: <local machine>]

Date     06-11-2012 20:30:11
Log      SQL Server (Current - 09-11-2012 11:27:00)
Source   spid15s
Message
SQL Server has encountered 2 occurrence(s) of cachestore flush for the 'Bound Trees' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.

Il existe d'autres erreurs similaires à celle ci-dessus, avec «Plans SQL» et «Plans d'objet». Au lieu de 'Bound Trees'.

Si vous avez besoin d'autres informations, dites simplement le mot.

Arviddk
la source
Y a-t-il des erreurs précédant le 3041 dans le journal des erreurs du serveur SQL? (pas le journal Windows)
Alex K.
Oui, il existe ces deux erreurs: "Date 06-11-2012 17:53:27 Log SQL Server (Current - 07-11-2012 11:43:00) Erreur de message d'ouverture de session source: 18456, gravité: 14, état: 16. "" Date 06-11-2012 17:53:27 Log SQL Server (Actuel - 07-11-2012 11:43:00) Échec de la connexion du message d'ouverture de session source pour l'utilisateur 'sa'. [CLIENT: <ordinateur local> ] "
y a-t-il plus d'erreurs que ça?
swasheck
Oui @swasheck, j'ai ajouté quelques erreurs de plus dans la description
Arviddk
sont ces sauvegardes natives ou utilisez-vous d'autres logiciels de sauvegarde?
swasheck

Réponses:

4

Comme l'a souligné Max, l'erreur de connexion sa ne se corrèle pas avec le temps de sauvegarde car elle se produit plusieurs heures avant, contrairement à la seconde. Avez-vous examiné: http://blogs.msdn.com/b/sqlprogrammability/archive/2007/01/17/10-0-plan-cache-flush.aspx

http://www.sqlservercentral.com/Forums/Topic377116-146-1.aspx#bm380502

L'un des éléments du blog MSDN joue-t-il un rôle dans votre environnement? Le plus courant serait AUTO_CLOSE ON. Faites-nous savoir, merci.

Ali Razeghi
la source
AUTO_CLOSE est activé sur 10 DB sur 164. J'ai compté 70 occurrences de 'Bound Trees', 'SQL Plans' et 'Object Plans' au 13/11/2012 21:45:24. Au 13/11/2012 21:53:15, il a été réinitialisé à 1 occurrence de chacun. J'espère que cela t'aides.
Arviddk
Cela vous aide-t-il à identifier l'erreur @ SQL-Learner?. J'ai demandé aux autres gyus informatiques de mon service s'ils savent si l'une des autres commandes mentionnées dans le blog MSDN.
Arviddk
Salut Arviddk, laissez-moi approfondir la question aujourd'hui! Merci.
Ali Razeghi
D'accord, dans l'attente de votre réponse!
Arviddk
2

S'il vous plaît, jetez un œil ici: Comment dépanner "Msg 3041" dans SQL Server

Extrait de la page:

Le message 3041 est un rapport générique sur l'échec de la sauvegarde. Pour comprendre la cause de l'erreur et la résoudre, vous devez utiliser les entrées du journal des erreurs SQL Server qui se produisent avant l'entrée d'événement 3041. En règle générale, 3041 est précédé d'un message d'erreur détaillé qui indique la véritable raison de l'échec de la sauvegarde. Les messages d'erreur détaillés sont écrits uniquement dans le journal des erreurs SQL Server et dans l'application cliente. Le message détaillé n'est pas signalé dans le journal des applications de Windows.

Mise à jour (Après avoir lu le commentaire @dezso)
J'ai vu "l'erreur supplémentaire" signalée, mais je ne suis pas sûr qu'elle soit liée à l'erreur de sauvegarde. L'erreur de sauvegarde est datée à 20:31:06, mais l '"erreur supplémentaire" est datée à 17:53:27, donc l'erreur supplémentaire s'est produite environ 2 heures et 40 minutes avant l'erreur de sauvegarde réelle. Et ces erreurs supplémentaires sont liées à un problème de connexion.

Je ne pense pas qu'un problème de connexion se produisant à 17:53:27 puisse entraîner l'échec d'une sauvegarde à 20:31:06. Donc, pensez que l'erreur de sauvegarde et que "l'erreur supplémentaire" ne sont pas liées.

Je ne pense pas non plus qu'une erreur générique se produisant à 17:53:27 pourrait entraîner l'échec d'une sauvegarde à 20:31:06 (à moins que la base de données ne soit vraiment grande). @Arviddk rapporte que "ma sauvegarde SQL Server continue d'échouer sur de nombreuses bases de données ". Je pense qu'il est sûr de supposer que "beaucoup" signifie plus de 10 DB.
Je pense donc que si une seule sauvegarde d'une seule base de données prend plus de 2 heures et 40 minutes, vous ne pouvez pas avoir 10 ou 20 bases de données comme celle-ci sur un seul serveur ... ou votre serveur passera sa vie à ne faire que la sauvegarde. J'ai donc supposé que la sauvegarde unique prenait beaucoup moins de 2 heures et 40 minutes, donc je pense que l'erreur de sauvegarde et l'erreur supplémentaire ne sont pas liées.

Et la dernière erreur "cachestore flush / 'Bound Trees'" signalée est datée du 06-11-2012 20:30:11, c'est donc quelque chose qui s'est passé après l'erreur de sauvegarde. Quoi qu'il en soit, un problème lié au cache ne devrait pas entraîner d'erreur (événement s'il peut ralentir quelque chose).

Quelques questions
Quelques questions qui pourraient aider à identifier le problème:

  • Combien de temps faut-il pour exécuter une sauvegarde COMPLÈTE?
  • Combien de temps faut-il pour exécuter une sauvegarde DIFF?
  • L'erreur se produit-elle uniquement sur la sauvegarde DIFF?
  • Quel pourcentage de sauvegarde échoue? (1% à 10% 50%)
  • Peut-être que vous pouvez essayer de faire uniquement une sauvegarde COMPLÈTE pour vérifier s'il s'agit d'un problème lié à la sauvegarde DIFF? (Je n'ai jamais fait de sauvegarde DIFF sur SQL Server, je n'ai aucune expérience avec eux)

Selon le site Web MS dans le journal SQL Server, il devrait y avoir d'autres erreurs liées à l'échec de la sauvegarde, mais je m'attends à quelque chose de plus proche, à temps, de l'heure à laquelle la sauvegarde échoue.

Max
la source
OP a déjà inclus des messages d'erreur antérieurs à 3041 - pensez-vous que ce n'est toujours pas suffisant? Si oui, veuillez modifier votre message en conséquence.
dezso
La sauvegarde échoue pour DIFF et FULL. Il faut en moyenne environ 2 à 3 minutes pour que la sauvegarde se termine. (La dernière erreur est enregistrée 2-3 minutes après le début de la sauvegarde). J'ai compté 100 de ces erreurs sur la sauvegarde DIFF du 13/11/2012 - "BACKUP n'a pas réussi à terminer la commande BACKUP DATABASE (dbname) WITH DIFFERENTIAL ....."
Arviddk
@Arviddk vous parlez de 164 DB, mais ces DB sont-elles toutes sur un seul serveur? Comment sont planifiées les sauvegardes DB? Peut-être que l'erreur que vous voyez peut être liée à une sorte de sauvegardes planifiées qui se chevauchent? (Je ne sais pas si l'exécution simultanée de 2 sauvegardes T-Sql ou plus peut créer des erreurs ... Je n'ai jamais essayé) Si les sauvegardes se chevauchent dans le temps, il est peut-être possible de les forcer à s'exécuter 1 par 1 dans une série façon? (Sur mon serveur, j'ai un seul script qui sauvegarde toutes mes bases de données, donc il n'y a pas de chevauchement dans l'exécution de la sauvegarde)
Max
Oui, il y a 164 DB sur le serveur. Mais 99 d'entre eux sont HORS LIGNE. La fonction 'Auto_close' est activée sur certains DB, afin qu'ils se ferment chaque fois qu'ils ne sont pas utilisés. (pour autant que je comprends?)
Arviddk