O banco de dados SQL Alter falhou - sendo usado pelo processo de ponto de verificação

2

No meu SQL Server 2008, eu tenho um trabalho do agente SQL para restaurar um banco de dados todas as noites. Procedimento:

  1. encontre o backup mais recente em outro servidor
  2. Mate toda a conencção no banco de dados de destino
  3. Restaurar banco de dados de destino com substituição, recuperação

Ele falhou no último final de semana porque o banco de dados estava sendo usado por um processo do sistema (spid 11 checkpoint). desde que eu não poderia matar o processo do sistema, eu corrigi isso reiniciando o sql server. Ele falhou neste final de semana também com o mesmo erro (processo checkpint neste banco de dados a partir de sp_who ) e quando eu executo:

SELECT session_id,request_id,command,status,start_time
FROM sys.dm_exec_requests 
WHERE session_id = 11

Mostra:

11  0   CHECKPOINT  background  2010-04-06 10:17:49.103

Eu não posso reiniciar o servidor toda vez que ele falhar.
Alguém pode me ajudar a consertar isso?

Obrigado antecipadamente

Manjot

    
por Manjot 12.04.2010 / 01:56

3 respostas

1

fixo desde que foi restaurado diariamente. Eu o excluí do re-index, dbcc checkdb, atualizar estatísticas, etc planos de manutenção.

embora tenham sido executados durante uma programação separada, a exclusão do banco de dados corrigiu o problema.

    
por 26.04.2010 / 01:29
3

Não mate os SPIDs com menos de 50! Estes são processos do sistema

Para ver se você pode tirar o DB do estado de "restauração" tente

RESTORE DATABASE MyDB WITH RECOVERY

Editar, após comentário

Supondo que você queira restaurar o banco de dados e não se preocupe em mantê-lo ...

Interrompa o SQL Server, mova o MDF / LDF para outro local, inicie o SQL Server.

O banco de dados aparece offline (esqueci o status exato). Então você pode soltá-lo, restaurá-lo

    
por 12.04.2010 / 06:26
1

Em vez de eliminar as conexões abertas, tente

ALTER DATABASE myDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE

Em seguida, faça a restauração ou, melhor ainda, solte-a e restaure.

Depois de terminar, não se esqueça de retornar o banco de dados ao estado anterior:

ALTER DATABASE myDatabase SET MULTI_USER
    
por 12.04.2010 / 04:02