Simptomi
Razmotrite sledeći scenario:
-
Pretpostavimo da imate particije u sistemu Microsoft SQL Server i da su one deo funkcije Change Data Capture (CDC) ili Transactional Replication. Particiju za prebacivanje ili prebacivanje iz ovih tabela.
-
Nakon prekidača particije kada izvršite DML (Data Manipulation Language) operacije, možda ćete primetiti da se EXCEPTION_ACCESS_VIOLATION pojavljuje i generiše datoteka slike stanja memorije.
Datum/vreme ***Slaganje slike stanja memorije koje se šalje u FilePath\FileNameDate/Time SqlDumpExceptionHandler: Process ProcessID generisao fatalni izuzetak c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server prekida ovaj proces. Datum/vreme **********************************************************************************************************************************************************************************************************************************************************************************************************************************************************AdresaDate/Time Date/Time Date/Time izuzetka = 000007FEE724BD80 Modul(sqllang+0000000015BBD80)Date/Time Datum/vreme * Kôd izuzetka = c000000 Pet EXCEPTION_ACCESS_VIOLATIONDate/Time datum/vreme * Povreda pristupa se dogodila čitanje adrese 000000000002ADatum/vreme * Ulazni bafer 70 bajta Date/Time Datum/vreme * sys.sp_MScdc_capture_jobDatum/vreme *Date/Time
Datum/vreme***Slaganje slike stanja memorije koje se šalje u FilePath\FileNameDate/TimeSqlDumpExceptionHandler: Proces PID je generisao fatalni izuzetak c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server prekida ovaj proces. Date/Time * *******************************************************************************Date/Time *Date/Time * BEGIN STACK DUMP:Date/Time * Date/TimeSPIDDate/Time *Date/Time *Date/Time * Exception Address = 000007FEE9D26640 Module(sqllang+0000000001586640)Date/Time * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONDate/Time * Access Violation occurred reading address 000000000000002ADate/Time * Input Buffer 109 bytes -Date/Time * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00Date/Time * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00Date/Time * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4Date/Time * & & ÿ 01 00 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 ffDate/Time * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00Date/Time * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 26 04 20 a1 07Date/Time * 00
-
Ako pokrenete sledeći upit u odnosu na odredišnu tabelu, možda ćete primetiti da će vrednost kolone is_replicated biti označena kao "1" za indeks koji nije grupisan, što nije tačno.
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
Rešenje
Ovaj problem je rešen u sledećim kumulativnim ispravkama za SQL Server:
Kumulativna ispravka 1 za SQL Server 2017
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Najnovija kumulativna ispravka za SQL Server 2017
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".
Reference
Saznajte više o terminologijikoju Microsoft koristi za opisivanje softverskih ispravki.