Despejos de banco de dados e restauração pode encher o banco de dados MSDB

Traduções deste artigo Traduções deste artigo
ID do artigo: 152354 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

Tarefas com base em executivo SQL falharem e a seguinte mensagem de erro é retornada:
Erro: 1105, gravidade: 17, estado 2
Não é possível alocar espaço para objeto ' %. * s 'no banco de dados' %. * s ' porque o
' %. * s ' segmento está cheio. Se você executou fora do espaço em Syslogs, despejar o
log de transações. Caso contrário, use ALTER DATABASE ou sp_extendsegment para
Aumente o tamanho do segmento.
As tarefas baseadas em SQL Executive podem falhar incluem:
  1. Despejos agendados e restaurações.
  2. Tarefas configuradas para replicação.
  3. Alertas.
  4. As tarefas agendadas da Web.

Causa

O banco de dados MSDB está cheio.

Como Contornar

No SQL Server 6.5, as tabelas a seguir foram adicionadas ao banco de dados MSDB para ajudar na manutenção de informações de backup:

sysbackupdetail: especifica um resumo dos dispositivos usados para backup (dump).
sysbackuphistory: especifica um resumo de cada operação de backup (dump).
sysrestoredetail: especifica um resumo dos dispositivos usados para restaurar (carregar).
sysrestorehistory: especifica um resumo de cada operação de restauração (carregar).

SQL Server mantém automaticamente um online backup e restauração histórico completo no banco de dados MSDB. Essas informações incluem quem executou o backup, quando foi feito e quais dispositivos ou arquivos que ele está armazenado.

O administrador do sistema deve monitorar essas tabelas para excluir as entradas antigas nessas tabelas para garantir que o banco de dados MSDB não preenche.

O procedimento armazenado seguinte pode ser usado para excluir entradas destas tabelas de sistema no banco de dados 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
				
, em seguida, você precisará executar o procedimento armazenado recém-criado. Por exemplo, se você quiser excluir todas as entradas nas tabelas listadas no procedimento armazenado que ocorreu antes de 2 de janeiro de 1997, você executaria o seguinte:
exec sp_cleanbackupRestore_log  '1/2/97'
				
se você quiser automatizar o código, você pode usar algo semelhante à seguinte:
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

				
Observação: se você receber um 1105 para syslogs' objeto' consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft: 110139 - INF: Causes of SQL Transaction Log Filling Up.

Propriedades

ID do artigo: 152354 - Última revisão: segunda-feira, 30 de setembro de 2013 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 6.5 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbprb KB152354 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 152354

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