Activer la CDC intégrée dans Microsoft SQL Server
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
-
Connectez-vous à la base de données que vous souhaitez activer pour la CDC.
-
Exécutez la commande T-SQL suivante dans le contexte de la base de données :
Azure SQL Database et SQL Server local
SQLEXEC sys.sp_cdc_enable_dbAmazon RDS pour SQL Server
SQLEXEC 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.
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_nameetrole_name. - Si la table possède une clé primaire,
@support_net_changesne prend en charge qu'une valeur de1.
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 :
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 :
GRANT VIEW SERVER STATE to <database-user>