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 :

Migration d'une base SQL Server sans perte de donnée [2008]


Sujet :

Administration SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Migration d'une base SQL Server sans perte de donnée
    Bonjour,
    J'ai une question qui me hante depuis quelques jours, comment faire une migration SQL Server sans perdre de donné.
    (actuelement, pour faire une migration on fait un backup full et on déploie l .bak sur la nouvelle machine).

    On peut également faire une migration avec le .bak + les fichiers transaction log si la base est en modèle full, mais ça ne change rien sur le fait que la restauration + récupération est incroyablement long.
    (et que la base est fermé le temps de la migration).
    et que si on a 200 bases SQL Server, ça risque d'être compliqué à migrer.

    Une autre solution qui m'a traversé l'esprit, pourquoi on ne ferai pas une réplication transactionnel sur la machine de prod? (ça nous évite de fermer les bases durant la migration non?)
    (n'hésitez pas à m'arrêter si je dis une connerie surtout que je pense que j'en dis une :p).

    Du coup, je voulais savoir comment vous faîtes pour migrer vos bases SQL Server de votre instance préprod vers votre serveur de prod par exemple?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    Vous n'avez pas à fermer les bases pour faire une sauvegarde en vue de migrer, à moins que vous ne vouliez abandonner définitivement l'ancien serveur.

    Une solution pour minimiser le temps de migration et même n'avoir aucune coupure est d'utiliser le principe du mirroring ou de AlwaysOn.
    Ces deux systèmes (le mirroring étant plus simple dans votre cas) procède par duplication de l'intégralité des bases...

    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/ * * * * *

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Providence0 Voir le message
    J'ai une question qui me hante depuis quelques jours, comment faire une migration SQL Server sans perdre de donné.
    (actuelement, pour faire une migration on fait un backup full et on déploie l .bak sur la nouvelle machine).
    C'est une bonne méthode. C'est ce que j'utilise quand j'en ai besoin. Mais c'est très rare ^^ La migration intervient quand je change de serveur par exemple, pour pour gérer des mises à jour.

    Citation Envoyé par Providence0 Voir le message
    Une autre solution qui m'a traversé l'esprit, pourquoi on ne ferai pas une réplication transactionnel sur la machine de prod? (ça nous évite de fermer les bases durant la migration non?)
    (n'hésitez pas à m'arrêter si je dis une connerie surtout que je pense que j'en dis une :p).
    Tu prends le problème à l'envers. L'objectif de la réplication transactionnel est de transmettre l'intégralité des changements d'une base vers une autre, et non de faire une fusion des modifications ! A moins que ta base de données de production ne soit en lecture seule, prendre le risque de se retrouver avec des conflits de mise à jour en prod est une très très très mauvaise idée.

    Citation Envoyé par Providence0 Voir le message
    Du coup, je voulais savoir comment vous faîtes pour migrer vos bases SQL Server de votre instance préprod vers votre serveur de prod par exemple?
    Pour ma part, je réalise des scripts. Toute mise à jour de ma base de données passe par la création d'un script SQL qu'il me suffit d'exécuter pour mettre à jour l'instance. J'écris mon script lors des dev. Je teste le script en préprod. Après validation, je le passe en prod.

    [EDIT]
    En fait, je crois que je suis complètement hors sujet ! Le problème n'est pas de mettre à jour une base de données, mais de la mettre en prod. J'ai été trompé par l'aspect "et que la base est fermé le temps de la migration"...
    [/EDIT
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #4
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Je n'ai jamais testé mais j'ai vu une session lors des derniers SQL Saturday à Paris par Chrissy Lemaire qui fait une migration via powershell.

    Si tu fais une recherche sur google avec "dbatools powershell", tu auras tous ces scripts. Si tu es à l'aise avec powershell, tu peux faire un test.
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Tout d'abord merci pour vos réponses rapide.

    J'ai lu ce que vous avez écris et je pense que je vais creuser un peu plus sur la méthode de Mirroring.

    Mais du coup, si j'ai bien compris :
    Mirroring = High availability = haute disponibilté = permet de répliquer les données sur 2 bases différentes (Donc en plus d'être une méthode pour migrer une base vers un autre serveur sans arrêter la base, il joue également le rôle de fail over et de load balancer vu qu'il fait de la répartition de charge et que si le serveur contenant la base 1 a un soucis, j'ai toujours la base 2 qui tourne) ? (C'est complètement génial )


    Dans ce cas, je ne suis pas sûr d'avoir bien saisi le but de la réplication?
    Surtout qu'en fonction des méthodes choisi il peut y avoir plusieurs contraintes
    (comme le fait que la base de publication ne doit pas être plus vieille que la base de distribution
    ou
    qu'en réplication transactionnel, la base de distribution est en read-only).
    J'ai lu la description de dorinf sur la réplication transactionnel (qui permet de "transmettre l'intégralité des changements d'une base vers une autre") mais si c'est pour avoir une base de publication en read-only, je me dis autant faire un Mirroring non?

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Providence0 Voir le message
    Tout d'abord merci pour vos réponses rapide.

    J'ai lu ce que vous avez écris et je pense que je vais creuser un peu plus sur la méthode de Mirroring.

    Mais du coup, si j'ai bien compris :
    Mirroring = High availability = haute disponibilté = permet de répliquer les données sur 2 bases différentes (Donc en plus d'être une méthode pour migrer une base vers un autre serveur sans arrêter la base, il joue également le rôle de fail over et de load balancer vu qu'il fait de la répartition de charge et que si le serveur contenant la base 1 a un soucis, j'ai toujours la base 2 qui tourne) ? (C'est complètement génial )
    Attention, dans le cadre du mirroring la base miroir n'est pas accessible. Dans le cas de AlwaysOn, les replicas peuvent être lus uniquement


    Dans ce cas, je ne suis pas sûr d'avoir bien saisi le but de la réplication?
    Le terme réplication est assez galvaudé et appliqué à tout et n'importe quoi. Dans SQL Server la réplication sert à répliquer des données d'une base à l'autre; des données ne signifie en aucune manière l'intégralité des tables et lignes de la base, mais un choix de tables et pour certaines lignes. De plus la base de destination n'a pas l'obligation d'avoir strictement les mêmes tables, ni que les tables répliquées aient la même structure... !

    Surtout qu'en fonction des méthodes choisi il peut y avoir plusieurs contraintes
    (comme le fait que la base de publication ne doit pas être plus vieille que la base de distribution
    ou
    qu'en réplication transactionnel, la base de distribution est en read-only).
    J'ai lu la description de dorinf sur la réplication transactionnel (qui permet de "transmettre l'intégralité des changements d'une base vers une autre") mais si c'est pour avoir une base de publication en read-only, je me dis autant faire un Mirroring non?
    Non, du ALwaysOn !

    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/ * * * * *

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Merci pour votre aide

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Vu que le sujet commence à partir sur la différences des différentes méthode de réplication,
    J'ai créé un autre topic portant ce nom :
    http://www.developpez.net/forums/d16...ransactionnel/

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/12/2015, 11h54
  2. Réponses: 18
    Dernier message: 21/05/2015, 18h11
  3. Réponses: 5
    Dernier message: 18/05/2011, 23h24
  4. Comment se connecter à une base SQL server
    Par zapia dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/10/2003, 17h39

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