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 :

que faut-il pour importer une base de données


Sujet :

MS SQL Server

  1. #1
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut que faut-il pour importer une base de données
    Bonjour,

    un client me demande de faire des modifications sur sa BD depuis mon entreprise. L'idée c'est : je récupère sa base de données AVEC les données.
    Je l'importe dans MON SGBD.
    je fais le modifications depuis MON SGBD puis je vais chez lui effectuer les modifications. Bien sur, ses données seront amenées à changer entre aujourd'hui et l'install des modifications de sorte qu'au retour, je devrai uniquement effectuer les scripts mais la n'est pas le probleme (pas encore).

    Pour l'instant, mon but, c'est d'intégrer sa base SQL Server 2000 dans MON SGBD SQL Server 2005. Pour cela le client m'a fournit un fichier SaBase.bak , un backup donc.

    Le soucis c'est que cela ne semble pas suffir car a partir du backup, SQL Server 2005 me demande tout logiquement quelle base je veux remettre en état.
    J'ai tenté d'en créé une sans table, juste avec son nom mais cela ne fonctionne pas. Au lieu de me l'ecraser, il me dit que la base du .bak ne correspond pas à la base cible.

    Si je demande au client de générer un script de création, j'obtiendrai une base vierge.

    Ma question est donc : que dois-je lui demander de me fournir pour pouvoir intégrer une copie de sa base SQL Server 2000 sur mon SGBD SQL Server 2005 sachant que cette copie doit comporter les données ?


    Merci beaucoup de votre aide.
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Astuce :

    Récupérer le fichier mdf de sa base de données SQL Server 2000.

    Puis attacher ce fichier lorsque vous créer la base sous SQL Server 2005.

    Vous pouvez tester cette méthode.

    Inconvénient : pour récupérer le fichier mdf, il faut le détacher du serveur SQL. Donc interrompre le service le temps de copier le fichier.
    Bon courage pour la suite.

  3. #3
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut
    Merci de cette réponse

    Donc pour faire cela, si je cmprends bien :

    1) on interrompt le service
    2) on copie le fichier mdf
    3) le client m'envoit cette copie que je réintègre
    4) il réintégre aussi son fichier ?

    N'existe t'il pas un moyen de faire sans arrêter le service ?
    Par exemple, mon backup qui n'a pas marché, si au préalable je demandais au client de me fournir les scripts de création de la base et que je me créais une base du meme nom avec les memes tables, ne pourrais-je pas utiliser ce backup ?
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut outils
    si la base de ton client n'est pas une base de production avec 1 million de ligne, utilise cet outil :
    http://tipssqlserveur2005.blogspot.c...-database.html

    tu peux essayer cette méthode pour écraser une base vierge avec ton back up.

    http://tipssqlserveur2005.blogspot.c...est-bonne.html

  5. #5
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut
    Tout d'abord, merci de ta réponse.

    Helas, je n'arrive pas à faire fonctionner ta technique.
    En fait, je n'en comprends pas réellement le concept, il me manque des billes sur ce que fait réellement ce script.
    Ce que j'ai au départ :
    - une base vierge appelée DB_PRODB
    - un backup dans un fichier appelé DB_PROD_db_200709172200.BAK
    - pas de base DB_PROD (puisqu'elle est sur le serveur du client).

    Suivant ton exemple, j'a essayé ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    USE master
    GO
    SELECT 'kill',spid
    FROM sysprocesses
    WHERE dbid=db_id('DB_PRODB')
    GO
    /* Exécution de l'output de la commande ci-dessus afin de libérer la base */
    GO
    RESTORE DATABASE DB_PRODB FROM DISK=N'C:\Documents and Settings\Administrateur\Temp\DP_PROD_db_200709172200.BAK' WITH
    MOVE N'DB_PROD' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\DB_PRODB.mdf',
    MOVE N'DB_PROD_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\DB_PRODB.ldf', REPLACE
    ALTER DATABASE DB_PRODB MODIFY FILE (NAME=N'DB_PROD', NEWNAME=N'DB_PRODB')
    ALTER DATABASE DB_PRODB MODIFY FILE (NAME=N'DB_PROD_log', NEWNAME=N'DB_PRODB_log')
    GO
    Ce qui me produit les jolies erreurs suivantes

    Msg*3234, Niveau*16, État*2, Ligne*1
    Le fichier logique 'DB_PROD' ne fait pas partie de la base de données 'DB_PRODB'. Utilisez RESTORE FILELISTONLY pour lister les noms de fichiers logiques.
    Msg*3013, Niveau*16, État*1, Ligne*1
    RESTORE DATABASE s'est terminé anormalement.
    Msg*5041, Niveau*16, État*1, Ligne*4
    Échec de MODIFY FILE. Le fichier 'DB_PROD' n'existe pas.
    Msg*5041, Niveau*16, État*1, Ligne*5
    Échec de MODIFY FILE. Le fichier 'DB_PROD_log' n'existe pas.
    j'en comprends qu'il y a des problèmes du genre, il faut que la base existe déjà ou autres subtilité du genre ?

    Merci de ton aide très précieuse !
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut restore d'une base sous un nom different.
    cet exemple est ancien pour moi, j'avais utilisé la documentation suivante comme exemple : http://fadace.developpez.com/mssql/sauve/

    en fait, je pense qu'il te manque le vrai nom du fichier mdf utilise chez ton client, ce nom est stocke dans la sauvegarde...

    lis l'article de fadace, cela sera surement plus pedagogique... restorer physiquement sous un autre nom...

  7. #7
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut
    Alors en regardant cela, je viens de modifier un peu le script pour en tirer quelquechose qui a tourné .
    Mon résultat désormais, dans l'explorateur d'objets, je vois une nouvelle base appelée DB_PROD ainsi que je le souhaitais.
    EN revanche, juste a côté du nom de cette base, se trouve marqué "Restauration".
    Sur le logo de la base de donnée ( le cylindre orange), il y a une flèche verte montante. Est-ce à dire que le restauration est "en cours" et que cela explique pourquoi je ne vois pas (encore) les tables constituant la BD en dessous de son nom ?


    -------------------------
    Edit 14H57 : c'était bien ca, après un petit bout de temps, c'est effectivement restauré. Donc génial merci encore ylarvor, beaucoup beaucoup !
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

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

Discussions similaires

  1. Que faut il pour faire une appli Windows Mobile 6 ?
    Par fraginfo dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 31/05/2012, 14h04
  2. Réponses: 9
    Dernier message: 01/12/2010, 05h24
  3. Réponses: 2
    Dernier message: 09/04/2010, 12h31
  4. aide pour importer une base de données sous MySQL
    Par karimeri dans le forum Débuter
    Réponses: 4
    Dernier message: 20/01/2010, 18h02

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