sys.dm_change_feed_errors (Transact-SQL)

Gilt für: SQL Server 2022 (16.x) und spätere Versionen Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsMirrored databases in Microsoft Fabric SQL databasein Microsoft Fabric

Gibt aktuelle Fehler aus dem Änderungsfeed, momentaufnahmen oder inkrementellen Veröffentlichungsprozess zurück.

Verwenden Sie diese dynamische Management-Ansicht für:

Diese Ansicht liefert nur Zeilen zurück, wenn eine der vorherigen Funktionen konfiguriert ist und ein Fehler gemeldet wurde. Ansonsten ist die Ansicht leer.

Spaltenname Datentyp Description
session_id int Der vom Historik verwaltete Cache session_id des Loglesers.
source_task tinyint ID des internen Änderungsfeedtasks.
0 = UNDEFINIERT
1 = TIMER
2 = ERFASSEN
3 = VERÖFFENTLICHEN
4 = COMMIT
5 = MOMENTAUFNAHME
table_id int Die object_id der relevanten Tabelle.
table_group_id uniqueidentifier Der eindeutige Bezeichner der Tabellengruppe. Es handelt sich um eine GUID, die vom Setup-Flow generiert wird.
capture_phase_number int Log-Reader-Scan-Phase. Wenn der Capture-Job abgeschlossen ist, der Publicify- oder Commit-Job aber noch in Bearbeitung ist, bleibt die Phasennummer beim letzten Scan (Batch-Verarbeitungsphase 7) erhalten. Weitere Informationen finden Sie unter batch_processing_phase in sys.dm_change_feed_log_scan_sessions. Diese Spalte gilt nicht für Snapshot.
entry_time datetime Das Datum und die Uhrzeit, an der der Fehler protokolliert wurde. Dieser Wert entspricht dem Timestamp im SQL-Fehlerprotokoll. In SQL Server wird diese Zeit in der lokalen Zeit angegeben. In Azure SQL-Datenbank erfolgt die Angabe in der Zeitzone UTC.
error_number int ID der Fehlermeldung.
error_severity int Schweregrad des Fehlers, der zwischen 1 und 25 liegen kann.
error_state int Zustandsnummer des Fehlers.
error_message nvarchar(1024) Meldungstext des Fehlers.
batch_start_lsn nvarchar(23) LSN-Anfangswert der Zeilen, die beim Auftreten des Fehlers verarbeitet wurden.

0 = der Fehler in einer Protokollscansitzung nicht aufgetreten ist.
batch_end_lsn nvarchar(23) LSN-Endwert der Zeilen, die beim Auftreten des Fehlers verarbeitet wurden.

0 = der Fehler in einer Protokollscansitzung nicht aufgetreten ist.
tran_begin_lsn nvarchar(23) Begin_lsn des Transaktionsfehlers. Es ist NULL für Snapshot-Fehler.
tran_commit_lsn nvarchar(23) Commit-LSN für die Änderungszeile in dem Änderungsdatenrowset, in dem der Fehler aufgetreten ist. Es ist NULL für Snapshot-Fehler.
sequence_value nvarchar(23) LSN-Wert der Zeilen, die beim Auftreten des Fehlers verarbeitet wurden.

0 = der Fehler in einer Protokollscansitzung nicht aufgetreten ist.
command_id int Befehls-ID aus der Änderungszeile, die nicht veröffentlicht werden konnte. Es ist NULL für Snapshot-Fehler.

Bemerkungen

Dieses DMV zeigt die 64 zuletzt registrierten Fehler an. Das DMV kann mehrere Fehler pro Log-Scan-Sitzung enthalten, wie zum Beispiel Wiederholungsversuche bei Landing Zone-Fehlschlägen (Fehler beim Schreiben in den Staging Storage, wo der Änderungsfeed Änderungen veröffentlicht). Dieses DMV zeigt auch Fehler an, die während des Snapshot- und inkrementellen Änderungsveröffentlichungsprozesses auftreten.

Die Fehlerliste rotiert automatisch. Neuere Fehler verschieben frühere Einträge. Fehler, die nicht mehr auftreten, bleiben bestehen, bis neuere Fehler sie verdrängen oder die Liste vollständig gelöscht ist. Die Fehlerliste wird im SQL-Speicher gespeichert, sodass Ereignisse wie ein Neustart der SQL-Engine oder das Deaktivieren des Änderungsfeeds sie löschen.

Erlaubnisse

Um die sys.dm_change_feed_errors dynamische Management-Ansicht abzufragen, benötigen VIEWDATABASE Sie die Berechtigung STATE oder VIEWDATABASE PERFORMANCE STATE . Weitere Informationen zu Berechtigungen in dynamischen Verwaltungssichten finden Sie unter Dynamische Verwaltungssichten und -funktionen.

In der Fabric-SQL-Datenbank muss einem Benutzer STATE in der Datenbank zugewiesen VIEWDATABASE werden, um dieses DMV abzufragen. Oder ein Mitglied einer beliebigen Rolle im Fabric-Arbeitsbereich kann diese DMV abfragen.

Examples

Verwenden Sie sys.dm_change_feed_errors diese Option, um nach aktuellen Fehlern zu suchen.

SELECT * 
FROM sys.dm_change_feed_errors 
ORDER BY entry_time DESC;