Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwendung von Change Data Capture für Amazon RDS for SQL Server
Amazon RDS unterstützt Change Data Capture (CDC) für Ihre DB-Instances, auf denen Microsoft SQL Server ausgeführt wird. CDCerfasst Änderungen, die an den Daten in Ihren Tabellen vorgenommen wurden. Es speichert Metadaten über jede Änderung, auf die Sie später zugreifen können. Weitere Informationen zur CDC Funktionsweise finden Sie unter Change Data Capture
Bevor Sie es CDC mit Ihren Amazon RDS DB-Instances verwenden, aktivieren Sie es in der Datenbank, indem Sie es ausführenmsdb.dbo.rds_cdc_enable_db
. Sie müssen über Master-Benutzerrechte verfügen, um die Instance CDC in der Amazon RDS DB-Instance aktivieren zu können. Nach CDC der Aktivierung kann jeder Benutzer, db_owner
der zu dieser Datenbank gehört, Tabellen in dieser Datenbank aktivieren oder deaktivierenCDC.
Wichtig
CDCWird bei Wiederherstellungen deaktiviert. Alle zugehörigen Metadaten werden automatisch aus der Datenbank entfernt. Dies gilt für point-in-time Snapshot-Wiederherstellungen, Wiederherstellungen und SQL servereigene Wiederherstellungen aus S3. Nachdem Sie eine dieser Arten von Wiederherstellungen durchgeführt haben, können Sie die zu überwachenden Tabellen erneut aktivieren CDC und neu angeben.
Führen Sie die msdb.dbo.rds_cdc_enable_db
gespeicherte Prozedur aus, um sie CDC für eine DB-Instance zu aktivieren.
exec msdb.dbo.rds_cdc_enable_db '
database_name
'
Führen Sie die msdb.dbo.rds_cdc_disable_db
gespeicherte Prozedur aus, um sie CDC für eine DB-Instance zu deaktivieren.
exec msdb.dbo.rds_cdc_disable_db '
database_name
'
Themen
Nachverfolgen von Tabellen mit Change Data Capture
Nachdem sie CDC in der Datenbank aktiviert wurde, können Sie mit der Nachverfolgung bestimmter Tabellen beginnen. Sie wählen die nachzuverfolgenden Tabellen durch Ausführen von 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
' ;
Um die CDC Konfiguration für Ihre Tabellen anzuzeigen, führen Sie 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
' ;
Weitere Informationen zu CDC Tabellen, Funktionen und gespeicherten Prozeduren finden Sie in der Serverdokumentation in den folgenden Abschnitten: SQL
Change Data Capture-Aufträge
Wenn Sie die Option aktivierenCDC, erstellt der SQL Server die CDC Jobs. Datenbankbesitzer (db_owner
) können die CDC Jobs anzeigen, erstellen, ändern und löschen. Sie gehören jedoch dem RDS Systemkonto. Daher sind die Jobs in systemeigenen Ansichten, Prozeduren oder in SQL Server Management Studio nicht sichtbar.
Verwenden Sie systemeigene SQL Serverprozeduren wie sp_cdc_enable_table und sp_cdc_start_jobmaxscans
, können Sie sp_cdc_change_job verwenden. maxtrans
.
Um weitere Informationen zu den CDC Jobs zu erhalten, können Sie die folgenden dynamischen Verwaltungsansichten abfragen:
sys.dm_cdc_errors
sys.dm_cdc_log_scan_sessions
sysjobs
sysjobhistory
Change Data Capture für Multi-AZ-Instances
Wenn Sie eine Multi-AZ-Instance verwendenCDC, stellen Sie sicher, dass die CDC Job-Konfiguration des Mirrors mit der auf dem Principal übereinstimmt. CDCJobs sind dem zugeordnet. database_id
Wenn sich die Datenbank IDs auf der Sekundärseite vom Prinzipal unterscheidet, werden die Jobs nicht der richtigen Datenbank zugeordnet. Um Fehler nach einem Failover zu vermeiden, RDS werden die Jobs auf dem neuen Prinzipal gelöscht und neu erstellt. Die neu erstellten Aufträge verwenden die Parameter, die der Prinzipal vor dem Failover aufgezeichnet hat.
Obwohl dieser Prozess schnell abläuft, ist es dennoch möglich, dass die CDC Jobs früher RDS ausgeführt wurden, um sie zu korrigieren. Hier gibt es drei Möglichkeiten zum Erzwingen der Konsistenz der Parameter von primären und sekundären Replicas:
Verwenden Sie dieselben Jobparameter für alle Datenbanken, die CDC aktiviert wurden.
Bevor Sie die CDC Jobkonfiguration ändern, konvertieren Sie die Multi-AZ-Instance in eine Single-AZ-Instance.
Übertragen Sie die Parameter manuell, wenn Sie sie auf dem Prinzipal ändern.
Verwenden Sie und, um die CDC Parameter anzuzeigen und zu definieren, die zur Neuerstellung der CDC Jobs nach einem Failover verwendet werden. rds_show_configuration
rds_set_configuration
Im folgenden Beispiel wird der Wert für zurückgegebe cdc_capture_maxtrans
. Für jeden Parameter, der auf gesetzt istRDS_DEFAULT
, konfiguriert RDS automatisch den Wert.
-- Show configuration for each parameter on either primary and secondary replicas. exec rdsadmin.dbo.rds_show_configuration 'cdc_capture_maxtrans';
Um die Konfiguration auf dem sekundären Server einzurichten, führen Sie au rdsadmin.dbo.rds_set_configuration
. Dieses Verfahren legt die Parameterwerte für alle Datenbanken auf dem sekundären Server fest. Diese Einstellungen werden nur nach einem Failover verwendet. Im folgenden Beispiel wird maxtrans
für alle CDC Capture-Jobs der Wert festgelegt 1000
:
--To set values on secondary. These are used after failover. exec rdsadmin.dbo.rds_set_configuration 'cdc_capture_maxtrans',
1000
;
Verwenden Sie stattdessen CDC sys.sp_cdc_change_job