Aller au contenu principal

Activer la CDC intégrée dans Microsoft SQL Server

important

Cette page contient du contenu ancien. Databricks recommande de suivre les étapes de Préparer SQL Server pour l'ingestion à l'aide du script d'objets utilitaires plutôt.

Découvrez comment activer la capture de données modifiées (CDC) intégrée 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 dotée d'une clé primaire afin de minimiser la charge sur la base de données source. Si le suivi des modifications et la CDC sont tous deux activés, le connecteur utilise le suivi des modifications. Pour obtenir des conseils sur l’option à choisir, consultez Suivi des modifications vs. capture de données modifiées.

Activer le CDC intégré pour la base de données source

  1. Connectez-vous à la base de données que vous souhaitez activer pour la 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

    SQL
    EXEC sys.sp_cdc_enable_db

    Amazon RDS pour SQL Server

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

Pour en savoir plus, consultez Activer la capture de données modifiées pour une base de données dans la documentation SQL Server.

Configurer la période de rétention CDC

Définissez la période de rétention à la durée maximale (en minutes) pendant laquelle la passerelle est susceptible d'être en panne. Une fois ce laps de temps écoulé, un full refresh est requis pour reprendre la passerelle.

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

Activez la CDC intégrée sur la table source

Pour activer la CDC sur la table source, exécutez la procédure stockée suivante dans Azure SQL. Remplacez les valeurs pour source_schema, source_name et role_name. @support_net_changes ne prend en charge qu'une valeur de 1 si la table a une clé primaire.

  • Remplacez les valeurs pour source_schema, source_name et role_name.
  • Si la table possède une clé primaire, @support_net_changes ne prend en charge qu'une valeur de 1.
SQL
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 de données modifiées pour une table dans la documentation SQL Server.

Accorder SELECT sur le 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 privilège SELECT sur le schéma cdc. Ce schéma contient les tables de modifications qui sont créées lorsque le CDC est activé. Exécutez la commande T-SQL suivante :

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

Accorder VIEW SERVER STATE (sur site et RDS)

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

SQL
GRANT VIEW SERVER STATE to <database-user>

Étape suivante

Configurer la capture DDL et l'évolution des schémas