Bagikan melalui


sys.dm_db_log_stats (T-SQL)

Berlaku untuk: SQL Server 2016 (13.x) SP 2 dan yang lebih baru Azure SQL Database Azure SQL Managed Instance

Mengembalikan atribut tingkat ringkasan dan informasi tentang file log transaksi database. Gunakan informasi ini untuk pemantauan dan diagnostik kesehatan log transaksi.

Konvensi sintaks transact-SQL

Sintaks

 sys.dm_db_log_stats ( database_id )

Argumen

database_id | NULL | DEFAULT

Adalah ID database. database_id adalah int. Input yang valid adalah nomor ID database, , NULLatau DEFAULT. Default adalah NULL. NULL dan DEFAULT merupakan nilai yang setara dalam konteks database saat ini.
Fungsi bawaan DB_ID dapat ditentukan. Saat menggunakan DB_ID tanpa menentukan nama database, tingkat kompatibilitas database saat ini harus 90 atau lebih besar.

Tabel yang Dikembalikan

Nama kolom Jenis data Deskripsi
database_id int ID Database.

Di Azure SQL Database, nilainya unik dalam satu database atau kumpulan elastis, tetapi tidak dalam server logis.
recovery_model nvarchar(60) Model pemulihan database. Nilai yang mungkin meliputi:
SEDERHANA
BULK_LOGGED
FULL
log_min_lsn nvarchar(24) Nomor urutan log awal (LSN) saat ini dalam log transaksi.
log_end_lsn nvarchar(24) nomor urutan log (LSN) dari catatan log terakhir dalam log transaksi.
current_vlf_sequence_number bigint Nomor urutan file log virtual (VLF) saat ini pada saat eksekusi.
current_vlf_size_mb float Ukuran file log virtual (VLF) saat ini dalam MB.
total_vlf_count bigint Jumlah total file log virtual (VLF) dalam log transaksi.
total_log_size_mb float Total ukuran log transaksi dalam MB.
active_vlf_count bigint Jumlah total file log virtual aktif (VLF) dalam log transaksi.
active_log_size_mb float Total ukuran log transaksi aktif dalam MB.
log_truncation_holdup_reason nvarchar(60) Alasan penahanan pemotongan log. Nilainya sama dengan log_reuse_wait_desc kolom sys.databases. (Untuk penjelasan lebih rinci tentang nilai-nilai ini, lihat Log Transaksi).
Nilai yang mungkin meliputi:
NOTHING
TITIK PEMERIKSAAN
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
DATABASE_MIRRORING
REPLICATION
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
SEMENTARA LAINNYA
log_backup_time datetime Waktu pencadangan log transaksi terakhir.
log_backup_lsn nvarchar(24) Nomor urutan log cadangan log transaksi terakhir (LSN).
log_since_last_log_backup_mb float Ukuran log dalam MB sejak nomor urutan log cadangan log transaksi terakhir (LSN).
log_checkpoint_lsn nvarchar(24) Nomor urutan log titik pemeriksaan terakhir (LSN).
log_since_last_checkpoint_mb float Ukuran log dalam MB sejak nomor urutan log titik pemeriksaan terakhir (LSN).
log_recovery_lsn nvarchar(24) Nomor urutan log pemulihan (LSN) database. Jika log_recovery_lsn terjadi sebelum LSN titik pemeriksaan, log_recovery_lsn adalah LSN transaksi aktif terlama, jika tidak log_recovery_lsn , adalah LSN titik pemeriksaan.
log_recovery_size_mb float Ukuran log dalam MB sejak nomor urutan log pemulihan log (LSN).
recovery_vlf_count bigint Jumlah total file log virtual (VLF) yang akan dipulihkan, jika ada failover atau mulai ulang server.

Keterangan

Saat berjalan sys.dm_db_log_stats terhadap database yang berpartisipasi dalam Grup Ketersediaan sebagai replika sekunder, hanya subset bidang yang dijelaskan di atas yang akan dikembalikan. Saat ini, hanya database_id, recovery_model, dan log_backup_time akan dikembalikan saat dijalankan terhadap database sekunder.

Izin

VIEW SERVER STATE Memerlukan izin dalam database.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Contoh

J. Menentukan database dalam instans SQL Server dengan jumlah VLF yang tinggi

Kueri berikut mengembalikan database dengan lebih dari 100 VLF dalam file log. Sejumlah besar VLF dapat memengaruhi waktu mulai, pemulihan, dan pemulihan database.

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. Menentukan database dalam instans SQL Server dengan cadangan log transaksi yang lebih lama dari 4 jam

Kueri berikut menentukan waktu pencadangan log terakhir untuk database dalam instans.

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); 

Lihat Juga

Tampilan dan Fungsi Manajemen Dinamis (Transact-SQL)
Tampilan Manajemen Dinamis Terkait Database (Transact-SQL)
sys.dm_db_log_space_usage (T-SQL)
sys.dm_db_log_info (T-SQL)