Symptomy

Rozpatrzmy następujący scenariusz:

  • Załóżmy, że masz podzielone na partycje tabele w programie Microsoft SQL Server i są one częścią funkcji przechwytywania danych change (CDC) lub replikacji transakcyjnej. Partycja jest przełączana lub wyłączana z tych tabel.

  • Po przełączeniu partycji podczas wykonywania operacji języka manipulacji danymi (DML) można zauważyć, że występuje EXCEPTION_ACCESS_VIOLATION i jest generowany plik zrzutu pamięci.

Date/Time ***Stack Dump being sent to FilePath\FileNameDate/Time SqlDumpExceptionHandler: ProcessID generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server kończy ten proces.Data/godzina * ********Data/Godzina * Data/Godzina * BEGIN STACK DUMP:Date/Time * Date/Time * Date/Time *Date/Time * Date/Time * Exception Address = 000007FEE724BD80 Module(sqllang+00000000015BBD80)Date/Time * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONDate/Time * Naruszenie zasad dostępu wystąpiło w adresie do odczytu 00000000000002AData/godzina * Bufor wejściowy 70 bajtów data/godzina * sys.sp_MScdc_capture_jobdata/godzina *

Date/Time ***Stack Dump being sent to FilePath\FileNameDate/Time SqlDumpExceptionHandler: Process PID generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server kończy ten proces.Data/godzina * ************Data/godzina *Data/godzina * 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_VIOLATIONData/godzina * Wystąpiło naruszenie zasad dostępu do odczytu 00000000000002AData/godzina * Bufor wejściowy 109 bajtów -Data/godzina * 16 00 00 00 12 00 00 00 00 02 00 00 00 00 00 00Data// 00 Czas * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00Data/Godzina * l c m d s & ô 6c 00 63 00 6d 00 00 64 00 73 00 00 00 00 00 26 04 04 f4Data/godzina * & & ź 01 00 00 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 ffData/Godzina * owania ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 26 04 04 8f 13 00Data/Godzina * & & } 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 20 a1 07Data/godzina * 00

  • Jeśli uruchomisz poniższe zapytanie dla tabeli docelowej, możesz zauważyć, że wartość is_replicated kolumny zostanie oznaczona jako "1" dla indeksu niegrupowanego, który jest nieprawidłowy.

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 dla SQL Server:

      Aktualizacja zbiorcza 1 dla SQL Server 2017

      Aktualizacja zbiorcza 5 dla SQL Server 2016 z dodatkiem SP1

      Aktualizacja zbiorcza 8 dla SQL Server 2014 z dodatkiem SP2

Każda nowa aktualizacja zbiorcza dla SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla SQL Server:

Najnowsza aktualizacja zbiorcza dla SQL Server 2017

Najnowsza aktualizacja zbiorcza dla SQL Server 2016

Najnowsza aktualizacja zbiorcza dla SQL Server 2014

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".

Informacje

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

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.