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 :

Impossible de vider le fichier de log [2008R2]


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut Impossible de vider le fichier de log
    Bonjour,

    Suite à mes différents problème de cohérences des données j'ai décidé de lancer un rebuild de tout les indexes de la base en utilisant le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DECLARE @Code Varchar(max)
     
    Set @Code = '
    				Print ''Début ? ''+Convert(varchar,getdate(),121)
    				ALTER INDEX ALL ON ? REBUILD PARTITION = ALL
    				DBCC SHRINKFILE (N''DB_tst_log'' , 0, TRUNCATEONLY)
    				Print ''Fin ? ''+Convert(varchar,getdate(),121)
    			' 
     
    EXECUTE sp_MSforeachtable @Code;
    J'ai un schrink a chaque itération car sinon le log se remplit et il ne va pas jusqu'au bout.

    Sur un clone de la prod en Sql2012 par de problème ça tourne pendant ~40 minutes et tout vas bien.
    Mais ma base de prod est en 2008 R2. Alors j'ai essayer de le lancer sur un clone en SQL2008R2.

    La ça a tourné une fois pendant plus de 2 heures mais avec un résultat correcte.

    Mais lors d'un de mes test au bout de 3h le fichier de log était tellement plein que j'ai été déconnecté, et ensuite plus moyen de vider le log car il était déjà lui même trop plein.
    J'ai utiliser différent script que je vous met a disposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    USE [DB]
    CHECKPOINT 
    ALTER DATABASE [DB] SET RECOVERY SIMPLE
    ALTER DATABASE [DB] SET OFFLINE WITH ROLLBACK IMMEDIATE
    ALTER DATABASE [DB] SET ONLINE
    USE [DB]
    DBCC SHRINKFILE (N'DB_tst_log' , 0, TRUNCATEONLY)
    ainsi que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ALTER DATABASE DB SET EMERGENCY
    ALTER database DB SET SINGLE_USER
    DBCC CHECKDB ('DB','REPAIR')
    ALTER database DB SET Multi_USER
    ALTER database DB SET ONLINE
    DBCC SHRINKFILE (N'DB_tst_log' , 0)
    Mais rien ne fonctionne comme il faut, mon fichier de log à été réduit a 35Go mais pas plus bas. J'ai restarter le service sql à plusieurs reprises mais sans succes.

    Un de vous a-t-il une idée ?

    Merci a+

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Quel mode de récupération utilises-tu pour ta base en question ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Quel mode de récupération utilises-tu pour ta base en question ?
    Re,

    J'étais en FULL lors du traitement, mais la tout de suite je suis en SIMPLE

    A+

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Que te donne la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select 
    	name,
    	log_reuse_wait_desc
    from sys.databases
    where name = N'bdd name';
    GO
    ++

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    ça dit REPLICATION ?!?!?

    J'ai aucune réplication active sur cet base.

    Il y a bien la config de celle de la prod, mais elle n'est pas "Running" et elle est même pas planifiée..

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Si ta base n'est plus concernée désactive la réplication pour cette dernière. Sans cela ton journal ne sera jamais vidé.

    ++

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

Discussions similaires

  1. Comment vider des fichiers log
    Par nicolas2603 dans le forum Apache
    Réponses: 19
    Dernier message: 06/07/2010, 09h24
  2. Réponses: 2
    Dernier message: 10/02/2010, 14h40
  3. Impossible d'écrire dans le fichier de log
    Par JCitrouille dans le forum Logging
    Réponses: 2
    Dernier message: 07/08/2008, 12h52
  4. Script pour vider deux fichier logs
    Par Le sicilien dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 09/05/2008, 07h58
  5. Vider les fichiers .log automatiquement
    Par crystalgold dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 04/01/2008, 13h15

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