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 :

[T-SQL] Backup via un job sature le disque dur


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut [T-SQL] Backup via un job sature le disque dur
    Bonjour à toutes et tous,

    Voilà, j'ai un problème de Backup SQL, je vous l'expose en détails en espérant que vous pourrez m'aider.

    J'ai créez plusieurs Backup Devices, je vous montre le script pour un, mais le problèmes est le même pour tous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Backup Device 1 : Nom = [Local] (pour la DB), File : D:\SQLBackup\TlbProduitProcess FULL.bak
    Backup Device 2 : Nom = [Local LOG] (pour le fichier de Log), File : D:\SQLBackup\TlbProduitProcess LOG.bak
    etc...
    Via un job, je lance ce script automatiquement toutes les 8 heures (fin de pause)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BACKUP DATABASE [TLBProduitProcess] TO  [Local] 
    WITH  RETAINDAYS = 30, NOFORMAT, NOINIT,  
    NAME = N'TLBProduitProcess-Full Database Backup Local', 
    SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
    GO
    BACKUP LOG [TLBProduitProcess] TO  [Local LOG] 
    GO
    DBCC SHRINKFILE ([TLBProduitProcess] , 100)
    GO
    Normalement avec l'option 'with retaindays = 30' je ne devrais garder que les 30 derniers jours et effacer les plus anciens au fur et à mesure.
    Puis avec la commande 'shrinkfile' logiquement le fichier Log devrais être tronqué.
    Le problème, c'est que a chaque backup, les Backup Device (Local et Local Log) augmentent de la taille de la DB, 35 Gb, 70Gb, 105 Gb, etc... , et finissent par saturé le disque dur.
    Et lorsque le disque est plein, l'erreur empêche le script suivant de s'exécuter. Le suivant étant le même mais sur un autre device, un disque réseau.
    Pour info sur le disque réseau, le fichier TlbProduitProcess FULL.bak fait 172 Gb alors que la DB en elle même ne fait que 35 Gb.
    Où est mon erreur ?

    Ce que je voudrais, c'est par un moyen ou un autre, backuper ma DB (avec ou sans log suivant votre avis) et garder les 30 derniers jours tout en maintenant une taille acceptable sur le disque dur, de préférence même fixe.
    Le backup doit se faire toutes les 8 heures.
    Que préconisez vous ? Backup full, incrémentiel, avec les log, etc...
    Quel est la meilleur stratégie ?

    N'étant pas un super pro de transact SQL, si vous aviez le script cela m'aidera grandement.

    Voilà, j'espère avoir été assez clair dans mes explications, si tel n'était pas le cas, vous pouvez me contacter pour d'autres informations complémentaires.
    Je vous mets en pièce jointe le script complet des jobs.

    Merci d'avance pour votre aide.

    Bonne journée,
    GargouilleBL
    Fichiers attachés Fichiers attachés

  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
    Bonjour,

    L'option retaindays ne sert pas à la rétention des médias de sauvegarde sur le support (disque, cassettes ....) mais évite simplement que le média soit réécrit pendant l'intervalle spécifié.

    Il faut implémenter dans ton script une routine externe à la commande BACKUP qui va venir faire ce travail (en utilisant par exemple xp_delete_file)

    ++

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut
    Bonjour,

    Merci pour la réponse, je vais donc rechercher comment utiliser la commande xp_delete_file.

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

Discussions similaires

  1. Exécution de Job SQL Agent via réseau
    Par Slevrot dans le forum Administration
    Réponses: 2
    Dernier message: 10/09/2012, 13h18
  2. Réponses: 6
    Dernier message: 05/08/2011, 18h10
  3. Exécution d'un fichier *.sql via un job
    Par Philoulheinz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/07/2007, 22h47
  4. Accéder à une bdd SQL server via un pc distant
    Par shako95 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/12/2005, 22h38
  5. [DTS] Comment auditer les transformations sql faites via DTS
    Par danmick dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/08/2005, 07h40

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