Sintomi
Considerare lo scenario descritto di seguito:
-
Si supponga di avere tabelle partizionate in Microsoft SQL Server e che fanno parte di Change Data Capture (CDC) o Transactional Replication. La partizione di switch-in o switch-out da queste tabelle.
-
Dopo l'opzione di partizione quando si eseguono operazioni DML (Data Manipulation Language), è possibile notare che si verifica un EXCEPTION_ACCESS_VIOLATION e viene generato un file dump di memoria.
Data/ora ***Stack Dump inviato a FilePath\FileName
Data/ora SqlDumpExceptionHandler: Process ProcessID generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server sta terminando questo processo.
Data/ora * ***********************Data
/ora * Data/ora *
DUMP STACK INIZIO:
Data/ora *
Data/ora *
Data/ora *
Data/ora * Eccezione Indirizzo = 000007FEE724BD80 Module(sqllang+0000000015BBD80)
Data/ora * Codice eccezione = c0000005 EXCEPTION_ACCESS_VIOLATION
Data/ora * Violazione di accesso verificato indirizzo di lettura 00000000000002A
Data/ora * Buffer di input 70 byte
Data/ora * sys.sp_MScdc_capture_job
Data/ora *
Data/ora Dump dello stack inviato a FilePath\FileName
Data/ora SqlDumpExceptionHandler: il processo ha generato un'eccezione irreversibile c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server sta terminando questo processo.
Data/ora * ***************************Data
/ora *
Data/ora * DUMP DELLO STACK DI INIZIO:
Data/ora * Data/ora Data/oraSPID
*
Data/ora *
Data/ora * Indirizzo eccezione = 000007FEE9D26640 Module(sqllang+0000000001586640)
Data/ora * Codice eccezione = c0000005 EXCEPTION_ACCESS_VIOLATION
Data/ora * Violazione di accesso avvenuta indirizzo di lettura 00000000000002A
Data/ora * Buffer input 109 byte -
Data/ora * 16 00 00 00 12 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00Data/ora
Time * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
Data/ora * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
Data/ora * & & 01 00 00 00 00 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 ff
Data/ora * & ff 00 00 a5 0a 00 00 00 00 00 00 26 04 04 8f 13 00
Data/ora * & & ¡ 00 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 20 a1 07
Data/ora * 00
-
Se si esegue la query seguente su una tabella di destinazione, si potrebbe notare che il valore della colonna is_replicated verrà contrassegnato come "1" per l'indice non cluster che non è corretto.
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
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Aggiornamento cumulativo 1 per SQL Server 2017
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e tutte le correzioni per la sicurezza inclusi nell'aggiornamento cumulativo precedente. Scopri gli aggiornamenti cumulativi più recenti per SQL Server:
Ultimo aggiornamento cumulativo per SQL Server 2017
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologiautilizzata da Microsoft per descrivere gli aggiornamenti software.