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

Administration SQL Server Discussion :

Script d'import backup ".bak"


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Par défaut Script d'import backup ".bak"
    Bonjour tout le monde,

    Alors voila le début d'un gros soucis pour moi et je risque de vous "embêter" pas mal ces jours ci...

    MISE EN CONDITION
    Au sein de mon entreprise nous travaillons sur deux environnements: PRé-PRODUCTION et PRODUCTION (je simplifie...) et donc avec deux bases de données pour chacun des environnements (sur 2 serveurs différents).
    Nous faisons des backup journaliers de la base de PRODUCTION dans un fichier .bak pour ensuite copier ce bakup sur le serveur SQL de PRE PRODUCTION. Aprés avoir importer ce fichier sur le serveur de PRE PRODUCTION nous faisons un restore de la base a partir de ce fichier .bak via SQL Server Management Studio.

    LE PROBLEME/MES QUESTIONS
    On me demande si on peut automatiser cela. C'est a dire me connecter sur le serveur de PRE PRODUCTION et sur celui-ci creer un script pour automatiser alors:
    - L'import du fichier .bak depuis le serveur de PRODUCTION (importer le fichier le plus récent...)
    - Arrêter le service SQL Server (commande NET STOP je crois ^^)
    - Faire un restore de la base avec notre fichier .bak


    Bref moi ca m'a l'air vraiment énorme comme boulot sachant que je ne sais meme pas comment creer un script sur SQL Server.

    Un script est-ce un fichier .bat ? Dois-je utiliser PowerShell? Si oui ba euuhh comment? lol

    Toute piste de votre part m'aiderai énormement!!

    Merci d'avance à vous tous!

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Pour une mise en jambe, tu peux déjà commencer par lire les 2 articles ci-dessous :
    http://fadace.developpez.com/mssql/sauve/
    http://blog.developpez.com/sqlpro/p7...ec-sql-server/

    A+

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Une fois que tu auras lu ces articles...

    La tâche de transfert peut être simplifiée en sauvegardant dans un répertoire partagé sur la prod, accessible depuis la pré prod (il faut que le compte qui démarre le service SQL Server sur la préprod soit déclaré sur la prod avec le même mot de passe et avec le droit de lire le répertoire partagé). Ce qui donne:

    1) Backup de la base de prod dans le répertoire local, partagé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    backup database blablaprod to disk='G:\monpartage\blabla.bak' ...
    2) Restauration sur la préprod depuis le répertoire partagé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    restore database blablapreprod from disk='\\machineprod\monpartage\blabla.bak' with move ..., replace ...
    Tu n'as pas besoin d'arrêter aucun service, juste de t'assurer que personne n'est connecté au moment de la restauration sur la préprod.

    Tu peux automatiser tout ça en créant un package SSIS et Business Intelligence Studio. Il doit y avoir des tutorials un peu partout à ce sujet.

    David B.

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Par défaut
    Tout d'abord merci pour vos réponse et vos articles.

    Pensez-vous qu'une débutante comme moi peut y arriver?

    Et seconde question pour David:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    backup DATABASE blablaprod TO disk='G:\monpartage\blabla.bak' ...
     
    restore DATABASE blablapreprod FROM disk='\\machineprod\monpartage\blabla.bak' WIT
    Tout ca je dois le faire dans un job planifié? ou autre part..?

    Thx =)

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Le mieux est de le faire dans un package SSIS avec une tâche qui fait le backup sur une instance et une tâche qui fait la restauration sur l'autre. C'est difficile de le faire dans un job, car les actions ont lieu sur des instances différentes. (un exemple ici http://www.mssqltips.com/tutorial.asp?tutorial=200)

    A moyen terme, peut être qu'une petite formation ne serait pas du luxe. ;-]

    David B.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Par défaut
    Alors pour me faciliter la tâche, est-ce que je peux procéder comme ca:

    Le backup de PROD étant déjà fait grâce au plan de maintenance de nuit, le mettre dans le dossier partagé par lequel accède la PRé-PROD et faire ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    RESTORE DATABASE [MA_BASE]
    FROM DISK = '\\dossier_partagé\Ma_Base_Prod.bak' 
    WITH 
    MOVE 'PRE_PROD_MDF' TO 'G:\DATA\Microsoft SQL Server\MSSQL.3\MSSQL\Data\PRE_PROD.mdf',
    MOVE 'PRE_PROD_LDF' TO'G:\LOGS\Microsoft SQL Server\MSSQL.3\MSSQL\Logs\PRE_PROD.ldf'
    EDIT: Je ne suis même pas sur que la syntaxe en T-SQL de mon RESTORE est ok...

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

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