Auf dieser Seite finden Sie Informationen zu folgenden Themen:
- Das Verhalten von Datastream zur Verarbeitung von Daten, die aus einer SQL Server-Quelldatenbank abgerufen werden.
- Die von Datastream unterstützten Change Data Capture-Methoden (CDC).
- Die von Datastream unterstützten Versionen von SQL Server-Datenbanken.
- Bekannte Einschränkungen bei Verwendung der SQL Server-Datenbank als Quelle.
Verhalten
Datastream verfolgt Änderungen an der Datenbearbeitungssprache (Data Manipulation Language, DML) mit einer der folgenden CDC-Methoden:
Tabellen ändern
Mit der CDC-Methode für Änderungstabellen können Nutzer Logs für einen kürzeren Zeitraum aufbewahren und so Speicherplatz sparen. Sie unterstützt jedoch einen geringeren Durchsatz als die Methode für Transaktionslogs. Die Methode hat weniger Einschränkungen als Transaktionsprotokolle. So wird beispielsweise das Risiko eines Log-Truncation-Fehlers beseitigt, der zu dauerhaften Streamfehlern führt, und die Replikation verschlüsselter Tabellen wird unterstützt. Weitere Informationen finden Sie unter Bekannte Einschränkungen.
Bei dieser CDC-Methode werden Änderungen an der Quelle mithilfe dedizierter Änderungstabellen verfolgt. Transaktionslogs werden weiterhin verwendet, aber in begrenztem Umfang. Sie müssen sie nicht über längere Zeiträume aufbewahren. Wenn DML-Ereignisse auf die Quelltabellen angewendet werden, werden die Änderungen in die entsprechenden Änderungstabellen repliziert. Die Änderungstabellen haben dieselbe Struktur wie die Quelltabellen, enthalten aber zusätzliche Spalten für die Metadaten der Änderungen. Nur für Transaktionen, für die ein Commit ausgeführt wurde, werden die Änderungs- und die LSN-Tabellen (Log Sequence Number, Logfolgenummer) aktualisiert.
Wie Datastream DDL-Änderungen am Quellschema verarbeitet
Wenn Sie die CDC-Methode für Änderungstabellen verwenden, werden für jede Änderungstabelle Erfassungsinstanzen erstellt. Jede Erfassungsinstanz ist mit einer Liste von Spalten verknüpft, die sie erfasst und verfolgt. Wenn nach dem Erstellen der Erfassungsinstanz eine DDL-Änderung (Data Definition Language, Datendefinitionssprache) in der Quelle erfolgt, wird sie von der Instanz standardmäßig ignoriert. Sie können Ihren SQL Server-Stream jedoch so konfigurieren, dass Spalten repliziert werden, die dem Quellschema nach der Erstellung des Streams und der Erfassungsinstanz hinzugefügt wurden.
Hinweise
- Achten Sie darauf, dass Ihrem Datastream-Nutzer die Berechtigung
db_owner
zugewiesen ist.
Spalten replizieren, die dem Quellschema hinzugefügt wurden
Damit Datastream die Replikation von Spalten unterstützt, die dem Quellschema nach dem Erstellen eines Streams hinzugefügt wurden, müssen Sie Ihrem Stream das Label enable_ddl_support_for_ct
hinzufügen:
Rufen Sie in der Google Cloud Console die Seite Streams auf.
Klicken Sie auf den SQL Server-Stream, den Sie bearbeiten möchten.
Klicken Sie auf der Seite Streamdetails auf Pausieren.
Klicke auf Bearbeiten > Streameinstellungen bearbeiten.
Klicken Sie auf Label hinzufügen.
Geben Sie im Feld Schlüssel
enable_ddl_support_for_ct
ein.Geben Sie im Feld Value (Wert) den Wert
true
ein.Klicken Sie auf Speichern.
Klicke auf Starten, um den Stream fortzusetzen.
Datastream prüft die Tabelle cdc.ddl_history
alle fünf Minuten auf neue DDLs. Wenn einer Tabelle, die in der Streamkonfiguration enthalten ist, eine neue Spalte hinzugefügt wird, prüft Datastream, ob die Tabelle zwei Erfassungsinstanzen hat:
Andernfalls wird in Datastream eine neue Erfassungsinstanz erstellt, die Daten der ursprünglichen Erfassungsinstanz bis zum Zeitpunkt des DDL-Vorgangs gelesen und dann mit dem Lesen der neuen Erfassungsinstanz begonnen.
Ist dies der Fall, wird ein Logeintrag hinzugefügt, dass die DDL-Änderung nicht verarbeitet werden kann, da die maximale Anzahl von Erfassungsinstanzen erreicht ist.
Transaktionslogs
Bei dieser CDC-Methode liest Datastream Änderungen in der Quelle direkt aus Transaktionslogs. Diese Methode erfordert weniger Ressourcen und ermöglicht einen schnelleren Datenabruf, hat aber mehr Einschränkungen.
Damit keine Daten verloren gehen, dürfen die Logs nicht abgeschnitten werden, bevor Datastream sie liest. Wenn Sie die Logdateien hingegen zu lange aufbewahren, belegen sie Speicherplatz, was dazu führen kann, dass die Datenbankinstanz in den schreibgeschützten Modus wechselt.
Damit das CDC-Lesegerät genügend Zeit hat, die Logs zu lesen, und gleichzeitig Speicherplatz durch das Kürzen von Logs freigegeben werden kann, sind zusätzliche Konfigurationsschritte erforderlich, z. B. das Ändern von Abfrageintervallen und das Einrichten einer Kürzungssicherung. Diese Schritte bieten eine zusätzliche Schutzebene, damit Datastream die Daten auch dann lesen kann, wenn es zu Ausfallzeiten auf der Datastream-Seite oder zu Verbindungsproblemen zwischen der Quelldatenbank und Datastream kommt.
Eine detaillierte Anleitung zum Anwenden dieser zusätzlichen Maßnahmen finden Sie auf der Seite SQL Server-Quelldatenbank konfigurieren. Wählen Sie dort Ihren Datenbanktyp aus.
Versionen
Datastream unterstützt die folgenden Versionen und Editionen von SQL Server-Datenbanken:
- Selbstverwaltet (lokal oder in der Cloud gehostet) mit den folgenden Versionen:
- Enterprise: 2008 und höher
- Standard: 2016 SP1 und höher
- Entwickler: 2008 und später
- Amazon RDS for SQL Server
Azure SQL-Datenbank (ab Tarif S3).
Cloud SQL for SQL Server
Datastream unterstützt die folgenden Versionen von SQL Server-Datenbanken nicht:
- SQL Server Standard Edition von Version 2008 bis 2014
- SQL Server Express
- SQL Server Web
Bekannte Einschränkungen
Bekannte Einschränkungen bei Verwendung der SQL Server-Datenbank als Quelle:
- Streams sind auf 10.000 Tabellen beschränkt.
- Für Tabellen mit mehr als 500 Millionen Zeilen ist kein Backfill möglich, es sei denn, die folgenden Bedingungen sind erfüllt:
- Die Tabelle hat einen eindeutigen Index.
- Keine der Indexspalten kann Nullwerte enthalten.
- Alle Spalten des Index sind im Stream enthalten.
- Datenbanken, für die die verzögerte Langlebigkeit oder die beschleunigte Datenbankwiederherstellung (Accelerated Database Recovery, ADR) aktiviert ist, werden nicht unterstützt.
- Das Streamen von Änderungen an Systemtabellen wird nicht unterstützt.
- Die Windows Active Directory-Authentifizierung (AD) wird nicht unterstützt.
- Die folgenden Datentypen werden nicht unterstützt und nicht in das Ziel repliziert:
SQL_VARIANT
HIERARCHYID
GEOMETRY
GEOGRAPHY
- Datastream repliziert benutzerdefinierte Datentypen. Im Ziel wird jedoch der Basisdatentyp gespeichert, aus dem Sie Ihren benutzerdefinierten Typ ableiten. Wenn Sie beispielsweise einen
USERNAME
-Datentyp basierend auf demVARCHAR(50)
-Datentyp definieren, werden die Daten im Ziel alsVARCHAR(50)
gespeichert. Datastream unterstützt CDC für Spalten für große Objekte (
TEXT
,NTEXT
,XML
,IMAGE
) und Spalten mit maximal variabler Länge (VARCHAR(MAX)
,VARBINARY(MAX)
,NVARCHAR(MAX)
) in Tabellen ohne eindeutigen Index nicht.Wenn Spalten für große Objekte nicht im Stream enthalten sind, wird CDC unterstützt.
Datastream unterstützt die Replikation der folgenden Änderungen am Quellschema nicht, wenn die CDC-Methode für Tabellenänderungen verwendet wird:
- Spalten werden entfernt: Daten in diesen Spalten werden durch
NULL
-Werte ersetzt. - Datentypen ändern: Datastream versucht, die Daten in das Ziel einzufügen, und gibt einen Fehler aus, wenn die Daten abgelehnt werden.
- Spalten umbenennen: Wird für SQL Server nicht unterstützt, wenn CDC aktiviert ist.
Solche Schemaänderungen können zu Datenbeschädigungen oder Fehlern bei der Verarbeitung der Ereignisse führen.
- Spalten werden entfernt: Daten in diesen Spalten werden durch
Datastream unterstützt keine Datenmaskierung. Daten werden ohne Maskierung repliziert.
Datastream unterstützt keine Replikation von Änderungen, die mithilfe des DACPAC-Pakets (Data Tier Application Package) auf die Datenbank angewendet werden.
Datastream repliziert keine Änderungen, die mit den Anweisungen
WRITETEXT
oderUPDATETEXT
vorgenommen wurden.Datastream unterstützt die Replikation von berechneten Spalten nur, wenn die Spalte mit
PERSISTED
gekennzeichnet ist.Datastream unterstützt die Komprimierungstypen
PAGE
,COLUMNSTORE
undCOLUMNSTORE ARCHIVE
nicht.
Zusätzliche Einschränkungen bei der Verwendung der Methode für Transaktionslogs
Wenn Sie die CDC-Methode für Transaktionslogs verwenden, gelten die folgenden zusätzlichen Einschränkungen:
- Die transparente Datenverschlüsselung (Transparent Data Encryption, TDE) wird nicht unterstützt.
- Die Verschlüsselung auf Spaltenebene wird nicht unterstützt. Die Daten in diesen Spalten werden durch
NULL
-Werte ersetzt. - Wenn Sie die CDC-Methode für Transaktionslogs verwenden, unterstützt Datastream nicht die Replikation von Spalten, die dem Quellschema nach der Erstellung eines Streams hinzugefügt wurden. Die neuen Spalten werden nicht in das Ziel repliziert.
- Datastream unterstützt die
ROLLBACK TO SAVEPOINT
-Anweisung nicht. Solche Rollback-Ereignisse werden ignoriert und nicht in das Ziel repliziert. - Datastream unterstützt CDC nicht für Zeilen, die größer als 8 KB sind, in den folgenden Tabellentypen:
- Tabellen ohne eindeutigen Index
- Tabellen, die nur einen eindeutigen, nicht gruppierten Index mit einer oder mehreren Spalten mit variabler Länge (
VARCHAR
,VARBINARY
,NVARCHAR
) enthalten
Datastream unterstützt CDC für Spalten für große Objekte (
TEXT
,NTEXT
,XML
,IMAGE
) in den folgenden Tabellentypen nicht:- Tabellen ohne eindeutigen Index
- Tabellen, die nur einen eindeutigen, nicht gruppierten Index mit einer oder mehreren Spalten mit variabler Länge (
VARCHAR
,VARBINARY
,NVARCHAR
) enthalten
Wenn Spalten für große Objekte nicht im Stream enthalten sind, wird CDC für solche Tabellen nur unterstützt, wenn sie gültige Indexe haben.
Nächste Schritte
- Informationen zum Konfigurieren einer SQL Server-Quelle für die Verwendung mit Datastream