web-dev-qa-db-fra.com

Comment puis-je vérifier si mon journal est tronqué?

J'ai un testDB. Le mode de récupération est simple et je suis de retour mon système avec Veeam. Maintenant, comment puis-je vérifier si mon journal de TestDB était tronqué après la sauvegarde ou non?

Je viens de trouver des commandes comme DBCC SQLPERF(LOGSPACE). Mais avec cela, je viens de voir l'espace disponible.

2
j.walt

En mode de récupération simple, le journal est tronqué automatiquement lorsque le point de contrôle est émis. Maintenant, lorsque vous exécutez DBCC SQLPERF (logspace) et votre journal est rempli de plus de 70%, vous pouvez supposer que votre journal n'est pas tronqué car un point de contrôle est censé être émis lorsque le journal augmente à 70% en récupération simple.

Si vous soupçonnez que votre journal ne soit pas tronqué dans une simple récupération, vous pouvez utiliser SYS.Databases, log_ruse_wait_desc colonnes pour savoir pourquoi la dernière troncature du journal n'a pas fonctionné.

Si vous voulez creuser un peu plus profondément, vous pouvez utiliser DBCC Loginfo et vérifier la colonne d'état pour voir quels enregistrements de journal virtuels sont actifs et de la manière de la manière de s'ils sont tronqués ou non.

2
jesijesi

Si toutes vos bases de données sont dans un modèle de récupération simple, vous ne devez pas vous soucier de la troncature du journal. Avec ce modèle, l'espace est automatiquement récupéré à partir du journal de transaction lorsque les points de contrôle se produisent (lorsque les données sont écrites aux disques). Néanmoins, si votre fichier .ldf est trop gros, vous avez toujours la possibilité d'utiliser la commande DBCC Shrinkfile afin de réduire sa taille.

Vous devriez prendre soin de la troncature du journal lorsque votre base de données est dans un modèle de récupération complète. Le Microsoft Doc affirme: "Sous le modèle complet du modèle de récupération ou du modèle de récupération enregistré en vrac, la partie inactive du journal ne peut pas être tronquée tant que tous ses enregistrements de journal ont été capturés dans une sauvegarde de journal. Ceci est nécessaire pour maintenir la chaîne de journalisation"

Voici un exemple de la "chaîne de journaux" des sauvegardes d'héritage des sévérales:

enter image description here

Notez les valeurs de First_LSN et Last_LSN. La chaîne de journal est cohérente

https://technet.microsoft.com/en-us/library/ms189085 (v = SQL.105) .aspx

1
Mickael