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 :

Tranfert de DB entre serveur


Sujet :

MS SQL Server

  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Tranfert de DB entre serveur
    Bonjour

    Existe-il une methode simple pour transferer une petite base d'un serveur vers un autre

    La methode Back-Up restore me semble peu conviviale, compliquée et genere systematiquement des problemes de droits entre serveurs

    La methode que j'ai trouvée est un peu absurde mais a l'avantage d'etre relativement simple

    - Je genere une base acces vide
    - J'exporte la base SQL Server vers la base access
    - Je recopie la base acces sur le server choisi
    - Je cree une DB Vide
    - Je reimporte la base acces

    C'est absurde vous allez dire et j'en convient mais le Back-Up restore se Sql Server pour cet usage me semble inadéquat !

    Donc je reste ouvert a toutes suggestions meilleure

  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 : 47
    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,

    Je ne vois rien de compliquer la dedans. L'avantage de cela en plus est de pouvoir scripter le transfert et rendre le processus quasi automatique à savoir :

    --> backup database
    --> récupération des objets de servers qui concernent la base de données (notamment les login)
    --> transfert database
    --> restaure database
    --> remappage des utilisateurs sql

    ++

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci MIkeDavem

    Je vois au moins deux difficultées

    --> récupération des objets de servers qui concernent la base de données (notamment les login)
    --> remappage des utilisateurs sql


    La base initiale se trouve sur ma machine de developpement avec une authentification Windows

    Je dois la recopier sur une machine de production avec ayant un Sql Server Authentication et cette base doit simplement heriter des authentication de ce server

    Rien que ca je pense que ca va poser des tas de problèmes

    J'avoue aussi m'y perdre un peu dans les multiples option de Back-Up de SQL Server (entre autre la notion de Copy-Only Backups)

    La gestion des fichier de Back-Up me laisse aussi fort hésitant : Sql Server semble "cumuler" les BackUp dans le meme fichier

    Bref le Back-Up / Restore de Sql Server me semble tres indigeste

  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 : 47
    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
    Je vois au moins deux difficultées

    --> récupération des objets de servers qui concernent la base de données (notamment les login)
    --> remappage des utilisateurs sql
    Pourtant il existe des scripts pour cela ... rien de bien méchant.

    J'avoue aussi m'y perdre un peu dans les multiples option de Back-Up de SQL Server (entre autre la notion de Copy-Only Backups)

    La gestion des fichier de Back-Up me laisse aussi fort hésitant : Sql Server semble "cumuler" les BackUp dans le meme fichier
    Copy_only permet de faire une sauvegarde de base sans interférer aux sauvegardes du journal des transactions.

    Si SQL Server cumule dans un même fichier c'est que vous avez activé l'option APPEND dans l'interface graphique et WITH NOINIT si vous utilisez les scripts TSQL.

    La base initiale se trouve sur ma machine de developpement avec une authentification Windows

    Je dois la recopier sur une machine de production avec ayant un Sql Server Authentication et cette base doit simplement heriter des authentication de ce server

    Rien que ca je pense que ca va poser des tas de problèmes
    C'est à dire ? Le mode de connexion ne changera rien à la procédure. Si vous utilisateurs différents sur les 2 serveurs rien ne vous empêcher de scripter la création des users + mappage des logins.
    Parlez vous d'une mise en production d'une base ou simplement une copie pour le développement ?

    ++

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonsoir MikeDavem

    Parlez vous d'une mise en production d'une base ou simplement une copie pour le développement ?
    Mon but est de replacer une base de test par une base de dev autant de fois que né"cessaire durant la phase Test

    Mais je pense que l'option Back-Up restore entre deux Server MS Sql different n'est pas autorisée

    TITLE: Microsoft SQL Server Management Studio
    ------------------------------

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------
    ADDITIONAL INFORMATION:

    The media family on device 'C:\Projets\StockLafarge\Data\StockLafarge.bak' is incorrectly formed. SQL Server cannot process this media family.
    RESTORE HEADERONLY is terminating abnormally. (Microsoft SQL Server, Error: 3241)

    For help, click: http://go.microsoft.com/fwlink?ProdN...1&LinkId=20476
    Le Back-Up restore de Sql Sever est vraiment un outil extremement mal concu !

    Je suis donc contraint et forcé de generer un Script pour chaque table
    Je reviens donc a ma question de base :

    Existe-t-il des outils pour faire cela plus simplement ?
    Acces me pose aussi des problemes

    Actuellement le plus simple (et testé) semble de tout exporter vers excell et de reimporter l'excell

    C'est CA la compatibilité Microsoft

  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 : 47
    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
    Vous parlez de SQL Server et de Access ?
    Essayez vous de nous dire que vous essayez de restaurer une base Access sur SQL Server et vis vers ca ?

    ++

  7. #7
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci de ta patience MikeDavem (je pense qu'il en faut avec certains aspect de SQL Server)

    J'essaye simplement de TRANSFERER une Base (Database) Sql Server
    Depuis
    un Server A (MS Sql Server 2008) sur une machine A
    vers
    un Server B (MS SQL Server 2008) sur une Machine B

    On peut considerer que A remplace completement B

    Cela semble une mission impossible avec MS SQL Server

    J'ai essayé avec Back / Up restore : Complexe et en definitive impossible (message d'erreur dan un précédent post)

    J'ai essayé en passant avec l'export / import tools via une base Acces (ca marche a moitié : problemes sur cetaines tables )

    J'ai essayé en passant avec l'export / import tools via un Tableau Excell (ca marche )

    J'ai donc une solution (Absurde) en passant par une table Excell.
    Cette solution me depanne momentanément mais est tout a fait inexploitable sur des gros volumes

  8. #8
    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 : 44
    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
    Par défaut
    Bonjour,

    Pour ma part c'est une opération que je fais au moins une fois pas semaine sans jamais rencontrer de problèmes ...
    J'ai même eu un jour, où l'on a copié toute les bases de données de test sur une autre serveur (tout neuf !), en backup restore.
    J'ai tout scripté par génération de code SQL.
    Tout s'est fait dans la nuit sans un plantage

    Mais je ne le fais jamais avec l'interface graphique !

    Pour prendre une sauvegarde de votre base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BACKUP DATABASE maBD
    TO DISK = 'C:\mesBackups\maBD.bak'
    WITH COPY_ONLY, CHECKSUM, STATS = 1, COMPRESSION
    Supprimez l'option COMPRESSION si vous n'êtes pas sous SQL Server 2008.
    Déplacez le fichier de sauvegarde sur le nouveau serveur.

    Vous noterez que vous pouvez réaliser la sauvegarde de votre base de données directement sur le serveur cible en passant le chemin réseau du partage dans lequel vous souhaitez réaliser la sauvegarde sur le serveur cible.
    Cela vous évite donc de déplacer le fichier de sauvegarde.

    Pour la restauration sur l'autre serveur, il vous faut connaître les noms de fichiers logiques de votre base de données, car c'est en effet le seul moyen pour SQL Server de recréer les fichiers sur le serveur cible.

    Pour ce faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RESTORE FILELISTONLY
    FROM DISK = 'C:\restauration\maBD.bak'
    La colonne LogicalName contient le nom du fichier logique de la base de données (au moins deux donc), et la colonne PhysicalName vous indique où étaient stockés les fichiers de la base de données au moment de la sauvegarde.

    Pour restaurer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RESTORE DATABASE maBD
    FROM DISK = 'C:\restauration\maBD.bak'
    WITH MOVE ('nomLogiqueFichierDonnees' TO 'D:\maBD\maBD.MDF')
    	, MOVE('nomLogiqueFichierJournalDesTransactions' TO 'E:\maBD\maBD.LDF', STATS = 1
    Et a bombé.

    Vous pouvez également procéder par détachement de base de données : vous détachez la base de données de l'instance source, copiez les fichiers sur le serveur cible, et rattachez la base de données sur les deux serveurs.
    Cela vous évite d'attendre la fin de la sauvegarde.

    @++

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Elsuket

    Je vais essayé ca aussi
    Pour detach / attach : tu veux dir que si je detache la db du serveur source je peux directement reprendre les fichiers de cette DB ?

    Je vais investiguer cela

  10. #10
    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 : 44
    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
    Par défaut
    Pour detach / attach : tu veux dir que si je detache la db du serveur source je peux directement reprendre les fichiers de cette DB ?
    C'est exactement cela.

    Vous pouvez le faire soit pas l'interface graphique de SQL Server Management Studio, soit par code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -- 1. Détachement sur le serveur source
    EXEC sp_detach_db 'maBD'
    GO
     
    -- 2.Déplacer / Copier les fichiers sur le serveur cible
    -- 3. Attachement sur le serveur cible
    CREATE DATABASE maBD
          ON (FILENAME = 'D:\maBD\maBD.mdf') 
          , (FILENAME = 'E:\maBD\maBD.ldf') 
    FOR ATTACH
    GO
    @++

  11. #11
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Mercvi Elsuket

    Ton aide m'a été bien utile !

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 13
    Par défaut 2008 vs 2008R2
    Bonjour !
    Je rencontre un petit souci rejoignant un peu celui exposé ci-dessus...
    Il faudrait que je puisse restaurer une base 2008R2 sur un 2008 et le système me répond que cela est impossible, vu la différence de version.
    Y aurait-il une solution pour cela ?
    MErci !!!

  13. #13
    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 : 47
    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
    Seule solution ici est de transférer vos données depuis votre base 2008R2 vers 2008 en utilisant les outils qui sont à votre disposition (BCP, Import, export des données depuis SSMS, package SSIS, linked servers etc ....).

    ++

  14. #14
    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 : 44
    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
    Par défaut
    Sauf si les deux instances sont sous le SP2 de SQL Server 2008 !

    @++

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 13
    Par défaut
    La production tourne sur SQL 2008 R2 version 10.50.1600 et le serveur de recette sous SQL 2008 version 10.0.4000
    Je peux donc récupérer sans aucun souci les bases d'un ancien serveur de prod tournant sous SQL 2000 et les restaurer sur le 2008 et le 2008 R2 sans problème, mais par contre, pas entre 2008 R2 vers 2008 ?
    Je parle d'opération aussi simple que Backup/Restore...

  16. #16
    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 : 47
    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
    Tout à fait.

    L'approche ascendante est possible mais pas l'approche descendante.

    ++

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 13
    Par défaut
    Ok, merci beaucoup pour l'aide.
    C'est un beau métier, on en apprend tous les jours...
    A++
    Philippe

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

Discussions similaires

  1. Tranfert vers un autre serveur
    Par malmzi2007 dans le forum Zope
    Réponses: 2
    Dernier message: 28/09/2006, 11h41
  2. [Système] Échange de données entre serveurs
    Par bpriscil dans le forum Langage
    Réponses: 7
    Dernier message: 19/05/2006, 09h51
  3. 9.2 Echange entre serveurs
    Par lunab54 dans le forum Oracle
    Réponses: 1
    Dernier message: 24/12/2005, 17h38
  4. Recopie de procs stocks dynamiques entre serveurs
    Par Chevalier Bayard dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/06/2005, 11h29
  5. Réponses: 4
    Dernier message: 04/07/2002, 12h31

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