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 :

est il realiste d'essayer de transferer une Database SQL Server sur une autre machine ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 est il realiste d'essayer de transferer une Database SQL Server sur une autre machine ?
    Bonjour

    Veuillez excuser monincompétence et mon énervement face au parcours d'obstacle infranchissable rencontré dans ma tentative de Transferer une DataBase SQL SErver 2008 vers une autre machine SqlServer 2008

    Dommage que MySql soit passé chez Oracle, ils avaient un syteme de gestion un peu plus souple et convivial

    J'essaye donc de transferer une base d'une machine vers une autre (s'il vous plait n'essayer pas de me trouver des argument pour me dire que je ne peux pas faire ca)

    J'ai essayé BackUp Restore : impossible pas la meme version de serveur
    J'ai essayé detach et copie des fichier : impossible pour les memes raisons

    Je pensais donc pouvoir m'en sortir en generant un script de creation de DB avec donnée avec SSMS : mais la aussi ca coince.

    Voici le script généré : déja je trouve débile que le chemin d'acces physique au fichier DB soit hard codé dans le script (c'est au serveur de gerer ca) et c'est probablement la premiere cause de plantage rencontré (voir erreur apres)

    Existe_t_il un truc spécial ou bien le transfert de database c'est vraiment un truc impossible ou réservé a ceux qui son nés avec MSSql dans le biberon (j'ai prévenu SSMS me rends nerveux et idiot)

    Merci en tout cas a ceux qui voudraient m'aider

    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
    16
    17
    USE [master]
    GO
    /****** Object:  Database [SmartBill]    Script Date: 01/08/2012 15:38:17 ******/
    CREATE DATABASE [SmartBill] ON  PRIMARY 
    ( NAME = N'SmartBill', FILENAME = N'c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\SmartBill.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
     LOG ON 
    ( NAME = N'SmartBill_log', FILENAME = N'c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\SmartBill_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
    GO
    ALTER DATABASE [SmartBill] SET COMPATIBILITY_LEVEL = 100
    GO
    IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
    begin
    EXEC [SmartBill].[dbo].[sp_fulltext_database] @action = 'enable'
    end
    GO
    ALTER DATABASE [SmartBill] SET ANSI_NULL_DEFAULT OFF
    GO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Msg 5133, Level 16, State 1, Line 2
    Directory lookup for the file "c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\SmartBill.mdf" failed with the operating system error 3(Le chemin d’accès spécifié est introuvable.).
    Msg 1802, Level 16, State 1, Line 2
    CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
    Msg 5011, Level 14, State 5, Line 1
    User does not have permission to alter database 'SmartBill', the database does not exist, or the database is not in a state that allows access checks.
    Msg 5069, Level 16, State 1, Line 1
    ALTER DATABASE statement failed.
    Msg 5011, Level 14, State 5, Line 1
    User does not have permission to alter database 'SmartBill', the database does not exist, or the database is not in a state that allows access checks.
    Msg 5069, Level 16, State 1, Line 1
    ALTER DATABASE statement failed.

  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
    J'ai essayé BackUp Restore : impossible pas la meme version de serveur
    J'ai essayé detach et copie des fichier : impossible pour les memes raisons
    Si vous avez une erreur de ce type c'est que vous ne transférez pas vos bases entre serveurs de même version. Vous devez commencer par vérifier cela en lançant la requête suivante sur vos 2 serveurs :

    Voici le script généré : déja je trouve débile que le chemin d'acces physique au fichier DB soit hard codé dans le script (c'est au serveur de gerer ca) et c'est probablement la premiere cause de plantage rencontré (voir erreur apres)
    Vous demandez un script de bases de données c'est donc normal que celui-ci vous scripte le chemin physique de vos fichiers de bases de données. Votre serveur SQL ne peut pas deviner où vous placez vos fichiers. C'est à vous de lui préciser.

    Vous manquez un peu de formation sur SQL Server .. c'est normal que cela vous prenne un peu de temps .. c'est exactement la même chose sur les autres SGBD).

    Vous pouvez par exemple :

    - utiliser la génération de script pour votre base de données qui vous scriptera l'ensemble de votre base, objets et même données si votre base n'est pas trop volumineuse.
    - Générer les scripts de vos différents objets et utiliser bcp / ssis pour importer vos données
    - Générer les scripts de vos différents objets, utiliser un serveur lié + procédures SQL d'imports de vos données inter serveurs etc ...
    ...

    ++

  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

    J'apprécie ta patience et ton aide mais je reste énervé avec SqlServer

    Si vous avez une erreur de ce type c'est que vous ne transférez pas vos bases entre serveurs de même version. Vous devez commencer par vérifier cela en lançant la requête suivante sur vos 2 serveurs :
    Oui j'avais compris cela ....
    mais la Machine source utilise la version 2008 10.27 etc..
    La machine destination utilise la version 2008 10.50 etc..

    J'avais espéré que SqlServer etait au moins capable de gerer une compatibilité Ascendente entre les build d'une meme version

    Mais j'ai fini par admettre que j'avais a peu pres autant de chance de reussir cette operation en ayant deux serveurs scrupuleusement identique que de gagner au Lotto (et encore : le lotto je ne desespère pas )

    J'ai donc opté pour le script

    Vous demandez un script de bases de données c'est donc normal que celui-ci vous scripte le chemin physique de vos fichiers de bases de données. Votre serveur SQL ne peut pas deviner où vous placez vos fichiers. C'est à vous de lui préciser.
    Là je ne suis pas d'accord !!
    Il ne faut pas confondre le Nom logique de la base de donnée et le chemin Physique des fichier qui vont la contenir !!

    Que le nom logique doive etre spécifié dans le script me semble evident
    Mais PAS le chemin physique : c'est le serveur qui doit gerer et connaitre cela : ce chemin peut etre différent selon les machines !!
    D'ailleurs pour utiliser mon sript j'ai créé la database a la main, j'ai supprimé du script le code spécifique a la création de la base et je l'ai executé

    Tout s'est alors a peu pres bien passé sauf qu'il m'a encore un peu embèté en me signalant de maniere obscure et peu sympatique qu'il y avait un problème de user login. Comme tout etait généré et accessible je ne me suis pas attardé sur le sujet qui est une des autre misères de SqlServer

    Vous manquez un peu de formation sur SQL Server .. c'est normal que cela vous prenne un peu de temps .. c'est exactement la même chose sur les autres SGBD).
    Tout a fait d'accord sur mon manque d'expérience et je comprends que c'est un handicap important
    Par contre je pense que MSSql Server est asser spécifique dans sa complexité et son manque de convivialité
    Je n'ai jamais rencontré ca dans mes autres fréquentation de SGBD ni MySql ni MDBS (mais ca c'est une vielle histoire)

    Je comprends qu'un spécialiste ne se rends plus compte qu'il y a un tas de truc vraiment pas simple peu intuitif ou sans doute parfois vraiment mal conçu.
    Mais le néophyte est completement perdu dans la jungle

    C'est un peu comme si l'engine etait geré et développé par une equipe dynamique moderne et efficace
    Et que les outils admin etaient développés par une équipe de pachyderme rouillés ayant développpé leurs savoir sur Access (c'est l'homme frustré qui parle )

    Dans le debat "Qu'est ce qui manque selon vous a SqlServer" je vote haut la main pour "Un ou des outils admin mieux concu plus intuitifs"

  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 : 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
    Là je ne suis pas d'accord !!
    Il ne faut pas confondre le Nom logique de la base de donnée et le chemin Physique des fichier qui vont la contenir !!

    Que le nom logique doive etre spécifié dans le script me semble evident
    Mais PAS le chemin physique : c'est le serveur qui doit gerer et connaitre cela : ce chemin peut etre différent selon les machines !!
    D'ailleurs pour utiliser mon sript j'ai créé la database a la main, j'ai supprimé du script le code spécifique a la création de la base et je l'ai executé
    Vous pouvez tout à fait créer une base de données sans préciser quoi que ce soit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE DATABASE <mabase>;
    Simplement vous demandez un script de la base de données c'est donc normal qu'il vous précise l'ensemble des paramètres de la base. A vous d'enlever les paramètres de fichiers dans ce cas. Cependant comme je vous le disais avant, si vous ne précisez rien SQL Server sera incapable de connaître la taille de vos fichiers, les paramètres d'autogrowth, le nombre de fichiers etc .... Si vous ne précisez rien ce sont les paramètres par défaut du serveur en question qui seront appliqués.

    ++

  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
    Merci Mikedavem

    Oui je comprends mais c'est précisément sur ces points là que je trouve que les outils de management sont franchement peu conviviaux et d'une technologie d'un autre age

    L'outil de génération de script pourrait offrir une interface plus claire et explicite sur les différentes options

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    le plus simple, si ta base n'est énorme est de passer par l'exportateur de datas;

    tu te mets dans SSMS (explorateur SQL)
    tu sélectionne la base de départ et tu te mets sur le nom de la base
    click droit
    all tasks
    export datas
    et tu suis ce qu'on te demande

Discussions similaires

  1. creation d'une entree ODBDC pointant sur une BD SQL SERVER
    Par soft_balade dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/08/2010, 00h12
  2. problème d'insertion sur une BD SQL server 2000
    Par offspring140 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 22/05/2006, 11h11
  3. lier une table Sql Server sur Access
    Par JerBi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/01/2006, 16h27
  4. Connexion dynamique sur une base SQL Server
    Par jh0483 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/08/2005, 15h10
  5. Comment etablir une connexion distante sur une bd sql server
    Par sessime dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/11/2004, 13h19

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