Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Angenommen, Sie verfügen über partitionierte Tabellen in Microsoft SQL Server und diese sind Teil von Change Data Capture (CDC) oder Transaktionsreplikation. Sie können die Partition aus diesen Tabellen ein- oder auswechseln.
-
Nach dem Partitionswechsel beim Ausführen von DML-Vorgängen (Data Manipulation Language) können Sie feststellen, dass ein EXCEPTION_ACCESS_VIOLATION auftritt und eine Speicherabbilddatei generiert wird.
Datum/Uhrzeit ***Stack Dump wird an FilePath\FileName
Date/Time SqlDumpExceptionHandler gesendet: Process ProcessID generiert schwerwiegende Ausnahme c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server beendet diesen Prozess.
Datum/Uhrzeit * *****************Datum
/Uhrzeit *
Datum/Uhrzeit * BEGIN STACK DUMP:
Datum/Uhrzeit *
Datum/Uhrzeit *
Datum/Uhrzeit *
Datum/Uhrzeit * Datum/Uhrzeit *
Datum/Uhrzeit * Ausnahmeadresse = 1000007FEE724BD80 Module(sqllang+00000000015BBD80)
Datum/Uhrzeit * Ausnahmecode = c0000005 EXCEPTION_ACCESS_VIOLATION
Datum/Uhrzeit * Zugriffsverletzung beim Lesen der Adresse 00000000000000002A
Datum/Uhrzeit * Eingabepuffer 70 Bytes
Datum/Uhrzeit * sys.sp_MScdc_capture_job
Datum/Uhrzeit *
Datum/Uhrzeit ***Stack Dump wird an FilePath\FileName
Date/Time SqlDumpExceptionHandler: Von der Prozess-PID generierte schwerwiegende Ausnahme c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server beendet diesen Prozess.
Date/Time * *********************date/time
*Date/Time *
BEGIN STACK DUMP:
Date/Time * Date/TimeSPID
Date/Time *
Date/Time *Date/Time *
Exception Address = 000007FEE9D26640 Module(sqllang+0000000001586640)
Date/Time * Ausnahmecode = c0000005 EXCEPTION_ACCESS_VIOLATION
Datum/Uhrzeit * Zugriffsverletzung beim Lesen der Adresse 00000000000002A
Datum/Uhrzeit * Eingabepuffer 109 Bytes -
Datum/Uhrzeit * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00
Datum/Uhrzeit * s p _ r e p 01 00 00 00 0b 00 00 73 00 70 00 5f 00 72 00 65 00 70 00
Datum/Uhrzeit * l c d s & ô 6c 00 63 00 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
Datum/Uhrzeit * & & 01 00 00 00 00 00 00 26 04 04 00 00 00 00 00 00 00 00 00 00 26 04 04 ff
Datum/Uhrzeit * ÿÿ/& ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00
Datum/Uhrzeit * & & ¡ 00 00 00 26 04 00 00 00 00 00 00 00 00 00 26 04 04 20 a1 07
Datum/Uhrzeit * 00
-
Wenn Sie die folgende Abfrage für die Zieltabelle ausführen, stellen Sie möglicherweise fest, dass der Wert der is_replicated Spalte für nicht gruppierten Index als "1" markiert wird, was nicht korrekt ist.
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ösung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:
Kumulatives Update 1 für SQL Server 2017
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:
Neuestes kumulatives Update für SQL Server 2017
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.