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.
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, , NULL
atau 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)