IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Comment vider un fichier journal ?


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2009
    Messages : 65
    Points : 57
    Points
    57
    Par défaut Comment vider un fichier journal ?
    Bonjour a tous;
    J'ai une base de donnée qui est dans un PC et je voulais faire une copoie d'elle pour la sauvegarder vers un autre PC et quand je fait une sauvegarde j'ai eu un fichier .BAK qui pese environ 100 MO, j'ai pris ce fichier et je l'es réstaurer dans un autre mico, quand j'ai lancer la réstauration un msg m'appraitre et me dise que je n'est pas assi de l'éspace pour réstaurer ma base outre j'ai 2 GO comme espace libre dans mon lécteur!! Le problème c'est que le fichier .bak il réstaure un autre fichier de journal et ce dérnier éffectivement il pese a lui seul 2GO , comment je peut vider ce fichier LOG Aider moi SVP
    bien a vous

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Quelle instruction utilisez-vous pour restaurer votre base de données ?

    Sinon c'est un peu barbare, mais vous pouvez tout simplement supprimer la base de données avant de la restaurer ...

    @++

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2009
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    Salut elsuket
    j'ai deux PC dont le premier il ya une base de donnée que je veut la copier dans le deuxieme PC que je vient d'installer SQL SERVER, alors j'ai sauvegarder la base dans le premier PC et pour cela j'ai cliquer avec le boutton droit dans le nom de la base puis "Sauvegarder" une boite de dialogue s'ouvre alors et j'ai laisser tous par défault et j'ai eu un fichier .bak je l'ai pris et je lé mis dans le répertoire Backup du deuxieme PC apres j'ai créer une base vide et j'ai cliquer avec le boutton droit puis "tache" puis sur réstaurer la base, mais l'éspace disque qu'elle veut la réstauration est tres volumineuse 2go c'est trop non ??!!!
    alors comment pourais-je vider le journale qui fait savegarde toutes les transactions
    merci a vous

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Quelle est la taille du journal des transactions sur la base d'origine ? Il y a-t-il beaucoup d'espace libre dans ce journal des transactions ? (auquel cas, penser à faire un shrink)

    Sinon, quelques pistes pour le transfert de la base :
    - faire un backup "Copy only"
    - pour la base de destination, mettre le Recovery Model à "Simple" le temps de la restauration afin d'éviter la création de logs volumineux
    - bien vérifier les options de backup/restauration

    Sinon:
    - copier le fichier .mdf sur le serveur de destination et faire un "Attach Database"
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2009
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    Bonjour pcaboche;
    la taille du journal des transactions sur la base d'origine est a 2GO
    c'est quoi un shrink ?
    Excuser moi mais j'ai pas compris comment faire un backup "Copy only"
    voulez-vous m'éclaircir comment je doit procéder pour que je puisse vider le journal de transaction ?

    Merci et bien a vous

  6. #6
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par ghilo Voir le message
    la taille du journal des transactions sur la base d'origine est a 2GO
    Avec un peu de chance, peut-être que seule une petite partie de ces 2 Go sont réellement utilisés.

    À un moment la taille du journal des transactions a atteint 2 Go. Par la suite (ex: après un backup ou un checkpoint) de l'espace a peut-être été libéré dans le journal des transactions mais cet espace n'est pas restitué au système d'exploitation (SQL Server le garde pour réécrire dedans), d'où la nécessité de faire un "shrink".

    Citation Envoyé par ghilo Voir le message
    c'est quoi un shrink ?
    Ca permet de libérer l'espace non utilisé dans un fichier (data ou log).

    Pour ce faire:
    - Sur la base, faire un click droit
    - Sélectionner Tasks > Shrink > Files
    - Dans "File Type", sélectionner "Log"

    Note: dans "Available free space", on voit l'espace non utilisé (mais réservé par SQL Server)

    - Sélectionner "Reorganize pages before releasing unused space"
    - Mettre "Shrink file to" à la valeur minimum
    - Appuyer sur "OK"

    Citation Envoyé par ghilo Voir le message
    Excuser moi mais j'ai pas compris comment faire un backup "Copy only"
    Dans les options de backup, il faut sélectionner "Copy only Backup".

    Un backup "Copy only" ne modifie pas la séquence de backup (c'est très important de comprendre ce que cela implique au niveau de la restoration si on est sur une base en production).

    Plus de détails ici: Copy-Only Backups.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  7. #7
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    de l'espace a peut-être été libéré dans le journal des transactions mais cet espace n'est pas restitué au système d'exploitation (SQL Server le garde pour réécrire dedans), d'où la nécessité de faire un "shrink".
    La nécessité dans ce cas-là oui : il faut réserver les rétrécissements de bases de données aux manœuvres désespérées par manque d'espace disque.
    En effet, l'allocation d'espace supplémentaire pour tout fichier de base de données est bien plus lent qu'une écriture en RAM.

    Le journal de transactions est logiquement subdivisé en journaux virtuels qui sont utilisés tour à tour par le moteur de base de données, donc l'espace alloué au fichier du journal des transactions est constamment réutilisé.

    En faisant donc rétrécir une base de données, vous demandez au moteur de base de données de restituer l'espace disque qu'il s'est échiné à se réserver, et qu'il reprendra tôt ou tard, surtout s'il s'agit du fichier du journal des transactions. A chaque fois qu'il devra reprendre de l'espace disque, le traitement en cours qui a provoqué l'agrandissement du fichier sera en attente, et bloquera probablement aussi d'autres tâches
    Sachant que les écritures disque sont au moins mille fois moins rapides qu'une écriture en RAM, je vous laisse imaginer les dégâts que cela peut produire sur une base de production.

    Il est donc primordial de bien tailler les fichiers de base de données à la création de cette dernière, et après avoir choisi le mode de restauration qui convient au métier, de choisir une stratégie de sauvegarde qui permettra de conserver une taille constante du fichier du journal des transactions tout au long de la vie de la base de données.

    @++

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Bon pour te sortir de cette situation,
    1-Détache ta base de donnée
    2-Fait une copie de ta base de données sur le serveur de destination
    3-Supprime le fichier journal
    4-Rattache la nouvelle base de données


    Retiends que le problème de grossissement du journal des transactions est lié à une mauvaise politique de sauvegarde !
    Il faut y penser car c'est elle qui supprime la partie inactive du journal.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. [WD12] Comment vider un fichier AS400
    Par mostafajob dans le forum WinDev
    Réponses: 12
    Dernier message: 13/12/2010, 09h47
  2. Comment vider des fichiers log
    Par nicolas2603 dans le forum Apache
    Réponses: 19
    Dernier message: 06/07/2010, 09h24
  3. Comment vider un fichier avec option r+
    Par shazad dans le forum Débuter
    Réponses: 15
    Dernier message: 10/12/2008, 18h32
  4. Réponses: 1
    Dernier message: 31/08/2008, 18h44
  5. comment déplacer un fichier journal?
    Par kalari dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/01/2006, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo