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 :

SQL Server 2008 SP2 - Déplacer une base de données, depuis une instance par défaut, vers une instance nommée


Sujet :

Administration SQL Server

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut SQL Server 2008 SP2 - Déplacer une base de données, depuis une instance par défaut, vers une instance nommée
    Bonjour à tous,


    J'apprends par la force des choses à utiliser MS SQL Server 2008, pour un ERP dans mon entreprise.

    Actuellement, nous disposons d'un serveur avec une instance par défaut, et une bonne dizaine de bases à l'intérieur.

    Ma hiérarchie voudrait que pour les différentes bases, nous séparions les instances, sur le même serveur.

    J'envisage donc de créer 5 instances nommées, afin de pouvoir leur attribuer une base chacune.

    Étant assez novice en la matière, j'imaginais simplement restaurer les bases dans les différentes instances désirées, et "recopier" les droits à la main.

    C'est carrément barbare, et je ne sais pas si c'est une méthode qui pourrait fonctionner (je pense sincèrement que non), mais je suis justement la pour essayer de comprendre le fonctionnement.

    Je vous remercie de me lire, et reste disponible pour donner plus d'information.

    Cordialement,

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 75
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    dans ton cas tu veux modifier l'instance de ta bdd, pour moi la sauvagarde et restauration est la meilleure solution. De toute façon il faudra la créer dans ta nvelle instance pour qu'elle s'inscrive dans les nvelles tables systèmes donc autant la restaurer.

  3. #3
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Ma hiérarchie voudrait que pour les différentes bases, nous séparions les instances, sur le même serveur.
    Pourquoi ? Quelle est la motivation de votre hiérarchie à ce propos ? Installer et multiplier les instances sur un serveur n'est pas sans conséquence pour l'administration et les performances.

    Étant assez novice en la matière, j'imaginais simplement restaurer les bases dans les différentes instances désirées, et "recopier" les droits à la main.

    C'est carrément barbare, et je ne sais pas si c'est une méthode qui pourrait fonctionner (je pense sincèrement que non), mais je suis justement la pour essayer de comprendre le fonctionnement.
    Vous pouvez procéder par backup / restore ou détach / attach des bases de données. Ensuite si le nombre d'objets de serveurs associés à vos bases est relativement petit .. vous pouvez tout à fait recréer le tout à la main (en n'oubliant pas de remapper vos logins si ceux-ci sont de type SQL.

    ++

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 100
    Points : 132
    Points
    132
    Par défaut
    Bonjour,

    Plusieurs solutions sont possibles effectivement.
    Je préfère lors de migration de serveurs, faire des détache/rattache.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord, merci pour vos réponses.

    Citation Envoyé par mikedavem Voir le message
    Pourquoi ? Quelle est la motivation de votre hiérarchie à ce propos ? Installer et multiplier les instances sur un serveur n'est pas sans conséquence pour l'administration et les performances.
    La justification est la suivante :
    - Séparer les bases dans plusieurs instances, permettrait d'avoir un agent SQL par instance, et de pouvoir les redémarrer indépendamment les unes des autres
    - Il y aurait plusieurs fichiers tempDB, et ça serait un avantage
    (justification que je répète, je me renseigne sur leur pertinence)

    Citation Envoyé par mikedavem Voir le message
    Vous pouvez procéder par backup / restore ou détach / attach des bases de données. Ensuite si le nombre d'objets de serveurs associés à vos bases est relativement petit .. vous pouvez tout à fait recréer le tout à la main (en n'oubliant pas de remapper vos logins si ceux-ci sont de type SQL.
    Je maitrise le backup/restore, donc je pense que je verrai pour tester cette méthode la. Je ne sais pas detach/attach, donc c'est réglé ^^.
    Notre base est quand même énorme, puisque nous avons toute la suite SAGE 100 dessus, alimentée tous les jours par environ 50 personnes simultanément.

    Mon projet consiste à basculer tout sur un nouveau serveur, créer 5 instances pour 5 bases (Gescom, Compta, MdPaiement, Immo). Et j'ai actuellement une base, dont la société se divise en 2, et je dois repartir sur 2 nouvelles bases "neuves" en effectuant des extractions/importations sélectionnés.

    Pour les droits de connexion accordés actuellement, c'est un groupe utilisateur d'Active Directory.

  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
    Bonjour,

    Séparer les bases dans plusieurs instances, permettrait d'avoir un agent SQL par instance, et de pouvoir les redémarrer indépendamment les unes des autres
    Cela n'a aucune utilité. Il suffit d'avoir le nombre adéquat de jobs, ce qui ne pose pas de problèmes.
    Redémarrer une instance n'est d'aucune utilité, à part celle de perdre le cache de données et de procédures, de prendre le risque que les bases de données soient corrompues au redémarrage parce que SQL Server n'a pas pu maintenir l'intégrité d'une transaction, ..., ... , ...

    Il y aurait plusieurs fichiers tempDB, et ça serait un avantage
    Là encore, c'est une ineptie. On peut tout à fait augmenter le nombre de fichiers dans TempDB, mais il faut savoir pourquoi on le fait.
    En général c'est pour limiter la contention au niveau des pages d'allocation, ce qui suppose que l'ERP fait une utilisation extensive des tables temporaires et des variables de type TABLE; ce n'est pas étonnant pour un ERP ...

    En outre il faut que ces fichiers aient exactement la même taille pour que SQL Server puisse les remplir de façon proportionnelle, et les mapper à un CPU ou groupe de CPU.

    Je ne sais pas detach/attach, donc c'est réglé ^^.
    Détacher une base de données de son instance consiste à supprimer la base de données de l'instance sans en supprimer les fichiers comme cela se fait avec un DROP DATABASE.
    De là vous pouvez déplacer les fichiers (ou les copier) vers un autre emplacement, et procéder à l'attachement en spécifiant le nouvel emplacement de vos fichiers de base de données. Le plus long dans l'histoire, c'est de copier les fichiers et de créer le script de rattachement s'il y a de nombreux fichiers (mais ça se scripte).
    Cela dit, je trouve le BACKUP + RESTORE plus sécurisé; mais c'est aussi plus lent

    Mon projet consiste à basculer tout sur un nouveau serveur, créer 5 instances pour 5 bases (Gescom, Compta, MdPaiement, Immo). Et j'ai actuellement une base, dont la société se divise en 2, et je dois repartir sur 2 nouvelles bases "neuves" en effectuant des extractions/importations sélectionnés.
    C'est à mon avis une totale perte de temps et d'argent en termes de migration et de maintenance future.

    @++

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 100
    Points : 132
    Points
    132
    Par défaut
    J'ajouterais que 5 instances = 5 licences, ça me fait réfléchir ce genre de trucs ^^

  8. #8
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Pour le basculement, passer par du mirroring...

    5 instances = 5 licences
    Non si toutes les instances sont sur le meme serveur.

  9. #9
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 100
    Points : 132
    Points
    132
    Par défaut
    J'avais compris que c'était sur des machines séparées ^^ Sinon le gain de mettre 4 instances de plus sur le même serveur ...

  10. #10
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    D'apres les explications c'est pour segreger les services/agents par application pour redemarrer les services plus facilement.
    Ca permet de redemarrer une instance et impacter un nombre minimal d'utilisateurs. Bonne solution ou pas...

    Cependant avec certains "clients difficiles" qui te disent qu'il faut rebooter l'instance et qui ne sont pas contents tant que tu le fais pas (meme si c'est inutile) ca peut parfois faciliter les choses d'un point de vue politique de leur donner une instance dedie... Voir un serveur dedie... (tant qu'ils paient apres tout why not ?!)

    Apres la segregation par instance est aussi une question de securite souvent.
    Si un service account a besoin de SA sur l'instance, il voit donc toutes les donnees de l'instance... Meme de la base de l'application d'a cote...

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Haloavandaha Voir le message
    Ma hiérarchie voudrait que pour les différentes bases, nous séparions les instances, sur le même serveur.

    J'envisage donc de créer 5 instances nommées, afin de pouvoir leur attribuer une base chacune.
    C'est effectivement parfaitement débile et ne peut que vous entrainer dans des problématiques complexes et couteuses :
    1) 5 instances => 5 licences
    2) SQL Server étant programmée pour accaparer toutes les ressources du serveur vous allez vous retrouver dans un état instable et pour y pallier il faudra fixer les ressources par serveur (CPU affinity, max server memory) et au final, la puissance globale sera nettement moindre, car le réglage n'est pas dynamique.
    3) vous allez multiplier la maintenance.
    par exemple une procédure de maintenance particulière devra être reproduite sur toutes les instances et maintenue sur chacune, alors que si elle est centralisée sur un seul serveur cela ne pose aucun problème !
    par exemple lorsque j'interviens en conseil d'admin je fais des procédures mutualisées qui impacte toutes les bases d'un seul coup, cela simplifie beaucoup les tâches de maintenance. Et qu'il y ait 5 bases ou 50, cela ne coute rien de plus...

    Le seule problème est celui de la tempdb. mais il est facilement contournable par un placement et un dimensionnement correcte des fichiers de ladite base.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  12. #12
    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
    Citation Envoyé par SQLPro
    Le seule problème est celui de la tempdb. mais il est facilement contournable par un placement et un dimensionnement correcte des fichiers de ladite base.
    Difficile de la faire comprendre aux Bernard L'Hermite-Admin SAN de tous les employeurs chez qui je suis passé et suis ...

    @++

  13. #13
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 100
    Points : 132
    Points
    132
    Par défaut
    Voir impossible de leur faire comprendre, quand pour eux un SAN c'est x LUNs de 1 Tera et puis basta....

    Have a nice week end !

  14. #14
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Je reste d'un avis partagé...

    Citation Envoyé par SQLpro Voir le message
    C'est effectivement parfaitement débile et ne peut que vous entrainer dans des problématiques complexes et couteuses :
    1) 5 instances => 5 licences
    C'est vrai si c'est sur 5 serveurs différents.
    Et dans ce cas la le point 2 ci-dessous n'est plus vraiment valable.
    Les licences sont par serveur et non par instance.

    Citation Envoyé par SQLpro Voir le message
    2) SQL Server étant programmée pour accaparer toutes les ressources du serveur vous allez vous retrouver dans un état instable et pour y pallier il faudra fixer les ressources par serveur (CPU affinity, max server memory) et au final, la puissance globale sera nettement moindre, car le réglage n'est pas dynamique.
    C'est vrai que l'administration se fait, dans le cas d'un serveur avec plusieures instances, avec un regard serveur et instances.
    Pour ce qui est de la mémoire, c'est une bonne pratique, même avec une seule instance, de fixer le max memory.
    Apres reste les CPUs, c'est vrai que dans ce cas la il y a les affinity mask ou WSRM.
    A prendre en compte aussi, les ports ! Je pense en particuliers aux endpoints pour le mirroring qui utilise des ports niveau serveur - ca marche pas 2 instances avec le même port pour 1 endpoint... Ça le crée mais niveau connections apres ca joue pas.
    Au final tout se résume assez facilement en 1 feuille excel et ce ne sont pas des choses qu'on change tous les jours. Un bon design et c'est partit.
    Je trouve même qu'il peut être bien d'utiliser plusieurs instances sur un même serveur lorsque celui-ci est gros car ca permet de le faire travailler comme il faut Un peu comme on ferait travailler un gros host avec plein de VMs.

    Citation Envoyé par SQLpro Voir le message
    3) vous allez multiplier la maintenance.
    par exemple une procédure de maintenance particulière devra être reproduite sur toutes les instances et maintenue sur chacune, alors que si elle est centralisée sur un seul serveur cela ne pose aucun problème !
    par exemple lorsque j'interviens en conseil d'admin je fais des procédures mutualisées qui impacte toutes les bases d'un seul coup, cela simplifie beaucoup les tâches de maintenance. Et qu'il y ait 5 bases ou 50, cela ne coute rien de plus...
    Effectivement, dans ce cas il faut maintenir un même code à plusieurs endroits.
    Avec le Central Management Server et/ou les jobs centralisés aussi, je ne vois pas cette tache insurmontable.
    Et rien n'empêche d'utiliser des taches de maintenances gérants plusieures bases en une seule fois comme mentionné

    Donc voila, je reste partagé comme je disais... Il faut voir au cas pas cas

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour toutes vos réponses, je vais prendre le temps de bien vous lire et d'analyser tous vos propos.
    Je ne passe pas encore en résolu volontairement

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/11/2009, 17h12
  2. Réponses: 3
    Dernier message: 16/07/2009, 18h00
  3. Réponses: 2
    Dernier message: 25/09/2008, 10h15
  4. SQL Server 2005 sauvegarde quotidienne de base de données
    Par t-die dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/03/2008, 09h30
  5. [SQL SERVER][ACCESS]Taille de la base de données.
    Par aityahia dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/05/2007, 19h36

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