Dump di database e il ripristino potrebbe occupare database MSDB

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 152354
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Attività basate su Executive SQL esito negativo e viene restituito il seguente messaggio di errore:
Errore: 1105, gravità: 17, stato 2
Impossibile allocare spazio per oggetto ' % * s 'nel database' %. * s ' perché il
' % * s ' segmento è pieno. Se ha esaurito la spazio in Syslogs, eseguire il dump di
log delle transazioni. In caso contrario, utilizzare ALTER DATABASE o sp_extendsegment per
aumentare la dimensione del segmento.
Le attività di SQL Executive basato potrebbero non riuscire includono:
  1. Dump pianificata e ripristino.
  2. Impostare la attività per la replica.
  3. Avvisi.
  4. Attività Web pianificate.
Cause
Il database MSDB è pieno.
Workaround
In SQL Server 6.5, nelle tabelle riportate di seguito sono state aggiunte al database MSDB per facilitare la gestione di informazioni di backup:

sysbackupdetail: Specifica un riepilogo delle periferiche utilizzate per il backup (dump).
sysbackuphistory: Specifica un riepilogo di ogni operazione di backup (dump).
sysrestoredetail: Specifica un riepilogo delle periferiche consente di ripristinare (load).
sysrestorehistory: Specifica un riepilogo di ogni operazione di ripristino (load).

SQL Server automaticamente gestita il completo backup e ripristino cronologia in linea nel database MSDB. Queste informazioni includono chi ha eseguito il backup, quando è stata eseguita e le periferiche o i file viene memorizzato sul.

L'amministratore del sistema è necessario monitorare queste tabelle per eliminare voci precedenti in queste tabelle per assicurarsi che non riempie database MSDB.

La seguente stored procedure utilizzabile per eliminare voci da tabelle di sistema nel database MSDB.
use mastergosp_configure 'allow', 1goreconfigure with overridegodrop 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   endgosp_configure 'allow', 0goreconfigure with override				
sarà quindi necessario eseguire la stored procedure appena creata. Ad esempio, se si desidera eliminare tutte le voci nelle tabelle elencate nella stored procedure le che si è verificato prima il 2 gennaio 1997, eseguire le operazioni seguenti:
exec sp_cleanbackupRestore_log  '1/2/97'				
se si desidera automatizzare il codice, è possibile utilizzare qualcosa di simile al seguente:
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				
Nota: se viene visualizzato un 1105 per syslogs' oggetto' vedere vedere l'articolo seguente della Microsoft Knowledge Base riportato di seguito: 110139 - INF: Causes of SQL Transaction Log Filling Up.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 152354 - Ultima revisione: 02/07/2014 09:37:26 - Revisione: 4.0

Microsoft SQL Server 6.5 Standard Edition

  • kbnosurvey kbarchive kbmt kbprb KB152354 KbMtit
Feedback