Question

Mon équipe évalue les outils et les processus de gestion des migrations base de données / base de données refactoring comme décrit par Martin Fowler, Pramod Sadalage, et. Al. Nous sommes intéressés par des processus automatisés, reproductibles, testables, donc nous ne sommes pas intéressés par des techniques comme la course manuellement SQL Comparer chaque fois que nous déployons. Nous utilisons actuellement CruiseControl.NET pour l'intégration continue.

Notre environnement de production a plusieurs serveurs de bases de données SQL Server 2000 avec la réplication entre eux. Nos migrations se rendant ainsi des modifications au schéma à la fois la source et le serveur de base de données cible.

Pour effectuer une telle migration avec un outil tel que dbdeploy, il semble que nous aurions besoin de lancer la migration contre l'un des serveurs, et nous devrions ajouter les autres serveurs que les serveurs liés. Un seul script en cours d'exécution sur le serveur principal peut ainsi exécuter contre l'un des DDL les serveurs liés.

Ma question est la suivante: cette approche serait considérée comme une meilleure pratique, ou est-il une meilleure technique pour appliquer les migrations qui touchent les serveurs de bases de données multiples

Était-ce utile?

La solution

Je ne vois rien d'intrinsèquement mauvais avec cette approche, mais lors de sa mise en place assurez-vous de tester ce qui se passe lorsque l'un des serveurs liés est en panne. Vous ne voulez pas être reculer tous les autres serveurs si l'on se trouve vers le bas et vous ne voulez connaître les modifications ne sont pas appliquées à ce serveur.

Bien sûr, la première, les meilleures pratiques les plus importantes pour toute migration fait que vous avez un processus de sauvegarde solide en place avant de commencer la migration des modifications.

Autres conseils

Visual Studio 2008 (Team Edition, spécifiquement GDR) peut gérer le déploiement automatisé de schéma par rapport au fichier de schéma / de métadonnées définies que vous pouvez déployer sur des serveurs. Cela pourrait être inclus dans votre build / processus de déploiement. Cependant, je pense qu'il ya encore un problème sur les changements de réplication et schéma - il n'y a pas de paquet qui comprend / est au courant de votre configuration de réplication.

Par exemple, nous utilisons des procédures de réplication personnalisés sur l'abonné et bien que des changements de schéma se propagent de l'éditeur nous avons parfois le script manuellement change en fonction de toute réplication personnalisée que nous avons en place. Si vous n'utilisez pas procs de réplication personnalisée, je dirais que ce fut le chemin à parcourir.

Vous pouvez essayer une combinaison de Chinchillin et Wizardby :. installer des agents sur les serveurs Chinchillin DB et l'ont exécuter des scripts de migration Wizardby au cours de votre processus de déploiement

Cette intégration est dans les travaux, si:)

Ici, à Red Gate, nous avons maintenant une solution reproductible de migration qui utilise SQL Comparer et SQL Source Control. La ligne de commande SQL Comparer peut donc être utilisé pour soutenir un processus d'intégration continue.

http://www.red-gate.com/MessageBoard /viewtopic.php?t=14107

Il est actuellement la construction d'accès rapide, donc nous sommes désireux d'obtenir le plus de commentaires possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top