CORRECÇÃO: Ficheiros de dados de base de dados poderão ser incorrectamente marcados como disperso no SQL Server 2008 R2 ou no SQL Server 2008 mesmo quando os ficheiros físicos são marcados como não dispersos no sistema de ficheiros

BUGS #: do 147332 (Manutenção do conteúdo)VSTS: 699009

A Microsoft distribui Microsoft SQL Server 2008 R2 ou Microsoft SQL Server 2008 corrige como um ficheiro para transferência. Uma vez que as correcções são cumulativas, cada nova versão inclui todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o SQL Server 2008 R2 anterior ou o SQL Server 2008.

Sintomas

Microsoft SQL Server 2008 R2 ou Microsoft SQL Server 2008 pode marcar os ficheiros de dados de base de dados como disperso mesmo quando os ficheiros físicos são marcados como não dispersos no sistema de ficheiros.

Notas

  • Para determinar se os ficheiros de dados de base de dados estão marcados como disperso nos metadados do SQL Server, execute a seguinte instrução e, em seguida, verifique se a coluna Is_Sparse está definida para um valor diferente de zero no conjunto de resultados:

    Use 

    <database name>select is_sparse , physical_name from sys.database_files

  • Para consultar o estado dos ficheiros físicos no sistema de ficheiros, execute o seguinte comando do Windows depois da base de dados está offline:

    fsutil sparse queryflag 
    <files path>\<database file>

    Se receber a seguinte saída, o ficheiro está marcado como disperso no sistema de ficheiros:

    Este ficheiro está definido como disperso.

  • Os metadados do SQL Server e os metadados do sistema de ficheiros tem de ser marcados como disperso apenas da base de dados para ficheiros de dados que fazem parte de um instantâneo de base de dados.

Causa

Este problema ocorre porque o sistema de ficheiros marca incorrectamente um ficheiro de dados de base de dados completa como disperso após uma sequência alternativa que inicialmente foi marcada como disperso foi removida. A sequência de alternativa é removida quando termina um comando DBCC CHECKDB .

Notas

  • Utilização de instantâneo de base de dados interna é uma funcionalidade NTFS que é utilizada pela família do DBCC CHECKDB de comandos. Quando executa comandos DBCC , o motor de base de dados cria uma sequência de alternativo de instantâneo de base de dados e coloca-o ao estado de consistência transaccional. O comando DBCC executa verificações contra a transmissão em sequência alternativo. A sequência de alternativa é interrompida depois de concluído o comando DBCC .

  • A estrutura que provoca este problema foi introduzida no Windows Server 2003, pela qual as cópias de segurança de nível de volume de Windows são utilizadas para criar cópias de ficheiros de base de dados. Metadados do SQL Server armazena uma cópia dos atributos disperso para os ficheiros de dados em tabelas do sistema. No entanto, o SQL Server não actualiza as informações de Is_Sparse depois do atributo disperso é removido do sistema de ficheiros.

  • Este problema também ocorre depois de migrar uma base de dados do Windows Server 2003 para uma versão posterior de um sistema operativo Windows.

    Por exemplo, pode migra bases de dados do Windows Server 2003 para Windows Server 2008 ou Windows Server 2008 R2.

Resolução

Para resolver este problema no SQL Server 2008 R2 ou do SQL Server 2008, aplicar a correcção seguinte e, em seguida, coloque a base de dados online. Quando a base de dados estiver online, o SQL Server verifica se os metadados do ficheiro de base de dados física está marcado como disperso no sistema de ficheiros. Se estiver marcado como não disperso, os metadados do SQL Server é actualizado.

Nota Para remover atributos dispersos do sistema de ficheiros, copie os ficheiros de base de dados e, em seguida, utilize a nova cópia dos ficheiros da base de dados. Para mais informações sobre este processo, visite o seguinte Web site da MSDN:

Como remover atributos dispersos do sistema de ficheiros

Informações de actualização cumulativa

SQL Server 2008 Service Pack 3

A correcção deste problema publicada pela primeira vez em 1 de pacote de actualização cumulativa para o SQL Server 2008 Service Pack 3. Para mais informações sobre este pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

2617146 cumulativo pacote 1 de actualizações do SQL Server 2008 Service Pack 3Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior do SQL Server 2008. A Microsoft recomenda que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft

2629969 o SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008 Service Pack 3Correcções do Microsoft SQL Server 2008 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2008 Service Pack 3 para uma instalação do SQL Server 2008 Service Pack 3. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

SQL Server 2008 Service Pack 1

A correcção deste problema publicada pela primeira vez no pacote de actualização cumulativa 16 para o SQL Server 2008 Service Pack 1. Para mais informações sobre este pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

2582282 cumulativo pacote 16 de actualizações do SQL Server 2008 Service Pack 1Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior do SQL Server 2008. A Microsoft recomenda que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft

