Utilizzo dell'acquisizione dei dati di modifica per Amazon RDS for SQL Server - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dell'acquisizione dei dati di modifica per Amazon RDS for SQL Server

Amazon RDS supporta l'acquisizione dei dati di modifica (CDC) per le tue istanze DB che eseguono Microsoft SQL Server. CDCacquisisce le modifiche apportate ai dati nelle tabelle. Memorizza i metadati di ogni modifica, ai quali potrai accedere successivamente. Per ulteriori informazioni su come CDC funziona, consulta Change data capture nella documentazione Microsoft.

Prima di utilizzarla CDC con le tue istanze Amazon RDS DB, abilitala nel database msdb.dbo.rds_cdc_enable_db eseguendola. È necessario disporre dei privilegi di utente principale da abilitare CDC nell'istanza Amazon RDS DB. Dopo aver CDC abilitato, qualsiasi utente appartenente db_owner a quel database può abilitare o disabilitare CDC le tabelle di quel database.

Importante

Durante i ripristini, CDC sarà disabilitato. Tutti i metadati correlati saranno rimossi automaticamente dal database. Questo vale per i ripristini di istantanee, i ripristini e i point-in-time ripristini nativi SQL del server da S3. Dopo aver eseguito uno di questi tipi di ripristini, puoi riattivare e specificare nuovamente CDC le tabelle di cui tenere traccia.

CDCPer abilitare un'istanza DB, esegui la msdb.dbo.rds_cdc_enable_db stored procedure.

exec msdb.dbo.rds_cdc_enable_db 'database_name'

CDCPer disabilitare un'istanza DB, esegui la msdb.dbo.rds_cdc_disable_db stored procedure.

exec msdb.dbo.rds_cdc_disable_db 'database_name'

Monitoraggio di tabelle con Change Data Capture

Dopo averlo CDC abilitato sul database, puoi iniziare a tracciare tabelle specifiche. Puoi scegliere le tabelle da monitorare eseguendo 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' ;

Per visualizzare la CDC configurazione delle tabelle, esegui 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' ;

Per ulteriori informazioni su CDC tabelle, funzioni e stored procedure nella documentazione del server, consulta quanto segue: SQL

Processi di Change Data Capture

Quando abilitiCDC, SQL Server crea i CDC lavori. I proprietari del database (db_owner) possono visualizzare, creare, modificare ed eliminare i CDC lavori. Tuttavia, l'account RDS di sistema li possiede. Pertanto, i lavori non sono visibili dalle viste, dalle procedure native o in SQL Server Management Studio.

Per controllare il comportamento di CDC un database, utilizzate procedure native del SQL Server come sp_cdc_enable_table e sp_cdc_start_job. Per CDC modificare i parametri maxtrans del lavoromaxscans, ad esempio and, è possibile utilizzare sp_cdc_change_job. .

Per ottenere ulteriori informazioni sui CDC lavori, è possibile interrogare le seguenti viste di gestione dinamica:

  • sys.dm_cdc_errors

  • sys.dm_cdc_log_scan_sessions

  • sysjobs

  • sysjobhistory

Change Data Capture per istanze Multi-AZ

Se lo utilizzi CDC su un'istanza Multi-AZ, assicurati che la configurazione del CDC lavoro del mirror corrisponda a quella sull'istanza principale. CDCi lavori sono mappati su. database_id Se IDs il database secondario è diverso da quello principale, i job non verranno associati al database corretto. Per cercare di evitare errori dopo il failover, RDS elimina e ricrea i job sul nuovo principale. I processi così ricreati utilizzano i parametri registrati dal server principale prima del failover.

Sebbene questo processo venga eseguito rapidamente, è comunque possibile che i CDC job vengano eseguiti prima di RDS poterli correggere. Di seguito sono descritti tre modi per forzare i parametri affinché siano coerenti tra le repliche principali e secondarie:

  • Utilizzate gli stessi parametri di lavoro per tutti i database CDC abilitati.

  • Prima di modificare la configurazione del CDC lavoro, converti l'istanza Multi-AZ in Single-AZ.

  • Trasferisci i parametri manualmente ogni volta che li modifichi sul server principale.

Per visualizzare e definire i CDC parametri utilizzati per ricreare i CDC lavori dopo un failover, utilizzate e. rds_show_configuration rds_set_configuration

L'esempio seguente restituisce il valore impostato per cdc_capture_maxtrans. Per qualsiasi parametro impostato suRDS_DEFAULT, configura RDS automaticamente il valore.

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

Per impostare la configurazione sul secondario, eseguire rdsadmin.dbo.rds_set_configuration. Questa procedura imposta i valori del parametro per tutti i database sul server secondario. Queste impostazioni vengono utilizzate solo dopo un failover. L'esempio seguente imposta maxtrans for all CDC capture job su 1000:

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

Per impostare i parametri del CDC lavoro sul principale, utilizzate invece sys.sp_cdc_change_job.