sys.dm_db_log_stats (Transact-SQL)
S’applique à : SQL Server 2016 (13.x) SP 2 et versions ultérieures Azure SQL Database Azure SQL Managed Instance
Retourne des attributs de niveau résumé et des informations sur les fichiers journaux des transactions des bases de données. Utilisez ces informations pour la surveillance et les diagnostics de l’intégrité du journal des transactions.
Conventions de la syntaxe Transact-SQL
Syntaxe
sys.dm_db_log_stats ( database_id )
Arguments
database_id | NULL | FAIRE DÉFAUT
ID de la base de données. database_id
est int
. Les entrées valides sont le numéro d’ID d’une base de données, NULL
ou DEFAULT
. Par défaut, il s’agit de NULL
. NULL
et DEFAULT
sont des valeurs équivalentes dans le contexte de la base de données active.
La fonction intégrée DB_ID peut être spécifiée. Lorsque vous utilisez DB_ID
sans spécifier de nom de base de données, le niveau de compatibilité de la base de données actuelle doit être supérieur ou égal à 90.
Tables retournées
Nom de la colonne | Type de données | Description |
---|---|---|
database_id | int | ID de la base de données. Dans Azure SQL Database, les valeurs sont uniques au sein d’une base de données unique ou d’un pool élastique, mais pas dans un serveur logique. |
recovery_model | nvarchar(60) | Modèle de récupération de la base de données. Les valeurs possibles sont : SIMPLE BULK_LOGGED FULL |
log_min_lsn | nvarchar(24) | Numéro de séquence de journal de démarrage actuel (LSN) dans le journal des transactions. |
log_end_lsn | nvarchar(24) | numéro de séquence de journal (LSN) du dernier enregistrement du journal dans le journal des transactions. |
current_vlf_sequence_number | bigint | Numéro de séquence du fichier journal virtuel actuel au moment de l’exécution. |
current_vlf_size_mb | float | Taille actuelle du fichier journal virtuel (VLF) en Mo. |
total_vlf_count | bigint | Nombre total de fichiers journaux virtuels (VLF) dans le journal des transactions. |
total_log_size_mb | float | Taille totale du journal des transactions en Mo. |
active_vlf_count | bigint | Nombre total de fichiers journaux virtuels actifs (VLF) dans le journal des transactions. |
active_log_size_mb | float | Taille totale du journal des transactions actif en Mo. |
log_truncation_holdup_reason | nvarchar(60) | Raison de la conservation de la troncation du journal. La valeur est identique à log_reuse_wait_desc la colonne de sys.databases . (Pour obtenir des explications plus détaillées sur ces valeurs, consultez Journal des transactions). Les valeurs possibles sont : NOTHING CHECKPOINT LOG_BACKUP ACTIVE_BACKUP_OR_RESTORE ACTIVE_TRANSACTION DATABASE_MIRRORING RÉPLICATION DATABASE_SNAPSHOT_CREATION LOG_SCAN AVAILABILITY_REPLICA OLDEST_PAGE XTP_CHECKPOINT AUTRES TEMPORAIRES |
log_backup_time | datetime | Dernière heure de sauvegarde du journal des transactions. |
log_backup_lsn | nvarchar(24) | Dernier numéro de séquence de journal de sauvegarde du journal des transactions (LSN). |
log_since_last_log_backup_mb | float | Taille du journal en Mo depuis le dernier numéro de séquence de journal de sauvegarde du journal des transactions (LSN). |
log_checkpoint_lsn | nvarchar(24) | Numéro de séquence de journal du dernier point de contrôle (LSN). |
log_since_last_checkpoint_mb | float | Taille de journal en Mo depuis le dernier numéro de séquence de journal de point de contrôle (LSN). |
log_recovery_lsn | nvarchar(24) | Numéro de séquence de journal de récupération (LSN) de la base de données. S’il log_recovery_lsn se produit avant le LSN de point de contrôle, log_recovery_lsn est le LSN de transaction actif le plus ancien, sinon log_recovery_lsn il s’agit du LSN de point de contrôle. |
log_recovery_size_mb | float | Taille de journal en Mo depuis le numéro de séquence de journal de récupération du journal (LSN). |
recovery_vlf_count | bigint | Nombre total de fichiers journaux virtuels à récupérer, en cas de basculement ou de redémarrage du serveur. |
Notes
Lors de l’exécution sys.dm_db_log_stats
sur une base de données qui participe à un groupe de disponibilité en tant que réplica secondaire, seul un sous-ensemble des champs décrits ci-dessus est retourné. Actuellement, seul database_id
, recovery_model
et log_backup_time
sera retourné lors de l’exécution sur une base de données secondaire.
autorisations
Requiert l’autorisation VIEW SERVER STATE
sur la base de données.
Autorisations pour SQL Server 2022 (et versions plus récentes)
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Exemples
R. Détermination des bases de données dans une instance SQL Server avec un nombre élevé de fonctions VLF
La requête suivante retourne les bases de données avec plus de 100 VLF dans les fichiers journaux. Un grand nombre de fonctions VLF peuvent affecter le démarrage, la restauration et le temps de récupération de la base de données.
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. Détermination des bases de données dans une instance SQL Server avec des sauvegardes de journal des transactions antérieures à 4 heures
La requête suivante détermine les dernières heures de sauvegarde des journaux pour les bases de données de l’instance.
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);
Voir aussi
Fonctions et vues de gestion dynamique (Transact-SQL)
Vues de gestion dynamique liées aux bases de données (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)