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 :

Automatisation création BDD


Sujet :

Administration SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Automatisation création BDD
    Bonjour,
    J'ai consulter le forum ainsi que la FAQ et je n'ai rien trouver concernant mon cas , que je vais essayer de vous expliquer le mieux possible.

    Suite au développement d'une application, je souhaite automatiser le déploiement de la base de donnée sur Server 2008 ( Les serveurs étant dans deux environnement différent) pour que l'administrateur sur place est un minimum de tache à faire .

    J'ai commencer à regarder du côté des fichiers mdf & ldf , mais je ne sais pas dans quelle direction m'orienter.

    Merci d'avance pour votre aide.

  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,

    je souhaite automatiser le déploiement de la base de donnée
    Je suppose donc que vous avez une base de données existante.

    Vous avez dans ce cas deux options :

    - restaurer une sauvegarde de la base de données (plus long mais plus sûr)
    - détacher la base de données de son instance de développement, copier les fichiers de la base de données, puis rattacher la base de données chez le client (très rapide mais peu sécurisé).

    Dans tous les cas vous pouvez faire cela à l'aide de l'utilitaire SQLCMD :
    - dans le premier cas à l'aide de l'instruction RESTORE
    - dans le second cas à l'aide de la procédure stockée sp_attach_db

    Pour la restauration de la sauvegarde :

    sur l'instance SQL Server qui héberge actuellement votre base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -- Sauvegarde
    BACKUP DATABASE maBaseDeDonnees
    TO DISK = 'C:\mabaseDeDonnesPourClient.bak'
    WITH COMPRESSION, CHECKSUM, COPY_ONLY, STATS = 5
    Et sur la machine du client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RESTORE DATABASE maBaseDeDonnees
    FROM DISK = 'F:\mabaseDeDonnesPourClient.bak'
    WITH MOVE 'nomLogiqueFicherDonnees' TO 'C:\monFichierDonnees.MDF'
    	, MOVE 'nomLogiqueFicherJournalDesTransactions' TO 'C:\monFichierJournalDesTransactions.LDF'
    	, STATS = 5
    Les noms de fichiers logiques s'obtiennent :

    - quand la base de données est en ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT	name AS nomFichierLogique
    	, type_desc
    FROM	maBaseDeDonnees.sys.database_files
    - à partir du fichier de sauvegarde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RESTORE FILELISTONLY
    FROM DISK =  'C:\mabaseDeDonnesPourClient.bak'
    Vous pouvez appeler l'utilitaire SQLCMD à partir d'un batch DOS en passant en paramètre le nom du fichier de script SQL qui contiendrait l'instruction précédente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLCMD -S nomServeur[\nomInstance] -U utilisateur -P motDePasse -i monFichierRestaurationBD.sql
    Vous pouvez faire de même avec sp_attach_db

    @++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour ta réponse
    J'ai opté pour la première solution mais j'ai un problème avec le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WITH MOVE 'nomLogiqueFicherDonnees' TO 'C:\monFichierDonnees.MDF'
    	, MOVE 'nomLogiqueFicherJournalDesTransactions' TO 'C:\monFichierJournalDesTransactions.LDF'
    	, STATS = 5
    Il me dit que le fichier logique ne fait pas partie de la base de données et pourtant la base de donnée est créer.

    A quoi sert ce fichier logique de données ?

    Je continue mes tests et te tient au courant

  4. #4
    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
    A quoi sert ce fichier logique de données ?
    C'est en fait ce que je vous montre dans l'instruction RESTORE : on peut restaurer une base de données, avec le même nom ou pas, et avec des emplacements physiques des fichiers de la base de données différents ou pas.
    SQL Server ne tient compte que du nom logique des fichiers.

    Avez-vous exécuté l'une des deux instructions qui suivent "Les noms de fichiers logiques s'obtiennent :" dans mon premier post ?
    Quel est leur résultat ?

    @++

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup, je viens de reprendre et tout me semble plus claire !!

    On sauvegarde la base, on obtient le noms des fichiers logiques & on les récupère.

    On spécifie dans le script les noms & chemin des fichiers logique .

    La base se déploie, à l'origine.

    Merci beaucoup pour ton aide !

  6. #6
    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
    Avec plaisir !

    @++

Discussions similaires

  1. Problème Création BDD Oracle 9i
    Par artatnas dans le forum Installation
    Réponses: 1
    Dernier message: 27/07/2007, 13h40
  2. Débutant : création BDD
    Par herbert8 dans le forum Débuter
    Réponses: 1
    Dernier message: 03/01/2007, 09h37
  3. automatisation création de formulaires
    Par milielf dans le forum Access
    Réponses: 2
    Dernier message: 16/05/2006, 08h49
  4. [Oracle] Création BDD et newsletter
    Par fraisecassis dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 11/05/2006, 09h20
  5. Automatiser création Flash, c'est possible ? Java ou C++ ?
    Par touff5 dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 16/01/2005, 11h01

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