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.