A Microsoft distribui as correções do Microsoft SQL Server 2008 R2 ou Microsoft SQL Server 2008 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 R2 ou SQL Server 2008 corrigir lançamento.
Sintomas
O Microsoft SQL Server 2008 R2 ou o Microsoft SQL Server 2008 pode marcar os ficheiros de dados de base de dados como dispersos, mesmo quando os ficheiros físicos estão marcados como não dispersos no sistema de ficheiros.
Notas
Para determinar se os ficheiros de dados da base de dados estão marcados como dispersos nos metadados SQL Server, execute a instrução seguinte e, em seguida, verifique se a coluna Is_Sparse está definida para um valor diferente de zero no conjunto de resultados:
Utilize
<Nome da base de dados>
Selecione is_sparse , physical_name de sys.database_filesPara consultar o estado dos ficheiros físicos no sistema de ficheiros, execute o seguinte comando do Windows depois de a base de dados estar offline:
fsutil sparse queryflag<files path>\<database file>Se você receber a seguinte saída, o arquivo será marcado como esparso no sistema de arquivos:
Este ficheiro está definido como esparso.
Os metadados SQL Server e os metadados do sistema de arquivos devem ser marcados como esparsos apenas para arquivos de dados de banco de dados que fazem parte de um instantâneo de banco de dados.
Causa
Esse problema ocorre porque o sistema de arquivos marca incorretamente um arquivo de dados de banco de dados inteiro como esparso depois que um fluxo alternativo que foi originalmente marcado como esparso é removido. O fluxo alternativo é removido quando um comando DBCC CHECKDB termina.
Notas
O Uso Interno de Instantâneo do Banco de Dados é um recurso NTFS usado pela família de comandos DBCC CHECKDB. Quando você executa comandos DBCC, o mecanismo de banco de dados cria um fluxo alternativo de instantâneo de banco de dados e o coloca em um estado consistente transacional. O comando DBCC executa verificações no fluxo alternativo. O fluxo alternativo é descartado depois que o comando DBCC é concluído.
O design que causa esse problema foi introduzido no Windows Server 2003, no qual backups de nível de volume do Windows são usados para fazer backup de arquivos de banco de dados. SQL Server metadados armazenam uma cópia dos atributos esparsos para os arquivos de dados nas tabelas do sistema. No entanto, SQL Server não atualiza as informações de Is_Sparse depois que o atributo sparse é removido do sistema de arquivos.
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, migra bases de dados do Windows Server 2003 para o Windows Server 2008 ou para o Windows Server 2008 R2.
Resolução
Para resolver esse problema no SQL Server 2008 R2 ou no SQL Server 2008, aplique o seguinte hotfix e, em seguida, coloque o banco de dados online. Quando o banco de dados é colocado online, SQL Server verifica se os metadados do arquivo de banco de dados físico estão marcados como esparsos no sistema de arquivos. Se estiverem marcados como não esparsos, os metadados SQL Server são atualizados.
Observação Para remover atributos esparsos do sistema de arquivos, copie os arquivos de banco de dados e use a nova cópia dos arquivos para o banco de dados. Para obter mais informações sobre esse processo, visite o seguinte site da MSDN:
Como remover atributos esparsos do sistema de arquivos
Informações de atualização cumulativa
SQL Server 2008 Service Pack 3
A correção para esse problema foi lançada pela primeira vez no pacote de atualização cumulativa 1 para SQL Server 2008 Service Pack 3. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2617146 Pacote de atualizações cumulativas 1 para SQL Server 2008 Service Pack 3Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server anterior 2008 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2629969 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 3 Os hotfixes do Microsoft SQL Server 2008 são criados para service packs SQL Server específicos. Tem de aplicar uma correção do SQL Server 2008 Service Pack 3 a uma instalação do SQL Server 2008 Service Pack 3. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.
SQL Server 2008 Service Pack 1
A correção para esse problema foi lançada pela primeira vez no pacote de atualização cumulativa 16 para SQL Server 2008 Service Pack 1. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2582282 Pacote de atualizações cumulativas 16 para SQL Server 2008 Service Pack 1Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
970365 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 1 Os hotfixes do Microsoft SQL Server 2008 são criados para service packs SQL Server específicos. Tem de aplicar uma correção do SQL Server 2008 Service Pack 1 a uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.
SQL Server 2008 Service Pack 2
A correção para esse problema foi lançada pela primeira vez no pacote de atualização cumulativa 6 para SQL Server 2008 Service Pack 2. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2582285 Pacote de atualizações cumulativas 6 para SQL Server 2008 Service Pack 2Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2402659 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 2 Os hotfixes do Microsoft SQL Server 2008 são criados para service packs SQL Server específicos. Tem de aplicar uma correção do SQL Server 2008 Service Pack 2 a uma instalação do SQL Server 2008 Service Pack 2. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.
SQL Server 2008 R2 CU9
A correção para esse problema foi lançada pela primeira vez no pacote de atualização cumulativa 9 para SQL Server 2008 R2. Para obter mais informações sobre como obter este pacote de atualização cumulativa para o SQL Server 2008 R2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2567713 Pacote de atualizações cumulativas 9 para SQL Server 2008 R2 Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 R2 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
981356 As compilações SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2
SQL Server 2008 R2 Service Pack 1 CU2
A correção para esse problema foi lançada pela primeira vez no pacote de atualizaçã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 que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2567714 Pacote de atualizações cumulativas 2 para SQL Server 2008 R2 Service Pack 1Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 R2 SP1 anterior. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2567616 As compilações do SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2 Service Pack 1
Informações sobre o hotfix
Um hotfix suportado está disponível da Microsoft. No entanto, esse hotfix destina-se a corrigir apenas o problema descrito neste artigo. Aplique esse hotfix somente para sistemas que estão enfrentando o problema descrito neste artigo. Esse hotfix pode receber testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.
Se o hotfix estiver disponível para download, há uma seção "Download de hotfix disponível" na parte superior deste artigo da Base de Dados de Conhecimento. Se esta seção não for exibida, contate o Suporte e Atendimento ao Cliente Microsoft para obter o hotfix.
Observação Se ocorrerem problemas adicionais ou se for necessária alguma solução de problemas, talvez seja necessário criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa dos números de telefone do Suporte e Atendimento ao Cliente da Microsoft ou para criar um pedido de serviço separado, visite o seguinte site da Microsoft:
/contactus/?ws=support Observação O formulário "Download de hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Se não vir o seu idioma, é porque não está disponível uma correção para esse idioma.
Pré-requisitos
Para aplicar esse hotfix, você deve ter o SQL Server 2008 R2 instalado.
Requisito de reinício
Não é necessário reiniciar o computador depois de aplicar esse hotfix.
Informações sobre substituição de correções
Esse hotfix não substitui um hotfix lançado anteriormente.
Informações de ficheiro
A versão global deste hotfix tem os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas em Tempo Universal Coordenado (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na hora local. Para determinar a diferença entre a hora UTC e a hora local, utilize o separador Fuso Horário no item Data e Hora do Painel de Controlo.
| Nome de ficheiro | Versão do ficheiro | Tamanho do ficheiro | Data | Hora | Plataforma |
|---|---|---|---|---|---|
| Sqlservr.exe | 2009.100.1800.0 | 121,829,216 | 08 De julho de 2011 | 11:55 | IA-64 |
| Sqlservr.exe | 2009.100.1800.0 | 62,027,616 | 08 De julho de 2011 | 12:28 | x64 |
| Sqlservr.exe | 2009.100.1800.0 | 42,911,584 | 08 De julho de 2011 | 13:22 | x86 |
Estado
A Microsoft confirmou que se trata de um problema nos produtos 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 esta condição na sua instância de SQL Server e nas versões do produto SQL Server relativamente ao qual a regra é avaliada.
| Software de regras | Título da regra | Descrição da regra | Versões do produto em relação às quais a regra é avaliada |
|---|---|---|---|
| System Center Advisor | SQL Server ficheiros de base de dados marcados como ficheiros dispersos | O System Center Advisor verifica se essa instância SQL Server contém arquivos de banco de dados marcados como esparsos. Apenas os ficheiros de instantâneo de base de dados devem ser marcados como ficheiros. Se os arquivos de banco de dados normais estiverem marcados como esparsos, o Advisor gerará um alerta. O Assistente baseia-se na coluna is_sparse na sys.master_files de vista de catálogo. Reveja os detalhes fornecidos na secção "Informações Recolhidas" do alerta do consultor e verifique o estado disperso ao nível do SO para os ficheiros afetados. Depois de limpar o status de parse do sistema operacional, você pode aplicar o hotfix discutido neste artigo para atualizar os metadados SQL Server e sincronizar com as configurações do sistema operacional. |
SQL Server 2008 SQL Server 2008 R2 SQL Server 2012 |
Referências
Para obter mais informações sobre comandos DBCC, visite o seguinte site da MSDN:
Informações gerais sobre comandos DBCC Para obter mais informações sobre a instrução Fsutil, visite o seguinte site da MSDN:
Informações gerais sobre a declaração Fsutil Para obter mais informações sobre esse problema no Windows Server 2003, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
973886 Não é possível restaurar arquivos grandes no sistema de arquivos NTFS quando todos os fluxos de dados que têm atributos esparsos são excluídos na versão de 64 bits do Windows XP SP2 ou no Windows Server 2003 SP2
932021 Mensagem de erro quando executa o comando "chkdsk" juntamente com o parâmetro "/v" num computador baseado no Windows Server 2003: "Corrigir um número> de segmento de registo de ficheiro <esparso"