Příznaky
Představte si následující scénář:
-
Předpokládejme, že máte tabulky rozdělené na oddíly v Microsoft SQL Server a jsou součástí Change Data Capture (CDC) nebo transakční replikace. Z těchto tabulek přepnete nebo vypnete oddíl.
-
Po přepnutí oddílů při provádění operací jazyka DML (Data Manipulation Language) si můžete všimnout, že dojde k EXCEPTION_ACCESS_VIOLATION a vygeneruje se soubor výpisu paměti.
Datum a čas ***Odesílal se výpis zásobníku do složky FilePath\FileName
Datum/čas SqlDumpExceptionHandler: ProcessID vygeneroval závažnou výjimku c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server tento proces ukončuje.
Datum a čas * ***
BEGIN STACK DUMP:
Datum/čas *
Datum/čas *
Datum/čas *
Datum/čas * Datum/čas *
Datum/čas * Adresa výjimky = 000007FEE724BD80 Module(sqllang+00000000015BBD80)
Datum a čas * Kód výjimky = c0000005 EXCEPTION_ACCESS_VIOLATION
datum/čas * Došlo k narušení přístupu na adrese čtení 000000000000002A
Datum a čas * Vstupní vyrovnávací paměť 70 bajtů
datum a čas * sys.sp_MScdc_capture_job
datum a čas *
Datum a čas ***Odesílal se výpis zásobníku do FilePath\FileName
Datum/čas SqlDumpExceptionHandler: Zpracování PID vygenerované závažné výjimky c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server tento proces ukončuje.
Datum a čas ****
Datum/čas *
Datum/čas * BEGIN STACK DUMP:
Datum/čas * Datum/časSPID
Datum a čas *
Datum/čas *Datum/čas *
Datum/čas * Adresa výjimky = 000007FEE9D26640 Module(sqllang+0000000001586640)
Datum a čas * Kód výjimky = c0000005 EXCEPTION_ACCESS_VIOLATION
Datum a čas * Došlo k narušení přístupu na adrese pro čtení 00000000000002A
Datum a čas * Vstupní vyrovnávací paměť 109 bajtů -
Datum a čas * 16 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00
Čas * s p _ r e p 01 00 00 00 00 0b 00 00 73 00 70 00 5f 00 72 00 65 00 70 00
Datum a čas * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
Datum a čas * & & ně 01 00 00 00 00 00 00 00 00 26 04 04 00 00 00 00 00 00 00 00 26 04 04 04 ff
Datum a čas * něněně : & ff ff ff 00 00 a5 0a 00 00 00 00 00 00 26 04 04 04 04 13 00
Datum a čas * & & 00 00 00 26 04 00 00 00 00 00 00 26 04 04 20 a1 07
Datum a čas * 00
-
Pokud na cílovou tabulku spustíte následující dotaz, můžete si všimnout, že hodnota sloupce is_replicated bude označena jako 1 pro ne clusterovaný index, což není správné.
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
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:
Kumulativní aktualizace 1 pro SQL Server 2017
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2017
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Odkazy
Seznamte se s terminologií, kterou Microsoft používá k popisu aktualizací softwaru.