Bonjour, je m’appelle Curt. Je suis ingénieur principal senior et je travaille au sein de l’équipe GSE.
Cette vidéo explique comment réduire un fichier log des transactions de base de données Microsoft SQL Server. Nous allons passer en revue les différentes façons de réduire le journal des transactions et ce qu’il faut faire si l’opération de réduction du journal ne s’exécute pas comme prévu.
Nous disposons donc de plusieurs façons de réduire le fichier journal. Nous pouvons accéder à SQL Server Management Studio. Allez dans les propriétés de la base de données et effectuez l’opération de réduction là-bas et nous allons d’abord le démontrer.
Ensuite, nous avons également l’opération d’exécution de la commande TSQL ShrinkFile. L’autre chose dont nous voulons discuter dans cette vidéo est ce qui se passe si l’opération de réduction du fichier ne s’exécute pas comme prévu, et nous allons discuter des options que vous voudrez prendre dans ce cas.
Nous allons travailler avec la base de données 'AdventureWorks2017' et si nous allons dans 'Tâches' dans le menu de la base de données et que nous descendons à 'Réduire', nous avons deux options différentes.
Nous pourrions travailler au niveau de la base de données en traitant tous les fichiers de la base de données ou en traitant des fichiers spécifiques, et dans ce cas, nous voulons absolument utiliser des fichiers spécifiques. Par défaut, si vous regardez notre palette ici, vous avez « Data » qui s’affiche sous le « File type ».
Nous n’allons rien faire avec le fichier de base de données. À la place, nous cherchons à réduire le journal des transactions, de sorte que le journal des transactions soit littéralement « Log » sous le « Type de fichier ». Nous avons maintenant quelques informations sur la base de données.
Le log de base de données est assez petit, il s’agit d’une nouvelle base de données, et nous voyons la taille allouée à ce log de transactions, ainsi que l’espace libre. L’espace libre peut être important, car sans espace libre, nous ne pouvons pas exécuter une opération de réduction de fichier sur une base de données.
Plusieurs options sont proposées. Nous n’allons pas entrer dans les détails ici, mais nous avons la possibilité de libérer de l’espace inutilisé, ce qui revient à tronquer le fichier log des transactions. Nous pourrions l’exécuter en cliquant simplement sur OK et il continuerait et ferait une réduction, ou ferait une tentative de réduction sur cette base de données. Au lieu de cela, nous allons aller de l’avant et jeter un coup d’œil à l’option TSQL pour réduire la base de données.
Je suis un peu paresseux aujourd’hui, alors je vais aller de l’avant et venir à 'Script Action to Clipboard' qui va extraire la transaction, la commande TSQL qui aurait été exécutée si nous avions cliqué sur OK ici.
Je vais cliquer sur Annuler, puis coller la commande TSQL pour effectuer une réduction sur notre base de données AdventureWorks2017. Maintenant, pour parcourir la commande encore une fois, il s’agit d’une commande de réduction de fichier. Nous avons affaire au journal AdventureWorks2017, et nous pouvons spécifier la taille souhaitée de ce journal.
Dans ce cas, nous allons conserver la valeur par défaut de zéro. Si vous ne définissez rien ici, ou si vous laissez la valeur sur zéro, le fichier tentera de revenir à sa taille d’origine. Nous disposons de l’option « truncateonly » qui permet de libérer de l’espace dans le journal des transactions vers le système d’exploitation.
Maintenant que nous l’exécutons, nous disposons d’un rapport sur son évolution et sa taille actuelle. Il est donc allé de l’avant et l’a réduit à environ un méga, ce qui est parfait pour nous. L’espace disque récupéré est important. L’une des choses que nous voulons également aborder dans cette vidéo est ce qui se passe si nous exécutons Shrink File et qu’il ne parvient pas à s’exécuter correctement.
La principale raison pour laquelle l’opération de réduction de fichier échoue est qu’il n’y a pas suffisamment d’espace libre dans la base de données pour exécuter la commande de réduction de fichier. La première chose à faire est de déterminer la quantité d’espace disponible dans le fichier.
Maintenant, nous l’avons vu dans le menu de l’interface graphique, nous pouvons également exécuter cette commande particulière sur - maintenant que nous avons changé d’orientation ici, nous travaillons avec la base de données AdventureWorks2019 à la place. L’exécution de cette commande, la commande select, nous obtiendra la quantité d’espace disponible que l’on constate dans cette base de données.
Actuellement, nous voyons trois Mo d’espace libre dans la base de données. Il existe deux options différentes que nous pourrions utiliser pour essayer de réduire la base de données dans le cas où nous n’avons plus d’espace libre dans cette base de données particulière. On peut changer l’option, l’option de récupération, pour la base de données adventure Works 2019.
Si nous changeons l’option de récupération sur « simple » et que nous exécutons la commande dbcc shrink file, cela devrait réduire le fichier à une taille beaucoup plus petite que la taille d’origine. Chaque fois que nous mettons notre base de données en mode simple, le journal des transactions traite les transactions actives et tout ce qui n’est pas actif est vidé du journal.
Nous pouvons exécuter ces commandes particulières. La plupart des bases de données de production seront en restauration complète. Par conséquent, le passage à simple nous permet, ou du moins nous donne une chance, d’exécuter correctement la commande shrink file. Nous sommes donc en mode simple et, une fois de plus, notre scénario est le suivant : nous n’avons pas réussi à exécuter cette opération.
Après être passé en mode simple, nous exécutons l’opération de réduction de fichier synchrone avec succès, cela nous donne les informations sur la nouvelle taille de fichier, et la dernière chose à faire dans ce cas particulier est de le remettre en mode de récupération complète.
À ce stade, nous avons pris un fichier log transactionnel impossible à gérer pour utiliser la commande shrink file et l’avons amené à un état qui nous permet de le réduire et nous le remettons dans un mode où il peut désormais être sauvegardé pour nous assurer que nous obtenons les dernières informations sur les transactions.
Voilà qui conclut notre démo sur la réduction d’un fichier log des transactions de base de données Microsoft SQL Server.
Merci de votre attention.