Copia a base de dados e restauro pode preencher MSDB base de dados

Traduções de Artigos Traduções de Artigos
Artigo: 152354 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sintomas

Falham de SQL Executive baseadas em tarefas e é devolvida a seguinte mensagem de erro:
Erro: 1105, gravidade: 17, Distrito 2
Não é possível atribuir espaço para o objecto ' %. * s 'na base de dados' %. * s ' porque o
' %. * s ' segmento está cheio. Se lhe ficou sem espaço na Syslogs, copiar o
registo de transacções. Caso contrário, utilize ALTER DATABASE ou sp_extendsegment para
Aumente o tamanho do segmento.
As tarefas baseado em SQL executivo poderão falhar incluem:
  1. Informações de estado agendadas e restaura.
  2. Tarefas definido para replicação.
  3. Alertas.
  4. Tarefas agendadas da Web.

Causa

A base de dados MSDB está cheia.

Como contornar

No SQL Server 6.5, as seguintes tabelas foram adicionadas à base de dados MSDB para ajudar na manutenção de informações de cópia de segurança:

sysbackupdetail: Especifica um resumo dos dispositivos utilizados para cópia de segurança (informações de estado).
sysbackuphistory: Especifica um resumo de cada operação de cópia de segurança (informações de estado).
sysrestoredetail: Especifica um resumo dos dispositivos utilizados para restaurar (carregar).
sysrestorehistory: Especifica um resumo de cada operação de restauro (carregar).

SQL Server automaticamente mantém um completo online a cópia de segurança e restauro de histórico na base de dados MSDB. Estas informações incluem que efectuada cópia de segurança, quando foi feito e que dispositivos ou ficheiros é armazenada no.

O administrador do sistema tem de monitorizar estas tabelas para eliminar movimentos antigos nestas tabelas para garantir que base de dados MSDB não preenche.

O procedimento armazenado seguinte pode ser utilizado para eliminar entradas destas tabelas de sistema na base 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, terá de executar o procedimento armazenado recém-criado. Por exemplo, se pretender eliminar todas as entradas nas tabelas listados no procedimento armazenado que ocorreram antes de 2 de Janeiro de 1997, deverá executar o seguinte:
exec sp_cleanbackupRestore_log  '1/2/97'
				
se pretender automatizar o código, pode utilizar 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

				
NOTA: se receber um 1105 para o objecto 'syslogs', consulte o seguinte artigo na base de dados de conhecimento da Microsoft: 110139 - INF: Causes of SQL Transaction Log Filling Up.

Propriedades

Artigo: 152354 - Última revisão: 12 de fevereiro de 2014 - 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 152354

Submeter comentários

 

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