Killing DBCC CheckDB quando o armazenamento blips

1

Os controladores em uma das SANs do meu cluster estão se reiniciando periodicamente. Aparentemente, isso pode ser corrigido por uma atualização de firmware, mas até que possamos aplicar a atualização em alguns dias, eu tenho que viver com o problema. O problema é que, se um deles falhar enquanto o DBCC CHECKDB estiver em execução (durante a manutenção noturna), o CHECKDB trava. Eu não consigo matá-lo .... isso mostra que ele está esperando em ASYNC_IO_COMPLETION para sempre. Preciso dar um ciclo na instância ou existe outra maneira de matar o CHECKDB?

SQL Server 2005 RTM & Instâncias do SP2.

    
por Aaron Alton 24.08.2009 / 19:31

2 respostas

2

Ok - este é o comportamento adequado. O que está acontecendo é que você matou o DBCC CHECKDB enquanto ainda está criando o instantâneo do banco de dados de que precisa. Parte da criação do instantâneo está executando a recuperação de falhas no banco de dados que está sendo verificado, mas no contexto do instantâneo do banco de dados. A recuperação de falhas não pode ser interrompida e um spid que esteja em execução não pode ser eliminado. Então - suas únicas opções são esperar que ele termine ou ciclo a instância - o que irá eliminar o instantâneo. Quando alterei o CHECKDB para usar os instantâneos do banco de dados, sabíamos que esse seria um problema em potencial, mas não havia alternativa.

Confira este post no blog onde eu explico um pouco mais: Fazer rollback de transações quando o DBCC CHECKDB é executado?

Felicidades

    
por 25.08.2009 / 01:26
1

Quando você diz que não consegue matá-lo, está tentando cancelar o trabalho? Ou você está matando o SPID do monitor de atividade?

    
por 24.08.2009 / 20:17