Symptomer
Overvej følgende scenarie:
-
Antag, at du har partitionerede tabeller i Microsoft SQL Server, og de er en del af Change Data Capture (CDC) eller Transactional Replication. Du skifter ind eller ud fra disse tabeller.
-
Efter partitionsskiftet, når du udfører DML-handlinger (Data Manipulation Language), bemærker du muligvis, at der opstår en EXCEPTION_ACCESS_VIOLATION , og der genereres en hukommelsesdumpfil.
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/klokkeslæt * ***********
Dato/klokkeslæt *
Dato/klokkeslæt * BEGIN STACK DUMP:
Date/Time *
Date/Time *
Date/Time *
Date/Time * Date/Time *
Date/Time * Exception Address = 000007FEE724BD80 Module(sqllang+0000000015BBD80)
Dato og klokkeslæt * Undtagelseskode = c0000005 EXCEPTION_ACCESS_VIOLATION
Dato og klokkeslæt * Der opstod en adgangsfejl ved læsning af adresse 00000000000002A
Dato og klokkeslæt * Inputbuffer 70 byte
Dato og klokkeslæt * sys.sp_MScdc_capture_job
Dato og klokkeslæt *
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/klokkeslæt *********** *
Dato/klokkeslæt *
Dato/klokkeslæt * START STAK DUMP:
Dato/klokkeslæt * Dato/klokkeslætSPID
Dato/klokkeslæt *
Dato/klokkeslæt *Dato/klokkeslæt *
Undtagelsesadresse = 000007FEE9D26640 Module(sqllang+0000000001586640)
Dato/klokkeslæt * Undtagelseskode = c0000005 EXCEPTION_ACCESS_VIOLATION
Dato/klokkeslæt * Der opstod en adgangsfejl ved læsning af adresse 0000000000002A
Dato og klokkeslæt * Inputbuffer 109 byte -
Dato og klokkeslæt * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00
Dato/klokkeslæt Tid * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
Dato og klokkeslæt * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 26 04 04 f4
Dato og klokkeslæt * & & ÿ 01 00 00 00 00 00 26 04 04 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 og 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, bemærker du muligvis, at den is_replicated kolonnes værdi 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:
Samlet opdatering 1 til SQL Server 2017
Hver ny samlet opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der var inkluderet i den tidligere akkumulerede opdatering. Se de seneste kumulative opdateringer til SQL Server:
Seneste akkumulerede opdatering til SQL Server 2017
Status
Microsoft har bekræftet, at problemet findes 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.