Symptomer
Overvej følgende scenarie:
- Antag, at du har partitionerede tabeller i Microsoft SQL Server, og at de er en del af Change Data Notering (CDC) eller Transactional Replication. Du skifter partition ind eller ud fra disse tabeller.
- Når du udfører DML-handlinger (Data Manipulation Language), efter partitionsskift, bemærker du muligvis, at der opstår en EXCEPTION_ACCESS_VIOLATION , og der genereres en hukommelsesdumpfil.
Bemærk
Dato/klokkeslæt ***Stakdump sendes til FilePath\FileName
Dato og klokkeslæt SqlDumpExceptionHandler: Process ProcessID genererede alvorlig undtagelse c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server afslutter denne proces.
Dato og klokkeslæt * *******************************************************************************
Dato og klokkeslæt *
Dato og klokkeslæt * START STAKDUMP:
Dato og klokkeslæt *
Dato og klokkeslæt *
Dato og klokkeslæt *
Dato og klokkeslæt *
Dato/klokkeslæt * Undtagelsesadresse = 000007FEE724BD80 Module(sqllang+0000000015BBD80)
Dato/klokkeslæt * undtagelseskode = c0000005 EXCEPTION_ACCESS_VIOLATION
Dato og klokkeslæt * Der skete adgangsfejl ved læsning af adresse 000000000000002A
Dato og klokkeslæt * Inputbuffer 70 byte
Dato og klokkeslæt * sys.sp_MScdc_capture_job
Dato og klokkeslæt *
Bemærk
Dato/klokkeslæt ***Stakdump sendes til FilePath\FileName
Dato og klokkeslæt SqlDumpExceptionHandler: Proces-PID genererede alvorlig undtagelse c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server afslutter denne proces.
Dato og klokkeslæt * *******************************************************************************
Dato og klokkeslæt *
Dato og klokkeslæt * START STAKDUMP:
Dato og klokkeslæt * Dato/klokkeslætSPID
Dato og klokkeslæt *
Dato og klokkeslæt *
Dato/klokkeslæt * Undtagelsesadresse = 000007FEE9D26640 Module(sqllang+0000000001586640)
Dato/klokkeslæt * undtagelseskode = c0000005 EXCEPTION_ACCESS_VIOLATION
Dato og klokkeslæt * Der skete adgangsfejl ved læsning af adresse 000000000000002A
Dato og klokkeslæt * Inputbuffer 109 byte -
Dato/klokkeslæt * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00
Dato/klokkeslæt * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
Dato/klokkeslæt * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
Dato/klokkeslæt * & & ÿ 01 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 ff
Dato/klokkeslæt * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00
Dato/klokkeslæt * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 20 a1 07
Dato og klokkeslæt * 00
- Hvis du kører følgende forespørgsel mod destinationstabellen, vil du muligvis bemærke, at værdien for den is_replicated kolonne markeres som '1' for ikke-grupperet indeks, hvilket ikke er korrekt.
select index_id, partition_number,* from sys.system_internals_partition_columns pc with(nolock)
JOIN sys.partitions p with(nolock)
ON p.partition_id = pc.partition_id
where p.object_id = object_id ('PartitionTable')
order by 2
Løsning
Dette problem er rettet i følgende kumulative opdateringer til SQL Server:
Kumulativ opdatering 1 til SQL Server 2017
Kumulativ opdatering 5 til SQL Server 2016 SP1
Kumulativ opdatering 8 til SQL Server 2014 SP2
Om kumulative opdateringer til SQL Server:
Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:
Seneste kumulative opdatering til SQL Server 2017
Seneste kumulative opdatering til SQL Server 2016
Seneste kumulative opdatering til SQL Server 2014
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.