

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.

# Change Data Capture (CDC)-Unterstützung mit RDS Custom für SQL Server
<a name="custom-sqlserver-features.cdc"></a>

## Übersicht
<a name="custom-sqlserver-features.cdc.overview"></a>

RDS Custom für 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. Weitere Informationen über die Arbeitsweise von CDC finden Sie unter [Change Data Capture](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server#Capture) in der Microsoft-Dokumentation.

Für den CDC-Vorgang in SQL Server sind übereinstimmende Werte zwischen dem *lokalen Server* (`server_id` = 0) und den Bezeichnern `sys.servers` und `SERVERPROPERTY('ServerName')` erforderlich. RDS Custom für SQL Server behält diese Synchronisation während des gesamten Lebenszyklus der Instance automatisch bei, um sicherzustellen, dass CDC auch dann kontinuierlich funktioniert, wenn Hosts während Wartungs- oder Wiederherstellungsvorgängen ersetzt werden.

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

```
SELECT name FROM sys.servers WHERE server_id=0
```
Diese Abfrage liefert die aktuellsten Informationen zum Servernamen, ohne dass ein Neustart des Service erforderlich ist.

## Verfügbarkeit von Regionen und Versionen
<a name="custom-sqlserver-features.cdc.regionAvail"></a>

Die CDC-Funktion wird in allen AWS-Regionen unterstützt, in denen RDS Custom für SQL Server verfügbar ist, und für alle SQL-Server-Versionen, die von RDS Custom unterstützt werden. Weitere Informationen zu unterstützten Versionen und zur Verfügbarkeit von Regionen von RDS Custom für SQL Server finden Sie unter [Unterstützte Regionen und DB-Engines für RDS Custom für SQL Server](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq).

## Anforderungen und Einschränkungen
<a name="custom-sqlserver-features.cdc.reqsLims"></a>

Berücksichtigen Sie bei der Implementierung von CDC auf RDS Custom für SQL Server die folgenden wichtigen Überlegungen:
+ Wenn Sie `@@SERVERNAME` und/oder den *lokalen Server* in `sys.servers` manuell so einrichten, dass er Features wie MS Replication verwendet, falls der Wert des lokalen Servers (`server_id = 0`) in `sys.servers` auf ein Format festgelegt ist, das mit `*.rds.amazonaws.com` oder `*.awsrds.*.com` übereinstimmt, versucht RDS Custom für SQL Server nicht, dies an `SERVERPROPERTY('ServerName')` anzupassen.
+ RDS kann den lokalen Server (`server_id = 0`) in `sys.servers` nicht in einen neuen Hostnamen ändern, solange Remote-Anmeldungen oder verknüpfte Server aktiv den alten Hostnamen verwenden. Diese Einschränkung gilt in zwei Szenarien:
  + Wenn ein verknüpfter Server mithilfe einer Remote-Anmeldung, die dem alten Hostnamen zugeordnet ist, eine Verbindung zum lokalen Server herstellt
  + Wenn eine Instance von RDS Custom für SQL Server als Publisher oder Verteiler fungiert und Anmeldenamen, die dem alten Hostnamen zugeordnet sind, mit ihren Subscriber-Instances verknüpft sind.

## Fehlerbehebung
<a name="custom-sqlserver-features.cdc.Troubleshooting"></a>

Verwenden Sie die folgenden Abfragen, um Remote-Anmeldungen oder verknüpfte Anmeldungen zu identifizieren, die mit dem alten Servernamen verknüpft sind. Überprüfen Sie die Ergebnisse und entfernen Sie diese Anmeldungen, um sicherzustellen, dass 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
```