Unterstützung für Change Data Capture (CDC) mit RDS Custom for SQL Server - Amazon Relational Database Service

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.

Unterstützung für Change Data Capture (CDC) mit RDS Custom for SQL Server

Übersicht

RDS Custom for SQL Server bietet native Unterstützung für Change Data Capture (CDC), sodass Sie Datenänderungen in Ihren SQL Server-Tabellen verfolgen und erfassen können. CDC speichert detaillierte Metadaten zu diesen Änderungen für den späteren Abruf und die Analyse. Ausführliche Informationen zur CDC-Funktionalität finden Sie in der Microsoft-Dokumentation unter Change Data Capture.

Der CDC-Vorgang in SQL Server erfordert übereinstimmende Werte zwischen dem lokalen Server (der den Wert server_id = 0 hat) sys.servers und SERVERPROPERTY('ServerName') den Bezeichnern. RDS Custom for SQL Server behält diese Synchronisation während des gesamten Lebenszyklus der Instanz automatisch bei, um sicherzustellen, dass das CDC auch dann kontinuierlich funktioniert, wenn Hosts während Wartungs- oder Wiederherstellungsvorgängen ausgetauscht werden.

Wichtig

Nach einem Multi-AZ-Instance-Failover spiegelt die SERVERPROPERTY('Servername') Funktion automatisch Änderungen im Namen wider. network/computer Die @@SERVERNAME Funktion behält jedoch den alten Servernamen bei, bis der MSSQLSERVER Dienst neu gestartet wird. Die Abfrage von @ @SERVERNAME gibt nach einem Failover den vorherigen Servernamen zurück. Verwenden Sie die folgende SQL-Abfrage, um den genauen Servernamen nach einem Failover zu ermitteln:

SELECT name FROM sys.servers WHERE server_id=0

Diese Abfrage liefert die meisten up-to-date Servernameninformationen, ohne dass ein Neustart des Dienstes erforderlich ist.

Verfügbarkeit von Regionen und Versionen

Die CDC-Funktionalität wird überall unterstützt, AWS-Regionen wo RDS Custom for SQL Server verfügbar ist, und zwar für alle von RDS Custom unterstützten SQL Server-Versionen. Weitere Informationen zu den unterstützten Versionen und der regionalen Verfügbarkeit von RDS Custom for SQL Server finden Sie unterUnterstützte Regionen und DB-Engines für RDS Custom for SQL Server.

Anforderungen und Einschränkungen

Beachten Sie bei der Implementierung von CDC auf RDS Custom for SQL Server die folgenden wichtigen Überlegungen:

  • Wenn Sie den @@SERVERNAME and/or lokalen Server manuell für die Verwendung von Funktionen wie MS Replication einrichten und der Wert des lokalen Servers (derserver_id = 0) in auf ein Format gesetzt sys.servers ist, das mit *.rds.amazonaws.com oder übereinstimmt*.awsrds.*.com, versucht RDS Custom for SQL Server nicht, ihn entsprechend SERVERPROPERTY('ServerName') zu ändern. sys.servers

  • RDS kann den lokalen Server (der das getan hatserver_id = 0) nicht in sys.servers einen neuen Hostnamen ändern, solange Remoteanmeldungen oder Verbindungsserver aktiv den alten Hostnamen verwenden. Diese Einschränkung gilt in zwei Szenarien:

    • Wenn ein Verbindungsserver mithilfe einer Remote-Anmeldung, die dem alten Hostnamen zugeordnet ist, eine Verbindung zum lokalen Server herstellt

    • Wenn eine RDS Custom for SQL Server-Instanz als Herausgeber oder Verteiler fungiert und Anmeldenamen, die dem alten Hostnamen zugeordnet sind, mit ihren Abonnenteninstanzen verknüpft hat.

Fehlerbehebung

Verwenden Sie die folgenden Abfragen, um Remote-Logins oder verknüpfte Logins zu identifizieren, die mit dem alten Servernamen verknüpft sind. Überprüfen Sie die Ergebnisse und entfernen Sie diese Anmeldungen, um sicherzustellen, dass das CDC ordnungsgemäß funktioniert.

SELECT * FROM sys.remote_logins WHERE server_id=0

or

select sss.srvname,ssp.name,srl.remote_name from sys.server_principals ssp inner join sys.remote_logins srl on srl.local_principal_id=ssp.principal_id inner join sys.sysservers sss on srl.server_id = sss.srvid where sss.srvname = @@SERVERNAME