Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Utilisation de la capture des données de modification pour Amazon RDS for SQL Server

Mode de mise au point
Utilisation de la capture des données de modification pour Amazon RDS for SQL Server - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Amazon RDS prend en charge la capture de données modifiées (CDC) pour vos instances de base de données s'exécutant sur Microsoft SQL Server. CDC capture les modifications apportées aux données de vos tables. CDC stocke les métadonnées relatives à chaque modification et vous pouvez y accéder ultérieurement. Pour plus d'informations sur le fonctionnement de CDC, consultez Capture de données modifiées dans la documentation Microsoft. Pour utiliser la fonction CDC avec vos instances de base de données Amazon RDS, vous devez tout d'abord l'activer au niveau de la base de données en exécutant msdb.dbo.rds_cdc_enable_db. Une fois la fonction CDC activée, tout utilisateur db_owner de cette base de données peut activer ou désactiver CDC sur les tables de cette base de données.

Important

Pendant les restaurations, la fonction CDC est désactivée. L'ensemble des métadonnées associées est automatiquement supprimé de la base de données. Cela s'applique aux restaurations de snapshots, aux point-in-time restaurations et aux restaurations natives de SQL Server à partir de S3. Après avoir exécuté l'un de ces types de restaurations, vous pouvez réactiver CDC et respécifier les tables à suivre.

Pour activer CDC pour une instance de base de données, exécutez la procédure stockée msdb.dbo.rds_cdc_enable_db.

exec msdb.dbo.rds_cdc_enable_db 'database_name'

Pour désactiver le CDC pour une instance de base de données, exécutez la procédure stockée msdb.dbo.rds_cdc_disable_db.

exec msdb.dbo.rds_cdc_disable_db 'database_name'

Pour accorder des autorisations CDC à un utilisateur, procédez comme suit :

go GRANT EXECUTE ON msdb.dbo.rds_cdc_enable_db TO User1 GRANT EXECUTE ON msdb.dbo.rds_cdc_disable_db TO User1

Suivi des tables avec CDC

Une fois que CDC est activé sur la base de données, vous pouvez démarrer le suivi de tables spécifiques. Vous pouvez choisir les tableaux à suivre en exécutant sys.sp_cdc_enable_table.

--Begin tracking a table exec sys.sp_cdc_enable_table @source_schema = N'source_schema' , @source_name = N'source_name' , @role_name = N'role_name' --The following parameters are optional: --, @capture_instance = 'capture_instance' --, @supports_net_changes = supports_net_changes --, @index_name = 'index_name' --, @captured_column_list = 'captured_column_list' --, @filegroup_name = 'filegroup_name' --, @allow_partition_switch = 'allow_partition_switch' ;

Pour afficher la configuration CDC de vos tableaux, exécutez sys.sp_cdc_help_change_data_capture.

--View CDC configuration exec sys.sp_cdc_help_change_data_capture --The following parameters are optional and must be used together. -- 'schema_name', 'table_name' ;

Pour plus d'informations sur les tables, fonctions et procédures stockées CDC dans la documentation SQL Server, consultez les rubriques suivantes :

Tâches CDC

Quand vous activez CDC, SQL Server crée les tâches CDC. Les propriétaires de base de données (db_owner) peuvent afficher, créer, modifier et supprimer les tâches CDC. Cependant, le compte système RDS en est propriétaire. Par conséquent, les tâches ne sont pas visibles des vues natives, des procédures ou de SQL Server Management Studio.

Pour contrôler le comportement de CDC dans une base de données, utilisez les procédures SQL Server natives telles que sp_cdc_enable_table et sp_cdc_start_job . Pour modifier les paramètres des tâches CDC, comme maxtrans et maxscans, vous pouvez utiliser sp_cdc_change_job..

Pour obtenir plus d'informations sur les tâches CDC, vous pouvez interroger les vues de gestion dynamiques suivantes :

  • sys.dm_cdc_errors

  • sys.dm_cdc_log_scan_sessions

  • sysjobs

  • sysjobhistory

Capture de données modifiées (CDC) pour les instances multi-AZ

Si vous utilisez CDC sur une instance multi-AZ, assurez-vous que la configuration de la tâche CDC du miroir correspond à celle du mandataire. Les tâches CDC sont mappées au database_id. Si la IDs base de données secondaire est différente de la base de données principale, les tâches ne seront pas associées à la base de données appropriée. Pour éviter toute erreur après le basculement, RDS supprimer et recrée les tâches sur le nouveau mandataire. Les tâches recréées utilisent les paramètres que le mandataire a enregistrés avant le basculement.

Même si ce processus s'exécute rapidement, il est toujours possible que les tâches CDC puissent s'exécuter avant que RDS puisse les corriger. Voici trois moyens de contraindre les paramètres à être cohérents entre les réplicas principaux et secondaires :

  • Utilisez les mêmes paramètres de tâche pour toutes les bases de données pour lesquelles CDC est activé.

  • Avant de modifier la configuration des tâches CDC, convertissez l'instance multi-AZ en mono-AZ.

  • Transférez manuellement les paramètres chaque fois que vous les modifiez sur le principal.

Pour afficher et définir les paramètres CDC utilisés pour recréer les tâches CDC après un basculement, utilisez rds_show_configuration et rds_set_configuration.

L'exemple suivant renvoie la valeur définie pour cdc_capture_maxtrans. Pour tout paramètre défini sur RDS_DEFAULT, RDS configure automatiquement la valeur.

-- Show configuration for each parameter on either primary and secondary replicas. exec rdsadmin.dbo.rds_show_configuration 'cdc_capture_maxtrans';

Pour définir la configuration sur le réplica secondaire, exécutez rdsadmin.dbo.rds_set_configuration. Cette procédure définit les valeurs de paramètre pour toutes les bases de données du serveur secondaire. Ces paramètres ne sont utilisés qu'après un basculement. L'exemple suivant définit maxtrans pour toutes les tâches de capture CDC la valeur suivante 1000 :

--To set values on secondary. These are used after failover. exec rdsadmin.dbo.rds_set_configuration 'cdc_capture_maxtrans', 1000;

Pour définir les paramètres de tâche CDC sur le principal, utilisez plutôt sys.sp_cdc_change_job.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.