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
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
'
Argomenti
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_jobmaxtrans
del lavoromaxscans
, ad esempio
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