Activer la capture des changements de données intégrée dans Microsoft SQL Server

Important

Cette page contient du contenu hérité. Databricks recommande de suivre plutôt les étapes décrites dans Préparer SQL Server pour l’ingestion en utilisant le script d’objets utilitaires.

Découvrez comment activer la capture de données modifiées intégrée (CDC) dans Microsoft SQL Server. Vous devez activer soit le suivi des modifications, soit la CDC pour utiliser le connecteur SQL Server. Databricks recommande d’utiliser le suivi des modifications pour toute table qui a une clé primaire pour réduire la charge sur la base de données source. Si le suivi des modifications et la capture des changements de données sont tous les deux activés, le connecteur utilise le suivi des modifications. Pour obtenir des conseils sur l’option à choisir, consultez Suivi des modifications et capture de données modifiées.

Activer la capture des changements de données intégrée pour la base de données source

  1. Connectez-vous à la base de données que vous souhaitez activer pour CDC.

  2. Exécutez la commande T-SQL suivante dans le contexte de la base de données :

    Azure SQL Database et SQL Server local

    EXEC sys.sp_cdc_enable_db
    

    Amazon RDS pour SQL Server

    EXEC msdb.dbo.rds_cdc_enable_db '<database-name>'
    

Pour plus d’informations, consultez Activer la capture des changements de données pour une base de données dans la documentation SQL Server.

Configurer la période de rétention CDC

Définissez la durée de conservation sur le temps maximal (en minutes) pendant lequel la passerelle est susceptible d'être en panne. Une fois le temps imparti écoulé, une actualisation complète est nécessaire pour réactiver la passerelle.

EXEC sys.sp_cdc_change_job @job_type = N'cleanup', @retention = 20160;

Activer la capture des changements de données intégrée sur la table source

Pour activer la capture des changements de données sur la table source, exécutez la procédure stockée suivante dans Azure SQL. Remplacez les valeurs de source_schema, source_name et role_name. @support_net_changes prend uniquement en charge une valeur de 1 si la table a une clé primaire.

  • Remplacez les valeurs de source_schema, source_name et role_name.
  • Si la table a une clé primaire, @support_net_changes prend uniquement en charge une valeur de 1.
EXEC sys.sp_cdc_enable_table
@source_schema = N'MySchema',
@source_name   = N'MyTable',
@role_name     = NULL,
@supports_net_changes = 1

Pour plus d’informations, consultez Activer la capture des changements de données pour une table dans la documentation SQL Server.

Subvention SELECT dans le cadre du schéma CDC

En plus des privilèges décrits dans la configuration source, l’utilisateur de la base de données a besoin du SELECT privilège sur le schéma cdc. Ce schéma contient les tables de modifications créées lorsque la CDC est activée. Exécutez la commande T-SQL suivante :

GRANT SELECT ON SCHEMA::cdc to <database-user>;

Accorder VIEW SERVER STATE (local et RDS)

Pour les instances locales et RDS uniquement, le VIEW SERVER STATE privilège est requis pour interroger sys.dm_server_services, qui est utilisé pour vérifier l’état de SQL Server Agent. Exécutez la commande T-SQL suivante :

GRANT VIEW SERVER STATE to <database-user>

Étape suivante

Configurer la capture DDL et l'évolution du schéma