Symptômes
Prenons l’exemple du scénario suivant :
-
Supposons que vous avez partitionné des tables dans Microsoft SQL Server et qu’elles font partie de la capture de données modifiées (CDC) ou de la réplication transactionnelle. Vous basculez ou basculez une partition à partir de ces tables.
-
Après le basculement de partition lorsque vous effectuez des opérations DML (Data Manipulation Language), vous pouvez remarquer qu’une EXCEPTION_ACCESS_VIOLATION se produit et qu’un fichier de vidage mémoire est généré.
Date/Heure ***Vidage de pile envoyé à FilePath\FileName
Date/Time SqlDumpExceptionHandler : Process ProcessID généré l’exception irrécupérable c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server termine ce processus. Date/Heure **** BEGIN STACK DUMP: Date/Time * Date/Heure * Date/Heure * Date/Heure * Date/Heure * Exception Address = 000007FEE724BD80 Module(sqllang+000000000015BBD80) Date/Heure * Code d’exception = c0000005 EXCEPTION_ACCESS_VIOLATION Date/Heure * Une violation d’accès s’est produite lors de la lecture de l’adresse 00000000000002A Date/Heure * Mémoire tampon d’entrée 70 octets Date/Heure * sys.sp_MScdc_capture_job Date/Heure *Date/Heure ***Vidage de pile envoyé à FilePath\FileName
Date/Time SqlDumpExceptionHandler : Le PROCESSUS PID a généré l’exception irrécupérable c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server termine ce processus. Date/Heure **** * Date/Heure * Date/Heure * BEGIN STACK DUMP: Date/Heure * Date/heureSPID Date/Heure * Date/Heure *Date/Heure * Date/Heure * Adresse de l’exception = 000007FEE9D26640 Module(sqllang+0000000001586640) Date/Heure * Code d’exception = c0000005 EXCEPTION_ACCESS_VIOLATION Date/Heure * Violation d’accès survenue adresse de lecture 000000000000000002A Date/Heure * Mémoire tampon d’entrée 109 octets - Date/heure * 16 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 Date/Time * s p _ r e p 01 00 00 00 00 00 73 00 70 00 5f 00 00 72 00 65 00 70 00 Date/Time * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4 Date/Heure * & & 1 00 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 04 ff Date/Heure * Ainsi que & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00 Date/Heure * & & 00 00 00 00 26 04 04 00 00 00 00 00 26 04 04 20 a1 07 Date/Heure * 00-
Si vous exécutez la requête suivante sur la table de destination, vous remarquerez peut-être que la valeur de la colonne is_replicated sera marquée comme « 1 » pour l’index non cluster, ce qui n’est pas correct.
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
Résolution
Ce problème est résolu dans les mises à jour cumulatives suivantes pour SQL Server :
Mise à jour cumulative 1 pour SQL Server 2017
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Dernière mise à jour cumulative pour SQL Server 2017
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.
Références
Découvrez la terminologieutilisée par Microsoft pour décrire les mises à jour logicielles.