Aracılığıyla paylaş


Değişim Veri Yakalama - sys.dm_cdc_log_scan_sessions

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Mevcut veritabanındaki her log tarama oturumu için bir satır döndürür. Son satır mevcut oturumu temsil eder. Bu görünümü, mevcut log tarama oturumunun durum bilgilerini veya SQL Server örneği en son başlatıldığından beri tüm oturumların toplu bilgilerini döndürmek için kullanabilirsiniz.

SQL Server örneği yeniden başlatıldığında veya bir failover gerçekleştiğinde kayıtlar sys.dm_cdc_log_scan_sessions sıfırlanır. Ayrıca, sorgulanan veritabanı Always On erişilebilirlik grubunun ikincil rolündeyse, kayıt geri dönmez.

Daha fazla bilgi için, değişiklik veri yakalama (CDC) nedir diye inceleyin.

Sütun adı Veri türü Description
session_id int Oturumun kimliği.

0 = bu satırda geri dönen veri, SQL Server örneği son başlatıldığından beri tüm oturumların toplamıdır.
start_time datetime Oturumun başlama zamanı geldi.

= 0 olduğunda session_id , zaman toplamında veri toplama başlar.
end_time datetime Seansın bitme zamanı.

NULL = oturum aktif.

Ne session_id zaman = 0, son oturumun bittiği zaman.
süre int Seansın süresi (saniyeler cinsinden).

0 = oturumda değişiklik veri yakalama işlemleri içermez.

Ne session_id zaman = 0, değişim veri yakalama işlemleriyle tüm oturumların süresinin (saniye cinsinden) toplamı.
scan_phase nvarchar(200) Oturumun mevcut aşaması. Olası değerler ve açıklamaları aşağıda verilmiştir:

1: Okuma yapılandırması
2: İlk tarama, hash tablosu oluşturma
3: İkinci tarama
4: İkinci tarama
5: İkinci tarama
6: Şema versiyonu
7: Son tarama
8: Bitti

session_id = 0 olduğunda, bu değer her zaman "Toplam" olur.
error_count int Karşılaşılan hata sayısı.

Ne session_id zaman = 0, tüm oturumlardaki toplam hata sayısı.
start_lsn nvarchar(23) Seans için LSN başlatıyorum.

Ne session_id = 0 olursa, son oturumun başlangıç LSN'si.
current_lsn nvarchar(23) Mevcut LSN taranıyor.

session_id = 0 olduğunda, mevcut LSN 0'dır.
end_lsn nvarchar(23) Oturum için LSN'i bitiriyor.

NULL = oturum aktif.

When session_id = 0, son oturumun son LSN'si.
tran_count bigint İşlenen değişiklik veri yakalama işlemlerinin sayısı. Bu sayaç faz 2'de doldurulur.

Ne session_id = 0 olursa, tüm oturumlarda işlenen işlem sayısı.
last_commit_lsn nvarchar(23) İşlenen son commit log kaydının LSN'si.

Eğer session_id = 0, herhangi bir oturum için LSN son commit log kaydıdır.
last_commit_time datetime Son commit log kaydının işlendiği zaman.

Ne session_id = 0 olursa, herhangi bir oturum için son commit log kaydının gerçekleştiği zaman.
log_record_count bigint Taranan kayıt sayısı.

Ne session_id = 0 olursa, tüm oturumlar için taranan kayıt sayısı.
schema_change_count int Tespit edilen veri tanımı dili (DDL) operasyonlarının sayısı. Bu sayaç 6. aşamada doldurulmuştur.

Ne session_id = 0 olursa, tüm oturumlarda işlenen DDL işlemlerinin sayısı.
command_count bigint İşlenen komut sayısı.

= session_id 0 olduğunda, tüm oturumlarda işlenen komut sayısı.
first_begin_cdc_lsn nvarchar(23) İlk olarak değişim veri yakalama işlemlerini içeren LSN.

= session_id 0 olduğunda, değişim veri yakalama işlemlerini içeren ilk LSN.
last_commit_cdc_lsn nvarchar(23) Değişiklik veri yakalama işlemlerini içeren son commit log kaydının LSN'si.

= session_id 0 olduğunda, değişiklik veri yakalama işlemlerini içeren herhangi bir oturum için son commit log kaydı LSN
last_commit_cdc_time datetime Değişiklik veri yakalama işlemlerini içeren son commit log kaydının işlendiği zaman.

Ne session_id = 0 olursa, değişiklik veri yakalama işlemlerini içeren herhangi bir oturum için son commit log kaydının zamanı.
Gecikme int Seans arasındaki ve saniye end_timelast_commit_cdc_time farkı. Bu sayaç, 7. aşamanın sonunda doldurulur.

Ne session_id zaman = 0, bir oturum tarafından kaydedilen son sıfır olmayan gecikme değeri.
empty_scan_count int Değişiklik veri yakalama işlemleri içermeyen ardışık oturum sayısı.
failed_sessions_count int Başarısız olan seans sayısı.

Açıklamalar

DMV, sys.dm_cdc_log_scan_sessions 32 tarama oturumuna kadar ve tüm tarama oturumlarının toplamını içerir.session_id= 0 Yani, herhangi bir zamanda bu dinamik yönetim görünümü maksimum 33 satır içerebilir.

Permissions

Dinamik yönetim görünümünü sys.dm_cdc_log_scan_sessions sorgulamak için VIEW DATABASE STATE izni gerektirir. Dinamik yönetim görünümlerindeki izinler hakkında daha fazla bilgi için Dinamik Yönetim Görünümleri ve Fonksiyonları (Transact-SQL) bölümüne bakınız.

SQL Server 2022 ve üzeri için izinler

Veritabanında VERITABANı PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Örnekler

Aşağıdaki örnek en güncel oturumun bilgilerini geri döndürür.

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  

Sonraki Adımlar