KB4039089 — POPRAWKA: EXCEPTION_ACCESS_VIOLATION błąd podczas wykonywania procedury składowanej sys.sp_MScdc_capture_job w programie SQL Server

Dotyczy
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)

Objawy

Rozważmy następujący scenariusz:

  • Załóżmy, że masz podzielone na partycje tabele w usłudze Microsoft SQL Server i są one częścią Rejestrator zmiany danych (CDC) lub replikacji transakcyjnej. Przełączasz partycję z tych tabel.
  • Po przełączeniu partycji podczas wykonywania operacji w języku DML (Data Manipulation Language) można zauważyć, że występuje EXCEPTION_ACCESS_VIOLATION i jest generowany plik zrzutu pamięci.

Uwaga

Data/godzina ***Zrzut stosu wysyłany do FilePath\FileName
Data/godzina SqlDumpExceptionHandler: identyfikator procesu procesu wygenerował wyjątek krytyczny c0000005 EXCEPTION_ACCESS_VIOLATION. Program SQL Server kończy ten proces.
Data/godzina * *******************************************************************************
Data/godzina
Data/godzina * ROZPOCZNIJ ZRZUT STOSU:
Data/godzina
Data/godzina
Data/godzina *
Data/godzina
Data/godzina * Adres wyjątku = 000007FEE724BD80 Moduł(sqllang+00000000015BBD80)
Data/godzina * Kod wyjątku = c0000005 EXCEPTION_ACCESS_VIOLATION
Data/godzina * Nastąpiło naruszenie zasad dostępu 000000000000002A odczytując adres
Data/godzina * Bufor wejściowy 70 bajtów
Data/godzina * sys.sp_MScdc_capture_job
Data/godzina *

Uwaga

Data/godzina ***Zrzut stosu wysyłany do FilePath\FileName
Data/godzina SqlDumpExceptionHandler: identyfikator PID procesu generuje wyjątek krytyczny c0000005 EXCEPTION_ACCESS_VIOLATION. Program SQL Server kończy ten proces.
Data/godzina * *******************************************************************************
Data/godzina *
Data/godzina * ROZPOCZNIJ ZRZUT STOSU:
Data/godzina * Data/godzinaSPID
Data/godzina *
Data/godzina *
Data/godzina * Adres wyjątku = 000007FEE9D26640 Moduł(sqllang+0000000001586640)
Data/godzina * Kod wyjątku = c0000005 EXCEPTION_ACCESS_VIOLATION
Data/godzina * Nastąpiło naruszenie zasad dostępu 000000000000002A odczytując adres
Data/godzina * Bufor wejściowy 109 bajtów -
Data/godzina * 16 00 00 00 12 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00
Data/Godzina * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
Data/Godzina * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
Data/godzina * & & ÿ 01 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 ff
Data/godzina * ÿÿÿ ¥ & ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00
Data/godzina * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 20 a1 07
Data/godzina * 00

  • Jeśli uruchamiasz poniższe zapytanie względem tabeli docelowej, możesz zauważyć, że wartość kolumny is_replicated zostanie oznaczona jako "1" dla indeksu nieklastrowanego, co nie jest poprawne.

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

Rozwiązanie

Ten problem został rozwiązany w następujących aktualizacjach zbiorczych programu SQL Server:

Aktualizacja zbiorcza 1 dla programu SQL Server 2017

Aktualizacja skumulowana 5 dla programu SQL Server 2016 z dodatkiem SP1

Aktualizacja zbiorcza 8 dla programu SQL Server 2014 z dodatkiem SP2

Informacje o aktualizacjach zbiorczych programu SQL Server:

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Źródła informacji

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.