Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Verfahren wird beschrieben, wie Eine Paketvariable definiert wird, in der der CDC-Zustand gespeichert ist.
Die CDC-Zustandsvariable wird von der CDC Control-Aufgabe geladen, initialisiert und aktualisiert und wird von der CDC Source-Datenflusskomponente verwendet, um den aktuellen Verarbeitungsbereich für Änderungsdatensätze zu bestimmen. Die CDC-Zustandsvariable kann für jeden Container definiert werden, der für die CDC Control-Aufgabe und die CDC-Quelle gemeinsam ist. Dies kann auf Paketebene erfolgen, kann aber auch auf anderen Containern wie einem Schleifencontainer vorkommen.
Das manuelle Ändern des VARIABLENwerts des CDC-Zustands wird nicht empfohlen, kann jedoch hilfreich sein, um den Inhalt zu verstehen.
Die folgende Tabelle enthält eine allgemeine Beschreibung der Komponenten des CDC-Zustandsvariablenwerts.
| Komponente | BESCHREIBUNG |
|---|---|
<state-name> |
Dies ist der Name des aktuellen CDC-Zustands. |
CS |
Dadurch wird der aktuelle Verarbeitungsbereich (Aktueller Anfangspunkt) markiert. |
<cs-lsn> |
Dies ist der letzte LSN (Log-Sequenznummer), der in der vorherigen CDC-Ausführung verarbeitet wurde. |
CE |
Dadurch wird der aktuelle Verarbeitungsbereichsendpunkt (Aktueller Endpunkt) markiert. Das Vorhandensein der CE-Komponente im CDC-Zustand ist ein Hinweis darauf, dass entweder ein CDC-Paket derzeit verarbeitet wird oder dass ein CDC-Paket vor der vollständigen Verarbeitung seines CDC-Verarbeitungsbereichs fehlgeschlagen ist. |
<ce-lsn> |
Dies ist der letzte LSN, der in der aktuellen CDC-Ausführung verarbeitet werden soll. Es wird immer davon ausgegangen, dass die letzte zu verarbeitende Sequenznummer das Maximum (0xFFF...) ist. |
IR |
Dadurch wird der anfängliche Verarbeitungsbereich markiert. |
<ir-start> |
Dies ist ein LSN einer Änderung unmittelbar vor Beginn der anfänglichen Last. |
<ir-end> |
Dies ist ein LSN einer Änderung direkt nach Beendigung der anfänglichen Last. |
TS |
Dadurch wird der Zeitstempel für das letzte CDC-Statusupdate markiert. |
| <Zeitstempel> | Dies ist eine Dezimaldarstellung der 64-Bit-, System.DateTime.UtcNow-Eigenschaft. |
ER |
Dies wird angezeigt, wenn der letzte Vorgang fehlgeschlagen ist und eine kurze Beschreibung der Ursache des Fehlers enthält. Wenn diese Komponente vorhanden ist, wird sie immer zuletzt angezeigt. |
<short-error-text> |
Dies ist die kurze Fehlerbeschreibung. |
Die LSNs und Sequenznummern werden jeweils als hexadezimale Zeichenfolge mit bis zu 20 Ziffern codiert, die den LSN-Wert von Binary(10) darstellen.
In der folgenden Tabelle werden die möglichen CDC-Zustandswerte beschrieben.
| Staat | BESCHREIBUNG |
|---|---|
| (INITIAL) | Dies ist der Anfangszustand, bevor irgendein Paket in der aktuellen CDC-Gruppe ausgeführt wurde. Dieser Status liegt auch vor, wenn der CDC-Status leer ist. |
| ILSTART (Erste Ladevorgang gestartet) | Dies ist der Zustand, wenn das anfängliche Ladepaket gestartet wird, nach dem MarkInitialLoadStart Vorgangsaufruf der CDC Control-Aufgabe. |
| ILEND (Erstladung beendet) | Dies ist der Zustand, wenn das anfängliche Ladepaket erfolgreich beendet wird, nachdem der MarkInitialLoadEnd Vorgangsaufruf an die CDC Control-Aufgabe aufgerufen wurde. |
| ILUPDATE (Initial Load Update [Anfängliches Laden-Update]) | Dies ist der Zustand bei der Ausführung des Trickle-Feed-Update-Pakets nach dem anfänglichen Laden, während der anfängliche Verarbeitungsbereich noch verarbeitet wird. Dies ist nach dem GetProcessingRange Vorgangsaufruf für die CDC Control-Aufgabe.Wenn Sie die Spalte __$reprocessing verwenden, wird sie auf 1 festgelegt, um anzugeben, dass das Paket zeilen möglicherweise bereits am Ziel neu verarbeitet. |
| TFEND (Trickle-Feed Update beendet) | Der für reguläre CDC-Ausführungen erwartete Status. Er gibt an, dass die vorherige Ausführung erfolgreich abgeschlossen wurde und eine neue Ausführung mit einem neuen Verarbeitungsbereich gestartet werden kann. |
| TFSTART | Dies ist der Zustand einer nicht initialen Ausführung des Trickle-Feed-Update-Pakets nach dem GetProcessingRange Vorgangsaufruf der CDC-Control-Aufgabe.Dies gibt an, dass eine normale CDC-Ausführung gestartet wurde, aber noch nicht abgeschlossen ist oder noch nicht ordnungsgemäß abgeschlossen wurde ( MarkProcessedRange). |
| TFREDO (Erneute Verarbeitung Trickle-Feed-Updates) | Dies ist der Zustand für ein GetProcessingRange Ereignis, das nach TFSTART auftritt. Er gibt an, dass die vorherige Ausführung nicht erfolgreich abgeschlossen wurde.Wenn Sie die Spalte __$reprocessing verwenden, wird sie auf 1 festgelegt, um anzugeben, dass das Paket zeilen möglicherweise bereits am Ziel neu verarbeitet. |
| FEHLER | Die CDC-Gruppe befindet sich in einem Fehlerstatus. |
Im Folgenden sind Beispiele für Werte der CDC-Zustandsvariablen aufgeführt.
ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/
ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/
TFEND/CS/0x0000025B000001BC0003/TS/2011-07-17T12:05:58.1001145/
TFSTART/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:43.9344900/
TFREDO/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:59.5544900/
So definieren Sie eine CDC-Zustandsvariable
Öffnen Sie in SQL Server Data Tools das SQL Server 2014 Integration Services (SSIS)-Paket mit dem CDC-Fluss, in dem Sie die Variable definieren müssen.
Klicken Sie auf die Registerkarte "Paket-Explorer ", und fügen Sie eine neue Variable hinzu.
Geben Sie der Variablen einen Namen, den Sie als Statusvariable erkennen können.
Weisen Sie der Variablen einen Datentyp "String " zu.
Weisen Sie der Variablen keinen Wert als Teil der Definition zu. Der Wert muss von der CDC-Steuerungsaufgabe festgelegt werden.
Wenn Sie beabsichtigen, die CDC-Steuerungsaufgabe mit der Persistenz des automatischen Zustands zu verwenden, wird die CDC-Statusvariable aus der von Ihnen angegebenen Datenbankstatustabelle gelesen und wieder auf dieselbe Tabelle aktualisiert, wenn sich der Wert ändert. Weitere Informationen zur Tabelle "Status" finden Sie im CDC Control Taskand CDC Control Task Editor.
Wenn Sie die CDC-Steuerungsaufgabe nicht mit der automatischen Persistenz verwenden, müssen Sie den Variablenwert aus dem persistenten Speicher laden, wo sein Wert beim letzten Ausführen des Pakets gespeichert wurde, und ihn zurück in den persistenten Speicher schreiben, wenn die Verarbeitung des aktuellen Verarbeitungsbereichs abgeschlossen ist.