Aracılığıyla paylaş


sys.dm_db_log_stats (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2016 (13.x) SP2 ve sonraki sürümler Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Veritabanlarının işlem kayıtları dosyalarındaki özet düzeyi özellikleri ve bilgileri döndürür. Bu bilgiyi işlem günlüğünün sağlığının izlenmesi ve tanılaması için kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

 sys.dm_db_log_stats ( database_id )

Arguments

database_id | NULL | TEMERRÜT

Veritabanının kimliğidir. database_id, int'e eşittir. Geçerli girdiler, bir veritabanının kimlik numarası, NULL, veya DEFAULT. Varsayılan değer: NULL. NULL ve DEFAULT mevcut veritabanı bağlamında eşdeğer değerlerdir.
Yerleşik işlev DB_ID belirtilebilir. Veritabanı adı belirtilmeden kullanıldığında DB_ID , mevcut veritabanının uyumluluk seviyesi 90 veya daha yüksek olmalıdır.

Tablolar Geri Getirildi

Sütun adı Veri türü Description
veritabanı_kimlik int Veritabanı Kimliği.

Azure SQL Veritabanı'nda değerler tek bir veritabanı veya elastik havuz içinde benzersizdir, ancak mantıksal sunucu içinde değildir.
recovery_model nvarchar(60) Veritabanının kurtarma modeli. Olası değerler şunlardır:
BASİT
BULK_LOGGED
DOLU
log_min_lsn nvarchar(24) İşlem günlüğündeki mevcut başlangıç logu dizisi numarası (LSN ).
log_end_lsn nvarchar(24) işlem günlüğündeki son günlük kaydının log dizisi numarası (LSN).
current_vlf_sequence_number bigint Uygulama anındaki mevcut sanal log dosyası (VLF) sıra numarası.
current_vlf_size_mb float Mevcut sanal log dosyası (VLF) boyutu MB cinsinden.
total_vlf_count bigint İşlem günlüğündeki toplam sanal log dosyası (VLF ) sayısı.
total_log_size_mb float Toplam işlem logu boyutu MB cinsinden.
active_vlf_count bigint İşlem günlüğündeki toplam aktif sanal günlük dosyaları (VLF ) sayısı.
active_log_size_mb float Toplam aktif işlem logu boyutu MB cinsinden.
log_truncation_holdup_reason nvarchar(60) Log kesintisi gecikme nedeni. Değer log_reuse_wait_desc , 'nin sys.databasessütunuyla aynıdır. (Bu değerlerin daha ayrıntılı açıklamaları için bkz. İşlem Günlüğü).
Olası değerler şunlardır:
HİÇ
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
Veritabanı Yansıtma
Replikasyon
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
DİĞER GEÇICI
log_backup_time datetime Son işlem günlüğünün yedek zamanı.
log_backup_lsn nvarchar(24) Son işlem günlüğü yedekleme logu dizisi numarası (LSN).
log_since_last_log_backup_mb float Son işlem günlüğü yedekleme log dizisi numarası (LSN) ile MB cinsinden bu boyut.
log_checkpoint_lsn nvarchar(24) Son kontrol noktası log dizi numarası (LSN).
log_since_last_checkpoint_mb float Son kontrol noktası log dizisi numarasından (LSN) itibaren MB cinsinden log boyutu.
log_recovery_lsn nvarchar(24) Veritabanının kurtarma günlüğü dizisi numarası (LSN ). Eğer log_recovery_lsn kontrol noktasından önce gerçekleşirse LSN, log_recovery_lsn en eski aktif işlem LSN'dir, aksi takdirde log_recovery_lsn kontrol noktası LSN'dir.
log_recovery_size_mb float Log boyutu, günlük kurtarma log dizisi numarasından (LSN) beri MB cinsinden.
recovery_vlf_count bigint Yedekleme veya sunucu yeniden başlatma durumunda kurtarılacak toplam sanal log dosyası (VLF ) sayısı.

Açıklamalar

sys.dm_db_log_stats Bir veritabanına ikincil bir kopya olarak katılan bir veritabanına karşı çalışırken, yukarıda açıklanan alanların yalnızca bir alt kümesi geri döner. Şu anda sadece database_id, recovery_model, ve log_backup_time ikincil bir veritabanına karşı çalıştırıldığında geri dönecektir.

Permissions

VIEW SERVER STATE Veritabanında izin gerektirir.

SQL Server 2022 ve üzeri için izinler

Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Örnekler

A. Yüksek sayıda VLF içeren SQL Server örneğinde veritabanlarının belirlenmesi

Aşağıdaki sorgu, log dosyalarında 100'den fazla VLF bulunan veritabanlarını döndürür. Çok sayıda VLF veritabanı başlatma, geri yükleme ve kurtarma süresini etkileyebilir.

SELECT name AS 'Database Name', total_vlf_count AS 'VLF count' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id) 
WHERE total_vlf_count  > 100;

B. 4 saatten eski işlem günlüğü yedeklemeleriyle SQL Server örneğinde veritabanlarının belirlenmesi

Aşağıdaki sorgu, örnekteki veritabanlarının son günlük yedekleme sürelerini belirler.

SELECT name AS 'Database Name', log_backup_time AS 'last log backup time' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id); 

Ayrıca Bkz.

Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
veritabanıyla ilgili dinamik yönetim görünümlerini (Transact-SQL)

sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)