SQL server 2005 Checkdb - sem espaço para arquivos de instantâneo

2

Eu tenho um banco de dados de 2 TB + SAP com 8 arquivos de dados, os primeiros arquivos cresceram para preencher o espaço em disco disponível em nosso HP EVA5000, e o crescimento agora está nos novos arquivos. Nós atualizamos o SQL do SQL Server 2000 para 2005 e o Checkdb funciona de forma diferente, e agora falha sem espaço para criar um snapshot. Nós adicionamos 50Gb a cada arquivo como uma medida temporária enquanto prevemos um novo subsistema de E / S. A pergunta é: Como podemos monitorar o uso de instantâneos? O que acontecerá se o Checkdb iniciar agora tiver mais espaço e, em seguida, ficar cheio? e você pode cancelar o CheckDb se você perceber que ele ficará sem espaço?

    
por CPU_BUSY 12.08.2009 / 16:41

2 respostas

3

Ooh Acabei de ler esta última noite no livro SQL Server 2008 Internals (obrigado Paul Randal). Se ficar sem espaço, o instantâneo será excluído. O que quero dizer é no SQL 2005+ o mecanismo interno está realmente criando um instantâneo nos bastidores e executando checkdb contra isso. Você não pode acessar este snapshot como sendo invisível para você, mas ainda ocupa espaço no sistema de arquivos em que os arquivos estão. Se não houver espaço suficiente para criar este instantâneo do sistema, ele lançará um erro e reverterá esse instantâneo.

O que você pode fazer é criar manualmente um instantâneo do banco de dados em outro volume que tenha espaço suficiente e executar o checkdb em relação a ele. Seus resultados ainda devem ser válidos, pois o instantâneo é simplesmente uma coleção de diferenças nas alterações de página em relação aos dados de base. Tenho certeza de que Paulo poderia responder isso de forma mais eloquente, mas essa é a essência básica disso.

Além disso, sim, você pode cancelar uma consulta checkdb em execução.

    
por 12.08.2009 / 16:46
1

Veja este artigo no blog de Paul que responde às suas perguntas:

link

    
por 12.08.2009 / 22:42