Bonjour,
je rechercher le code C# pour faire une application qui fait la réplication et/ou la duplication d'une base donnée Sql Serveur.
Merci d'avance.
Bonjour,
je rechercher le code C# pour faire une application qui fait la réplication et/ou la duplication d'une base donnée Sql Serveur.
Merci d'avance.
Préviens nous lorsque tu l'as trouvé.
Que souhaites tu faire exactement ? Il est possible de faire de la réplication Sql Serveur assez facilement à l'aide des réplications sql serveur. Mais il te faut au moins un des deux serveurs Sql avec une licence payante. J'avais utiliser un script RMO pour faire de la réplication de fusion entre un sql serveur 2005 workgroup et un sql serveur 2005 express, mais je ne sais pas si pourrais t'aider.
Il faut que fasse une application en C# que je peux lancer sur n'importe quel machine possèdant une base de donnée sql serveur. Cette application doit dupliqué cette base de donnée et configurer la réplication transactionnelle bidirectionnelle entre ces deux bases de donnée.
Voila.
Seulement je ne l'ai jamais fait alors j'ai besoin d'aide.
en gros tu veux faire une application identique a dts (celle inclus dans sql server manager qui permet la replication).
1er question:
tu veux copier design + data ou uniquement la definition des differentes tables et autres.
2eme question:
cela doit-il inclure les stored procedures ?
les clr stored procedures (si oui tu va galerer grave)
3eme question:
combien de temps as tu pour le faire ?
Sinon a premiere vue :
1)j'essairai de voir si il n'y pas de command pour faire fonctionner l'outil deja inclus dans sql server.
2)tu peux utiliser le bon vieux builk (qui lui tu peux utiliser a l'aide de command)
3)parcourir la base de donnee et master pour recuperer les differentes info sur ta base de donnee, ainsi que la reflection.
mon premier choix va sans conteste sur l'utilisation direct des outils inclus dans sql server manager.
le second (lancer les outils a l'aide de command :
lancer backup puis restore , ou export data) il te faudra etres d'avoir les privilege de security approprie.
Qu'elle est la version de sql server utilisée ? S'il s'agit d'une version payante pour la publication, il est nécessaire de configurer l'abonnement à la réplication sur le serveur sql client et cela peut se faire assez "simplement" par un script RMO (que l'on sait codé en c#).
Ensuite dans le cas d'une transactionnelle bidirectionnelle, il faut paramétrer DTC en utilisant la commande DCOMCNFG.exe. Par contre, je ne sais pas comment on peut le paramétrer par l'applicatif.
Je n'arrive pas à retrouver le site que j'avais utilisé pour RMO, je vais chercher mon projet pour te montrer ce que l'on peut faire. dans mon cas, il s'agissait d'une réplication de fusion. La réplication de fusion est plus compliquée à gérer avec une version SQL Express car elle ne dispose pas d'agent et donc il faut faire une tache planifiée. Tandis qu'avec une transactionnelle bidirectionnelle, tu t'en sors bien grâce à DTC.
POUR ZEAVAN:
Il faut que je duplique toute la base: design + data.
Car la nouvelle base (copier depuis la première) doit être operationnelle de la meme facon que l'original(première) et doit pouvoir la remplacer.
Une fois les deux bases de données opérationnelle, il faut configurer la réplication transactionnelle bidirectionnelle entre les deux depuis une application en c#.
J'ai environ un peu moins d'un mois pour réaliser cette application.
Question: qu'est ce que builk?
POUR VAROD
version : sql serveur management studio 2005.
Je serai très interessé pas le travail que tu a deja effectué avec ton RMO, mais pourrais tu m'expliquer ce que c'est car je ne connais pas.
et qu'est ce que DTC?
Merci d'avance pour tes réponses et solutions.
et pour ton projet si tu arrive à remettre la main dessus.
En résumé, ce que doit faire mon application:
En lançant l'application chez une personne qui possède une base de donnée sql serveur, Cette application doit dupliquer la base sql serveur de cette personne afin d'en avoir deux identiques (les deux doivent être operationnelles et identiques, car si l'une tombe on doit pouvoir passer à l'autre). Une fois cela fait, l'application doit configurer la réplication entre ces deux bases de données.
Contexte
En faite je dois réaliser ce projet dans le cadre de mes études d'informatique de gestion mais tout cela est nouveaux pour moi car je n'ai jamais codé en c# ni configurer de réplication.
Alors tous les informations, observations, critiques, documentation, ... que vous pouvez me donner sont très importantes pour moi.
PS
Ensuite je dois faire la meme chose mais pour une base oracle (version 11g)...
ok tu dois donc implementer un systeme de replication qui est deja inclus dans sql server 2005 enterprise edition.
ok c'est pas facile facile et de plus en 1 mois , perso je vois pas comment.
si l'on parle bien de replication.
maintenant partons du principe d'1 mois , donc pour aboutir a la fin de ton projet il va te falloir redefinir le cahier des charges:
je m'explique , concevoir un systeme de replication pour sql server et pour oracle en 1 mois, je vois pas comment a moins d'avoir manque quelquechose.
bon 2 solutions dans ce temps donne , pas trop d'idee donc ne prend pas ca comme info a suivre, mais j'essais de lancer le debat pour que les autres membres interviennes.
la 1ere tu contourne les exigences et utilise le loadbalancing.
la 2eme tu limites les exigences et tu definis que tes 2 bases de donnees sont crees a l'avance, et par un systeme de trigger tu met a jour l'autre db .
ps: je suis impatient de voir les conseils donnes par d'autres membres.
oua je viens de faire attention au message precedant :
tu ne dois pas creer la replication mais une appli client qui doit le gerer:
Salut,
DTC = Microsoft Distribution Transaction Coordinator (de mémoire) en gros, c'est lui qui va gérer ta transactionnelle bidirectionnelle.
Attention par contre à l'utilisation de la transactionnelle bidirectionnelle car il me semble que si le site ou il y a publication tombe, tes abonnés ne savent plus faire d'enregistrement en base. Car transactionnelle signifie qu'il attend que l'enregistrement soit bien effectué des 2 cotés pour qu'il valide la transaction ... Attention, cette info est à vérifier, je ne suis plus très sure.
Pour ma part, j'avais utilisé la réplication de fusion pour palier à ce problème.
L'avantage dans ton cas, c'est que tu synchronise la base complète donc tu n'as pas à gérer les filtres paramétrés qui sont une vrai galère !!
Pour le timing, pour la partie Sql Server, je dirai que si tu comprends assez vite mon petit exe, cela ne devrait pas te prendre trop de temps (1 à 2 semaine env. )
Par contre pour la partie Oracle ... je ne connais pas du tout et je ne sais pas s'il y a moyen (facilement) de codé un abonnement à une publication.
J'essaie de te retrouver ce fichu source et je t'envoie ça.
Bon courage.
Partager