A Microsoft distribui o Microsoft SQL Server 2008 Service Pack 3 (SP3) ou o Microsoft SQL Server 2008 R2 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior lançamento da atualização SQL Server 2008 SP3 ou SQL Server 2008 R2.
Sintomas
Considere o seguinte cenário:
-
Cria divisórias para uma tabela no SQL Server 2008 ou no SQL Server 2008 R2.
-
Não permite a compressão em todas as divisórias.
-
Tentas inserir um disco numa nova divisória vazia.
Neste cenário, ocorre uma violação de acesso e o seguinte erro é registado no registo de erro do SQL Server:
<Date> <Time> spid## ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt<Date> <Time> spid## SqlDumpExceptionHandler: Process 66 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.<Date> <Time> spid## * BEGIN STACK DUMP:<Date> <Time> spid## * Exception Address = 0000000000C37D22 Module(sqlservr+0000000000137D22)<Date> <Time> spid## * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION<Date> <Time> spid## * Access Violation occurred reading address 0000000000000020
Nota Este problema também ocorre no Microsoft SQL Server 2008 R2.
Resolução
Informação de atualização cumulativa
Pacote de serviço SQL Server 2008 2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 8 para SQL Server 2008 Service Pack 2. Para obter mais informações sobre este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2648096 Pacote de atualização cumulativo 8 para SQL Server 2008 Service Pack 2Nota Como as construçõ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 lançamento de correção SQL Server 2008. A Microsoft recomenda que considere aplicar o mais recente lançamento de correção que contém este 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 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 2 Os hotfixes do Microsoft SQL Server 2008 são criados para pacotes específicos de serviços sql Server. Tem de aplicar um hotfix SQL Server 2008 Service Pack 2 a uma instalação do SQL Server 2008 Service Pack 2. Por predefinição, qualquer hotfix que seja fornecido num pacote de serviços SQL Server está incluído no próximo pacote de serviços sql Server.
SQL Server 2008 R2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 11. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2633145 Pacote de atualização cumulativa 11 para SQL Server 2008 R2 Nota Como as construçõ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 lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este 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 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2
Sql Server 2008 R2 Service Pack 1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 4 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2633146 Pacote de atualização cumulativo 4 para SQL Server 2008 R2 Service Pack 1Nota Como as construçõ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 lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este 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 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 1
Pacote de serviço SQL Server 2008 3
A correção para este problema foi lançada pela primeira vez no pacote de atualização cumulativo 2 para o SQL Server 2008 Service Pack 3. Para obter mais informações sobre como obter este pacote de atualização cumulativa para o SQL Server 2008 Service Pack 3, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2633143 Pacote de atualização cumulativo 2 para SQL Server 2008 Service Pack 3Nota Como as construções são cumulativas, cada nova versão da atualização contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior lançamento da atualização do SqL Server 2008 Service Pack 3. Recomendamos que considere aplicar o mais recente lançamento de atualização que contém este 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 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 3
Mais Informações
Para confirmar se está a experimentar a questão descrita neste artigo de base de conhecimento, siga estes passos:
-
Abra uma ligação DAC ao SQL Server e execute a seguinte consulta:
Use <your_db_name>select * from sys.sysrscols rsc where rsc.rsid in ( select sau.container_idfrom sys.system_internals_allocation_units sau join sys.partitions pt on sau.container_id = pt.partition_idand pt.object_id = object_id(<YourPartitionedTable>) and pt.index_id = 1)
Nota Nesta consulta, <YourPartitionedTable> é um espaço reservado para o nome da mesa de partilha.
-
Na saída da consulta, verifique se a coluna rscolid contém um grande valor. Segue-se um exemplo de um valor tão elevado:
rsid
rscolid
hbcolid
rcmodificado
ti
cid
ordkey m
72057594380091392
0
1
614911578
56
0
4
72057594380091392
11
13
614911578
12967
53265
0
72057594380091392
12
14
614911578
32999
53265
0
72057594380091392
13
15
614911578
32999
53265
0
72057594380091392
14
16
614911578
59
0
0
72057594380091392
15
17
614911578
59
0
0
72057594380091392
17
18
614911578
1834
0
0
72057594380091392
67108865
19
614911578
19627
53625
0
72057594380091392
22
23
614911578
56
0
0
72057594380091392
23
24
614911578
10407
53625
0
72057594380091392
24
25
614911578
662636
0
0
Neste exemplo, o valor de 67108865 é significativamente maior do que outros. Isto indica que está a experimentar a questão que é descrita neste artigo de base de conhecimento.
Para contornar esta questão, reconstruir as divisórias afetadas. Entre em contato com o Microsoft Support para saber quais as divisórias envolvidas. Ou, pode reconstruir todas as divisórias utilizando a seguinte consulta:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".