Base de données et de restauration peut remplir de la base de données MSDB

Traductions disponibles Traductions disponibles
Numéro d'article: 152354 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Symptômes

Tâches SQL Executive échouent et le message d'erreur suivant est renvoyé :
Erreur : 1105, gravité : 17, état 2
Impossible d'allouer l'espace pour l'objet ' %. * s 'dans la base de données' %. * s ', car le
' %. * s ' segment est plein. Si vous a manqué d'espace dans Syslogs, videz le
journal des transactions. Sinon, utilisez ALTER DATABASE ou sp_extendsegment pour
augmenter la taille du segment.
Les tâches basées sur SQL Executive qui peuvent échouer sont les suivantes :
  1. Dumps planifiées et les restaurations.
  2. Tâches définies pour la réplication.
  3. Alertes.
  4. Tâches planifiées du Web.

Cause

La base de données MSDB est plein.

Contournement

Dans SQL Server 6.5, les tableaux suivants ont été ajoutées à la base de données MSDB pour faciliter la maintenance des informations de sauvegarde :

sysbackupdetail : Spécifie un résumé des périphériques utilisés pour la sauvegarde (vidage).
sysbackuphistory : Spécifie un résumé de chaque opération de sauvegarde (vidage).
sysrestoredetail : Spécifie un résumé des périphériques utilisée pour restaurer (load).
sysrestorehistory : Spécifie un résumé de chaque opération de restauration (load).

SQL Server gère automatiquement un historique complet en ligne sauvegarde et de restauration dans la base de données MSDB. Ces informations comprennent notamment qui a effectué la sauvegarde lorsqu'elle a été effectuée et les périphériques ou fichiers il est stocké sur.

L'administrateur système doit surveiller ces tables à supprimer les anciennes entrées dans ces tables pour vous assurer que la base de données MSDB ne remplit pas.

La procédure stockée suivante peut être utilisée pour supprimer des entrées de ces tables système dans la base de données MSDB.
use master
go
sp_configure 'allow', 1
go
reconfigure with override
go
drop proc sp_cleanbackupRestore_log
   go
   create proc sp_cleanbackupRestore_log
   @DeleteBeforeDate datetime
   as
   begin
      Delete from msdb.dbo.sysbackupdetail where backup_id
         in (Select backup_id from msdb.dbo.sysbackuphistory where backup_start <=
   @DeleteBeforeDate)
      Delete from msdb.dbo.sysbackuphistory where backup_start  <=
   @DeleteBeforeDate
      Delete from msdb.dbo.sysrestoredetail where restore_id
         in (Select restore_id from msdb.dbo.sysrestorehistory where backup_start <=
   @DeleteBeforeDate)
      Delete from msdb.dbo.sysrestorehistory where backup_start <=
   @DeleteBeforeDate
   end
go
sp_configure 'allow', 0
go
reconfigure with override
				
Vous devrez peut-être ensuite exécuter la procédure stockée nouvellement créée. Par exemple, si vous souhaitez supprimer toutes les entrées dans les tables répertoriées dans la procédure stockée qui s'est produite avant le 2 janvier 1997, vous exécuterez les éléments suivants :
exec sp_cleanbackupRestore_log  '1/2/97'
				
si vous souhaitez automatiser le code, vous pouvez utiliser quelque chose de similaire au suivant :
declare @DeleteBeforeDate datetime
-- Modify the second parameter as necessary.
-- It is currently set to delete anything older than 60 days.
select  @DeleteBeforeDate = DATEADD(day, -60, getdate())
select  @DeleteBeforeDate

   exec sp_cleanbackupRestore_log  @DeleteBeforeDate

				
Remarque : si vous recevez un 1105 pour objet 'syslogs', consultez l'article suivant dans la base de connaissances Microsoft : 110139 - INF: Causes of SQL Transaction Log Filling Up.

Propriétés

Numéro d'article: 152354 - Dernière mise à jour: dimanche 9 février 2014 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 6.5 Édition Standard
Mots-clés : 
kbnosurvey kbarchive kbmt kbprb KB152354 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 152354
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com