970365 o SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008 Service Pack 1Correcções do Microsoft SQL Server 2008 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

SQL Server 2008 Service Pack 2

A correcção deste problema publicada pela primeira vez no pacote de actualização cumulativa 6 para o SQL Server 2008 Service Pack 2. Para mais informações sobre este pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

2582285 cumulativo pacote 6 de actualizações do SQL Server 2008 Service Pack 2Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior do SQL Server 2008. A Microsoft recomenda que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft

2402659 o SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008 Service Pack 2Correcções do Microsoft SQL Server 2008 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2008 Service Pack 2 para uma instalação do SQL Server 2008 Service Pack 2. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

CU9 do SQL Server 2008 R2

A correcção deste problema publicada pela primeira vez no pacote de actualização cumulativa 9 para SQL Server 2008 R2. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

2567713 cumulativo pacote 9 de actualizações do SQL Server 2008 R2Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o SQL Server 2008 R2 anterior. Recomendamos que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft

981356 o SQL Server 2008 R2 cria disponibilizadas após o lançamento do SQL Server 2008 R2

SQL Server 2008 R2 Service Pack 1 CU2

A correcção deste problema publicada pela primeira vez no pacote de actualização cumulativa 2. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2 SP1, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

2567714 cumulativo pacote 2 de actualizações do SQL Server 2008 R2 Service Pack 1Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o SQL Server 2008 R2 SP1 anterior. Recomendamos que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft

2567616 o SQL Server 2008 R2 cria disponibilizadas após o lançamento do SQL Server 2008 R2 Service Pack 1

Informações sobre correção

Existe uma correção suportada pela Microsoft. No entanto, esta correção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correção apenas em sistemas que tenham o problema descrito neste artigo. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contenha esta correção.

Se a correcção estiver disponível para transferência, existirá uma secção de "Transferência de correcção disponível" na parte superior deste artigo da Base de dados de conhecimento. Se esta secção não for apresentada, contacte o Suporte ao Cliente da Microsoft para obter a correção.

Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Para aplicar esta correcção, tem de ter instalado o SQL Server 2008 R2.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição da correção

Esta correção não substitui uma correção disponibilizada anteriormente.

Informações de ficheiro

A versão global desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas na hora Universal Coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso horário no item data e hora no painel de controlo.

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Sqlservr.exe

2009.100.1800.0

121,829,216

08-Jul-2011

11:55

IA-64

Sqlservr.exe

2009.100.1800.0

62,027,616

08-Jul-2011

12:28

x64

Sqlservr.exe

2009.100.1800.0

42,911,584

08-Jul-2011

13:22

x86

Estado

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais informações

A tabela seguinte fornece mais informações sobre os produtos ou ferramentas que verificam automaticamente para esta condição à sua instância do SQL Server e sobre as versões do produto de servidor de SQL contra o qual a regra é avaliada.

Software de regra

Título de regra

Descrição da regra

Versões de produtos contra os quais a regra é avaliada

O System Center Advisor

Ficheiros de base de dados do SQL Server marcados como ficheiros dispersos


Classificação do System Center verifica se esta instância do SQL Server contém os ficheiros de base de dados que estão marcados como dispersos. Apenas ficheiros de instantâneo de base de dados devem ser marcados como ficheiros. Se os ficheiros de base de dados normal estiverem marcados como disperso, em seguida, a classificação gera um alerta. A classificação baseia-se na coluna is_sparse na sys.master_files de ver catálogo. Reveja os detalhes que são fornecidos na secção "Informações recolhidas" o alerta de classificação e verificar o estado disperso ao nível do sistema operativo para os ficheiros afectados. Depois de limpar o estado de dispersão do SO, pode aplicar o hotfix discutido neste artigo para actualizar os metadados do SQL Server e sincronizar com as definições de sistema operativo.

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

Referências

Para mais informações sobre comandos DBCC, visite o seguinte Web site da MSDN:

Informações gerais sobre os comandos DBCCPara mais informações sobre a instrução de Fsutil , visite o seguinte Web site da MSDN:

Informações gerais sobre a instrução de FsutilPara mais informações sobre este problema no Windows Server 2003, clique nos números de artigo que se segue para visualizar os artigos na Microsoft Knowledge Base:

973886 não pode restaurar ficheiros de grandes dimensões no sistema de ficheiros NTFS quando todas as sequências de dados que têm atributos dispersos são eliminadas na versão de 64 bits do Windows XP SP2 ou no Windows Server 2003 SP2

Mensagem de erro 932021 quando executar o comando "chkdsk" em conjunto com o "/ v" de mudança de um computador baseado no Windows Server 2003: "Correcting ficheiro disperso segmento de registo de < número >"

Author: rdorr; jannaw; sureshka
Writer: v-allzhu; v-jayc
Revisor técnico: rdorr; jannaw
Editor: v-lynan

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

×