KB4039089 – PATAISYMAS: EXCEPTION_ACCESS_VIOLATION klaida vykdant sys.sp_MScdc_capture_job išsaugotą procedūrą programoje „SQL Server“

Taikoma
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions) SQL Server 2017 on Linux (all editions) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Požymiai

Apsvarstykite šį scenarijų:

  • Tarkime, kad "Microsoft „SQL Server“" turite suskaidytų lentelių ir jos yra duomenų keitimo fiksavimo (CDC) arba operacijų replikavimo dalis. Įjungiate arba išjungiate skaidinį iš šių lentelių.
  • Po skaidinio perjungimo, kai atliekate duomenų manipuliavimo kalbos (DML) operacijas, galite pastebėti, kad įvyksta EXCEPTION_ACCESS_VIOLATION ir sugeneruojamas atminties iškelties failas.

Pastaba

Data / laikas ***Rietuvės iškeltis siunčiama į FilePath\FileName
Data / laikas SqlDumpExceptionHandler: proceso ProcessID generuota lemtinga išimtis c0000005 EXCEPTION_ACCESS_VIOLATION. „SQL Server“ nutraukia šį procesą.
Data / laikas * *******************************************************************************
Data / laikas
Data / laikas * PRADĖTI RIETUVĖS IŠKELTĮ:
Data / laikas
Data / laikas
Data / laikas *
Data / laikas
Data / laikas * Išimties adresas = 000007FEE724BD80 Modulis(sqllang+0000000015BBD80)
Data / laikas * Išimties kodas = c0000005 EXCEPTION_ACCESS_VIOLATION
Data / laikas * Įvyko prieigos pažeidimas skaitant adreso 000000000000002A
Data / laikas * Įvesties buferis 70 baitų
Data / laikas * sys.sp_MScdc_capture_job
Data / laikas *

Pastaba

Data / laikas ***Rietuvės iškeltis siunčiama į FilePath\FileName
Data / laikas SqlDumpExceptionHandler: proceso PID sugeneruota lemtinga išimtis c0000005 EXCEPTION_ACCESS_VIOLATION. „SQL Server“ nutraukia šį procesą.
Data / laikas * *******************************************************************************
Data / laikas *
Data / laikas * PRADĖTI RIETUVĖS IŠKELTĮ:
Data / laikas * Date/TimeSPID
Data / laikas *
Data / laikas *
Data / laikas * Išimties adresas = 000007FEE9D26640 Module(sqllang+0000000001586640)
Data / laikas * Išimties kodas = c0000005 EXCEPTION_ACCESS_VIOLATION
Data / laikas * Įvyko prieigos pažeidimas skaitant adreso 000000000000002A
Data / laikas * Įvesties buferis 109 baitai -
Data / laikas * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00
Data / laikas * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
Data / laikas * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
Data / laikas * & & ÿ 01 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 ff
Data / laikas * ÿÿÿ ¥ & ff ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00
Data / laikas * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 20 a1 07
Data / laikas * 00

  • Jei paskirties lentelei naudojate šią užklausą, galite pastebėti, kad is_replicated stulpelio reikšmė bus pažymėta kaip "1" nejungtinio indekso atveju, o tai yra neteisinga.

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

Sprendimas

Ši problema išspręsta šiuose kaupiamuosiuose "„SQL Server“" naujinimuose:

1 kaupiamasis naujinimas, skirtas „SQL Server“ 2017

5 kaupiamasis naujinimas, skirtas „SQL Server“ 2016 SP1

8 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 SP2

Apie "„SQL Server“" kaupiamuosius naujinimus:

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius "„SQL Server“" kaupiamuosius naujinimus:

Naujausias "„SQL Server“ 2017" kaupiamasis naujinimas

Naujausias kaupiamasis naujinimas, skirtas „SQL Server“ 2016

Naujausias "„SQL Server“ 2014" kaupiamasis naujinimas

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.

Nuorodos

Sužinokite daugiau apie terminus, kuriuos „„Microsoft““ naudoja apibūdindama programinės įrangos naujinimus.