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 ne pas enregistrer dans le fichier log?


Sujet :

MS SQL Server

  1. #1
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut comment ne pas enregistrer dans le fichier log?

    j'ai un problème que javais cru voir dans ce forum une fois mais que je ne retrouve pas, bref, je voudrais savoir si c'est possible de ne pas enregistrer les requêtes faites dans le fichier log (ou plutôt le fichier LDF) car ma base de données grossit trop vite (surtout quand je fait des suppression) et je travaille avec MSDE (donc très limité). Ou alors , est-ce que je peux effacer le contenu du fichier LDF?

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    On ne peut officiellement pas éviter le journal de transaction, hormis
    1) avec un traceflag non documenté (et pour cause : ça cintrerait toute la partie intégrité)
    2) en utilisant le fast bcp
    3) en utilisant les commandes non loguées (truncate table, select into)

    Pour vider le journal, backup tran... with no_log, ou poser l'option sp_dboption VotreDB, 'trunc log on chkpt'
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    merci fadace
    Pour vider le journal, backup tran... with no_log, ou poser l'option sp_dboption VotreDB, 'trunc log on chkpt'
    mais backup tran... with no_log je vois pas qu'est ce que c'est en fait et étant donné que j'ai pas tout compris, je suis allé voir sur msdn.microsoft.com pour voir comment l'option sp_dboption fonctionnait mais je n'ai pas compris comment et quand l'utiliser :
    je dois l'appeler dans le code à chaque fois que je fais une action sur la base :
    je dois l'appeler à la création de la base juste :

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    j'ai essayé en mettant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec sp_dboption N'maBase', N'trunc. log', N'true'
    mais ça change rien du tout.
    En plus, il y a un truc qui me rend fou aussi : j'ai une procédure stockée que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /* DELETE ALL */
    CREATE PROCEDURE SP_DELETE_ALL
    AS 
    DELETE FROM T_CO_COORDINATE
    DELETE FROM T_AL_ATTRIBUTES_LIST
    DELETE FROM T_AT_ATTRIBUTE
    DELETE FROM T_AR_AREA
    DELETE FROM T_PE_PEN
    DELETE FROM T_BR_BRUSH
    DELETE FROM T_SY_SYMBOL
    DELETE FROM T_LA_LAYER
    GO
    (en fait elle me supprime toutes les valeurs présentes dans la base)et quand je l'exécute, elle me supprime que les valeurs de la table T_CO_COORDINATE.
    J'comprends rien là :
    me please

  5. #5
    ado
    ado est déconnecté
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Essayes ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE PROCEDURE SP_DELETE_ALL
    AS 
    Begin
    DELETE FROM T_CO_COORDINATE
    DELETE FROM T_AL_ATTRIBUTES_LIST
    DELETE FROM T_AT_ATTRIBUTE
    DELETE FROM T_AR_AREA
    DELETE FROM T_PE_PEN
    DELETE FROM T_BR_BRUSH
    DELETE FROM T_SY_SYMBOL
    DELETE FROM T_LA_LAYER
    End
    GO
    Informes moi si ca change quelque chose. 8)

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    ça ne change absolument rien mais à mon avis le problème vient d'autre part vu que je ne peux rien supprimer dela base, même si je le fais directement dans Query.
    Personne n'en sait plus pour le fichier log :

  7. #7
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    tu peux compresser le fichier log s'il grossit trop vite. J'y connais pas grand chose mais un mec de ma boite m'a refilé ces lignes quand j'ai des problèmes justement à cause du fichier log trop gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DBCC SHRINKFILE(Tabase_Log,2)
    BACKUP LOG TaBase WITH TRUNCATE_ONLY
    DBCC SHRINKFILE(Tabase_Log,2)
    tu peux aussi compacter ta base en faisant en plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHRINKDATABASE(Tabase,10)

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Oluha
    le shrinkmachinchose je l'avais vu mais je pensais que ça ne servait à rien étant donné que même si je le compresse, à long terme, le fichier log sera énorme qu'en même et le BACKUP LOG fadace m'avait dit de l'utiliser mais je ne savais pas comment.
    J'ai juste 2 truc à te demander :
    1. c'est ligne je les mets lorsque je crée ma base ou à chaque fois que je fais une requête :
    2. DBCC ça correspond à quoi : :
    Je teste tout ça et je te tiens au courant.

  9. #9
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    (pourquoi faut-il que ca plante juste quand j'envoi un message ?)

    moi j'execute ces lignes avant de grosses opérations qui risquent de faire exploser le log (genre suppression totale et insertion de 2 millions de lignes dans un table). Je fais aussi ca quand j'ai des problèmes de delais de connexion avec delphi.
    Sinon je te conseille d'aller dans l'aide d'sql server pour DBCC car je ne peux pas te dire grand chose là dessus.

  10. #10
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    donc tu es obligé de le faire à chaque fois que tu fais un super grosse requête, tu ne peux pas le faire une bonne fois pour toute à la création :
    (je te pose cette question un peu lourde mais j'ai vraiment trop de chose à modifier si c'est à faire à chaque fois donc c'est juste pour en être vraiment sur )

    PS : quand tu as fait le BACKUP, tu n'as pas besoin de la restorer la base :

  11. #11
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Vos DELETE qui ne marchent pas, ça ne viendrait pas par hasard d'un problème d'intégrité référencielle ? Si vous en avez entre les tables, l'ordre du delete doit suivre la chaîne des intégrités (style supprimer les lignes de factue avant les factures).
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  12. #12
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par fadace
    Vos DELETE qui ne marchent pas, ça ne viendrait pas par hasard d'un problème d'intégrité référencielle ? Si vous en avez entre les tables, l'ordre du delete doit suivre la chaîne des intégrités
    pas forcément justement : vu que je n'ai pas actionné l'option ON DELETE CASCADE (c'est un des modo de ce forum qui m'avait conseillé de ne pas le faire pour des raison de performances) si je supprime une clé d'une table sans supprimer d'abord tous les tuples utilisant cette clé, j'ai un message d'erreur (ce qui est normal).
    Mais je ne vois pas le rapport avec le fait d'empêcher le fichier log de grossir : :

  13. #13
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    ben les commandes que je t'ai donnée servent à compresser le fichier log, pas à l'empecher de grossir donc je pense que tu es obligé de le faire régulièrement. Sinon je n'execute que ca, je ne fais pas de restauration.

  14. #14
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    OK bè beaucoup alors je teste dès que je peux et je vous dis les premières impressions.

  15. #15
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    re
    Bon j'ai pu tester le truc et ça marche très très bien donc bcp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2009, 11h05
  2. [D7],[Access],[ADO],enregistrer une erreur dans un fichier log
    Par iam dans le forum Bases de données
    Réponses: 9
    Dernier message: 16/04/2007, 18h24
  3. Réponses: 2
    Dernier message: 09/04/2006, 16h05
  4. ne pas ecrire dans les fichier log
    Par HULK dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/04/2006, 08h22
  5. Réponses: 1
    Dernier message: 28/01/2006, 12h36

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