Change Data Capture: sys.dm_cdc_log_scan_sessions

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Gibt eine Zeile für jede Protokollscansitzung in der aktuellen Datenbank zurück. Die letzte zurückgegebene Zeile stellt die aktuelle Sitzung dar. Mithilfe dieser Sicht können Sie Statusinformationen zur aktuellen Protokollscansitzung oder aggregierte Informationen zu allen Sitzungen seit dem letzten Start der Instanz von SQL Server zurückgeben.

Die Datensätze in sys.dm_cdc_log_scan_sessions werden bei jedem Neustart des instance SQL Server oder nach einem Failover zurückgesetzt. Wenn sich die abgefragte Datenbank in der sekundären Rolle einer Always On Verfügbarkeitsgruppe befindet, werden außerdem keine Datensätze zurückgegeben.

Weitere Informationen finden Sie unter Was ist Change Data Capture (CDC)?

Spaltenname Datentyp BESCHREIBUNG
session_id int ID der Sitzung.

0 = Die in dieser Zeile zurückgegebenen Daten sind ein Aggregat aller Sitzungen, seit die Instanz von SQL Server das letzte Mal gestartet wurde.
start_time datetime Zeitpunkt, zu dem die Sitzung begonnen wurde.

Wenn session_id = 0, der Zeitpunkt, zu dem die aggregierte Datensammlung gestartet wurde.
end_time datetime Zeitpunkt, zu dem die Sitzung beendet wurde.

NULL = Sitzung ist aktiv.

Wenn session_id = 0, der Zeitpunkt, zu dem die letzte Sitzung beendet wurde.
duration int Die Dauer (in Sekunden) der Sitzung.

0 = Die Sitzung enthält keine Change Data Capture-Transaktionen.

Wenn session_id = 0, die Summe der Dauer aller Sitzungen (in Sekunden) mit Change Data Capture-Transaktionen.
scan_phase nvarchar(200) Die aktuelle Phase der Sitzung. Die folgende Auflistung enthält die möglichen Werte und deren Beschreibung:

1: Lesen der Konfiguration
2: Erster Scan, Erstellen der Hashtabelle
3: Zweiter Scan
4: Zweiter Scan
5: Zweiter Scan
6: Versionsverwaltung des Schemas
7: Letzter Scan
8: Fertig

Wenn session_id = 0, lautet dieser Wert immer „Aggregat“.
error_count int Anzahl der aufgetretenen Fehler.

Wenn session_id = 0, die Gesamtzahl der Fehler in allen Sitzungen.
start_lsn nvarchar(23) Start-LSN für die Sitzung.

Wenn session_id = 0, die Start-LSN für die letzte Sitzung.
current_lsn nvarchar(23) Aktuelle LSN, die gescannt wird.

Wenn session_id = 0, lautet die aktuelle LSN 0.
end_lsn nvarchar(23) Letzte LSN für die Sitzung.

NULL = Sitzung ist aktiv.

Wenn session_id = 0, die End-LSN für die letzte Sitzung.
tran_count bigint Anzahl der verarbeiteten Change Data Capture-Transaktionen. Dieser Leistungsindikator wird in Phase 2 aufgefüllt.

Wenn session_id = 0, die Anzahl der verarbeiteten Transaktionen in allen Sitzungen.
last_commit_lsn nvarchar(23) LSN des letzten verarbeiteten Protokolldatensatzes für den Commit.

Wenn session_id = 0, die letzte LSN des Protokolldatensatzes für den Commit einer beliebigen Sitzung.
last_commit_time datetime Zeitpunkt, zu dem der letzte Protokolldatensatz für den Commit verarbeitet wurde.

Wenn session_id = 0, der Zeitpunkt des letzten Protokolldatensatzes für den Commit einer beliebigen Sitzung.
log_record_count bigint Anzahl der gescannten Protokolldatensätze.

Wenn session_id = 0, die Anzahl der gescannten Datensätze für alle Sitzungen.
schema_change_count int Anzahl der erkannten Vorgänge in der Datendefinitionssprache (Data Definition Language, DDL). Dieser Leistungsindikator wird in Phase 6 aufgefüllt.

Wenn session_id = 0, die Anzahl der verarbeiteten DDL-Vorgänge in allen Sitzungen.
command_count bigint Anzahl der verarbeiteten Befehle.

Wenn session_id = 0, die Anzahl der verarbeiteten Befehle in allen Sitzungen.
first_begin_cdc_lsn nvarchar(23) Erste LSN, die Change Data Capture-Transaktionen enthalten hat.

Wenn session_id = 0, die erste LSN, die Change Data Capture-Transaktionen enthalten hat.
last_commit_cdc_lsn nvarchar(23) LSN des letzten Protokolldatensatzes für den Commit, der Change Data Capture-Transaktionen enthalten hat.

Wenn session_id = 0, die LSN des letzten Protokolldatensatzes für den Commit einer beliebigen Sitzung, die Change Data Capture-Transaktionen enthalten hat.
last_commit_cdc_time datetime Zeitpunkt, zu dem der letzte Protokolldatensatz für den Commit verarbeitet wurde, der Change Data Capture-Transaktionen enthalten hat.

Wenn session_id = 0, der Zeitpunkt des letzten Protokolldatensatzes für den Commit einer beliebigen Sitzung, die Change Data Capture-Transaktionen enthalten hat.
latency int Die Differenz (in Sekunden) zwischen end_time und last_commit_cdc_time in der Sitzung. Dieser Leistungsindikator wird am Ende der Phase 7 aufgefüllt.

Wenn session_id = 0, der von einer Sitzung aufgezeichnete letzte Latenzwert ungleich 0 (null).
empty_scan_count int Anzahl der aufeinander folgenden Sitzungen, die keine Change Data Capture-Transaktionen enthalten haben.
failed_sessions_count int Anzahl der fehlgeschlagenen Sitzungen.

Bemerkungen

Die sys.dm_cdc_log_scan_sessions DMV enthält bis zu 32 Scansitzungen und ein Aggregat aller Scansitzungen mit session_id= 0. Diese dynamische Verwaltungsansicht kann also jederzeit maximal 33 Zeilen enthalten.

Berechtigungen

Erfordert die Berechtigung VIEW DATABASE STATE zum Abfragen der dynamischen Verwaltungssicht sys.dm_cdc_log_scan_sessions. Weitere Informationen zu Berechtigungen für dynamische Verwaltungssichten finden Sie unter Dynamische Verwaltungssichten und -funktionen (Transact-SQL).

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW DATABASE PERFORMANCE STATE-Berechtigung für die Datenbank.

Beispiele

Im folgenden Beispiel werden Informationen zur aktuellen Sitzung zurückgegeben.

USE AdventureWorks2022;  
GO  
SELECT session_id, start_time, end_time, duration, scan_phase,  
    error_count, start_lsn, current_lsn, end_lsn, tran_count,  
    last_commit_lsn, last_commit_time, log_record_count, schema_change_count,  
    command_count, first_begin_cdc_lsn, last_commit_cdc_lsn,   
    last_commit_cdc_time, latency, empty_scan_count, failed_sessions_count  
FROM sys.dm_cdc_log_scan_sessions  
WHERE session_id = (SELECT MAX(b.session_id) FROM sys.dm_cdc_log_scan_sessions AS b);  
GO  

Nächste Schritte