Travail de nettoyage

Cette section fournit des informations sur le fonctionnement du travail de nettoyage de la capture de données modifiées.

Structure du travail de nettoyage

La capture de données modifiées utilise une stratégie de nettoyage reposant sur la rétention pour gérer la taille de la table des modifications. Le mécanisme de nettoyage consiste en un travail d'Transact-SQLAgentSQL Server qui est créé lors de l'activation de la première table de base de données. Un seul travail de nettoyage prend en charge le nettoyage de toutes les tables de modifications des bases de données et applique la même valeur de rétention à toutes les instances de capture définies.

Le travail de nettoyage est démarré par l'exécution de la procédure stockée sans paramètre sp_MScdc_cleanup_job. Cette procédure stockée démarre par l'extraction des valeurs de rétention et de seuil configurées pour le travail de nettoyage, dans msdb.dbo.cdc_jobs. La valeur de rétention est utilisée pour calculer une nouvelle limite inférieure pour les tables de modifications. Le nombre spécifié de minutes est soustrait de la valeur tran_end_time maximale de la table cdc.lsn_time_mapping pour obtenir la nouvelle limite inférieure exprimée comme une valeur datetime. La table CDC.lsn_time_mapping est ensuite utilisée pour convertir cette valeur datetime en une valeur lsn correspondante. Si la même heure de validation est partagée par plusieurs entrées dans la table, le lsn qui correspond à l'entrée qui a le plus petit lsn est choisi comme nouvelle limite inférieure. Cette valeur lsn est transmise à sp_cdc_cleanup_change_tables pour supprimer des entrées de table de modifications dans les tables de modifications de base de données.

Note

L'avantage de l'utilisation de l'heure de validation de la dernière transaction comme base de calcul de la nouvelle limite inférieure est qu'elle permet aux modifications de rester dans les tables de modifications pour l'heure spécifiée. Cela arrive même lorsque le processus de capture prend du retard. Toutes les entrées qui ont la même heure de validation que la limite inférieure actuelle continuent d'être représentées dans les tables de modifications lorsqu'on choisit le plus petit lsn présentant l'heure de validation partagée pour la limite inférieure effective.

Lorsqu'un nettoyage est effectué, la limite inférieure de toutes les instances de capture est initialement mise à jour au cours d'une même transaction. Le processus essaie ensuite de supprimer les entrées obsolètes des tables de modifications et de la table cdc.lsn_time_mapping. La valeur de seuil configurable limite le nombre d'entrées pouvant être supprimées au cours de chaque instruction. Tout échec de suppression sur une table individuelle n'empêchera pas l'opération d'être tentée sur les tables restantes.

Personnalisation d'un travail de nettoyage

Pour le travail de nettoyage, la possibilité de personnalisation réside dans la stratégie utilisée pour déterminer quelles entrées de table de modifications doivent être ignorées. La seule stratégie prise en charge dans le travail de nettoyage réalisé est une stratégie basée sur le temps. Dans cette situation, la nouvelle limite inférieure est calculée en soustrayant la période de rétention autorisée de l'heure de validation de la dernière transaction traitée. Étant donné que les procédures de nettoyage sous-jacentes sont basées sur lsn au lieu de l'heure, vous pouvez utiliser autant de stratégies que vous le souhaitez pour déterminer le plus petit lsn à conserver dans les tables de modifications. Seules certaines sont strictement basées sur le temps. Par exemple, la connaissance des clients pourrait être utilisée comme mécanisme de prévention de défaillance si en aval, les processus qui requièrent l'accès aux tables de modifications ne peuvent pas s'exécuter. Par ailleurs, bien que la stratégie par défaut applique le même lsn pour nettoyer les tables de modifications de toutes les bases de données, la procédure de nettoyage sous-jacente, peut également être appelée pour nettoyer au niveau de l'instance de capture.

Voir aussi

Concepts