web-dev-qa-db-fra.com

SQL Server Comment configurer le plan de maintenance pour réduire le journal

J'ai donc un fichier journal qui pousse très grand après avoir exécuté un emploi SSIS par jour, parfois jusqu'à 1220 Mo. Dans mes options de base de données, j'ai défini mon modèle de récupération sur "complet".

Quand il est complet et que je perfrom rétrécit -> log -> il ne diminue pas beaucoup, mais si je définis le modèle de récupération sur simple, il le réduit à 1 Mo.

Le problème est que je le vois, j'ai besoin de le laisser à plein (e) que mon dos a la version complète de la base de données.

Maintenant, j'ai créé un plan de maintenance pour rétrécir la base de données, mais je le remarque que je ne fais pas non plus de rétrécissement, car je suppose que le modèle de récupération est plein. Comment puis-je obtenir un plan de maintenance qui permettra de réduire le fichier journal?

3
StevieB

Lorsque vous passez le mode de récupération pour réduire le fichier journal, vous invalendez les sauvegardes antérieures car elle enfreint la chaîne de journal. Ce dont vous avez besoin de le faire, passez-la en simple, rétrécissez-le à ce que vous voulez, puis la rétablissez et configurez les sauvegardes de journal régulières (je recommanderais toutes les heures) en plus des sauvegardes complètes. Lorsqu'une sauvegarde de journal est effectuée, le journal est tronqué (note, pas rétréci. Il restera la même taille sur le disque), puis la base de données sera libre de réutiliser l'espace au début du fichier au lieu de l'annexe à la fin. du fichier journal et provoquant la croissance du fichier.

4
Jason Cumberland

Si Yopu ne peut pas rétrécir le modèle de récupération complète, essayez de faire avec votre base de données les étapes suivantes:

  1. définissez le modèle de récupération de base de données à plein.
  2. Faites la sauvegarde complète de la base de données:

    Base de données de sauvegarde MyDatabase to Disk = 'C:\Backup\mydb.back'

  3. Faire la sauvegarde du journal:

    Base de données de sauvegarde MyDatabase to Disk = 'C:\Backup\mydb.back'

  4. Réduire la base de données:

    DBCC Shrinkdatabase (mydatabase, truncateonly)

Maintenant, votre journal doit être réduit. Sinon, vous pouvez essayer de regarder sur le terrain log_reuse_wait_desc déposé de sys.databases DMV. Cette valeur décrit pourquoi votre fichier journal n'est pas réduit. Par exemple, une fois que j'ai reçu une valeur de valeur "réplication" dans ce champ. Après avoir retiré la réplication en utilisant sp_removedbreplication Procédure stockée, j'ai successivement réduit le journal.

Maintenant, si votre dB peut être réduit en mode de récupération complète, vous devez effectuer la rétrécie de la sauvegarde sur une base régulière, vous devez procéder comme suit: 1. Cochez l'option AutoshRink de la base de données. 2. Configurez les sauvegardes complètes régulières (au moins une fois par jour). 3. Configurez les sauvegardes de journal régulières (au moins une fois par 2 heures).

2
Alex_L

de MSDN :

Utilisez la boîte de dialogue Tâche de la base de données Shrink pour créer une tâche qui tente de réduire la taille des bases de données sélectionnées. Utilisez les options ci-dessous pour déterminer la quantité d'espace inutilisé pour rester dans la base de données une fois la base de données réduite (plus le pourcentage est important, moins la base de données peut diminuer). La valeur est basée sur le pourcentage des données réelles dans la base de données. Par exemple, une base de données de 100 Mo contenant 60 Mo de données et 40 Mo d'espace libre, avec un pourcentage d'espace libre de 50%, entraînerait une 60 Mo de données et 30 Mo d'espace libre (car 50% de 60 Mo est 30 Mo). Seul l'espace excédent dans la base de données est éliminé. Les valeurs valides sont de 0 à 100.

Cette tâche exécute l'instruction DBCC ShrinkDatabase.

0
masoud ramezani