Вы находитесь на странице: 1из 25

La rplication sous SQL Server 2005

Mettre en place la rplication sur SQL Server 2005


La rplication des bases de donnes est une problmatique classique dans les systmes d'information. En effet, dans de nombreux cas, une infrastructure centralise stocke un ensemble de donnes. Il devient alors intressant de mettre disposition les informations utiles pour les antennes dportes sans avoir saturer les lignes par les accs concurrents. On passe alors par des rplications conditionnes paramtres pour chaque site distribu. Nous verrons dans un exemple simple la mthode utilise. Introduction Nous avons pu voir dans les prcdents articles que SQL Express est un produit puissant pouvant tre utilis par un client. Nous avons aussi pus apercevoir la possibilit de concevoir une base DataWareHouse lors de la mise en place du Reports Pack de IIS. En effet, un DataWareHouse est (comme son nom le dit) une ferme de donnes qui stockera l'ensemble des donnes pour un projet dfini. Notre exemple se basera sur la base mise en place pour ce Reports Pack :

IISLOG

Prsentation : Notre objectif dans cet article est de mettre en place une plateforme SQL Server 2005 Express Edition qui recevra une partie des donnes venant de notre base SQL Server 2005, en filtrant sur une donne (Nom du serveur WEB). Il existe trois modes de rplication sous SQL Server 2005 :

La rplication de capture instantane La rplication transactionnelle La rplication de fusion

Nous choisirons pour notre exemple une rplication de capture instantane, du fait de la faible taille de notre base de donnes et que nous effectuerons un filtrage des donnes rpliquer. Pour le choix du mode le plus adapt votre besoin, je vous invite lire l'article sur le sujet :

Choix du type de rplication appropri

Cet exemple est prendre comme tel et non comme rfrence. Nous verrons donc dans cet article l'architecture rapide de la solution, puis comment crer une publication sur le serveur SQL 2005 enfin comment abonner la base SQLExpress sur cette publication.

Architecture : Notre architecture est la suivante :

SQL2005 : SQL Server 2005 Developer Edition (quivalent de la version Enterprise) SQLExpress : SQL Server 2005 Express Edition

Le dtail sera le suivant :

SQL2005 : Base DataWareHouse IISLOG recevant l'intgralit des logs IIS de tous les serveurs WEB de notre systme d'information SQLExpress : Base IISLOG en filtrant les donnes pour un seul serveur WEB qui nous intresse ("ServerTwo")

Voyons donc comment crer notre publication sur le serveur SQL Server 2005.

Cration de la publication Nous devons commencer par crer une publication depuis le moteur SQL Server 2005 de production. Chaque base peut avoir diffrentes publications (par exemple, pour des rplications conditionnes). Pour cela, il faut lancer le client Microsoft SQL Server management Studio et se connecter sur le serveur SQL 2005. Une fois connect, on utilise l'explorateur d'objets et ouvre :

Rplication > Publication locales

On clique alors avec le bouton droit de la souris et slectionne :

Nouvelle publication

Un assistant se lance ce moment afin d'effectuer la configuration de cette rplication.

On doit spcifier le serveur qui stockera les informations lors des synchronisations. Dans notre cas, ce sera le serveur SQL local.

A ce moment, il faut sur le serveur SQL 2005 crer un rpertoire partag qui sera utilis par les clients lors des synchronisations de donnes. Vous devez crer ce rpertoire puis le partager et surtout donner les droits de lecture et criture aux comptes de service qui sont utiliss par les moteurs SQL des clients de la rplication. Vous devez aussi associer ces droits sur le partage. Attention : Vous devez prvoir la place disque suffisante pour ce rpertoire, car il contient les donnes correspondant la base de donnes (en prenant en compte le filtre ventuel). Ainsi pour une base de plusieurs Go, vous aurez la mme taille stocke sur ce partage. Dans notre exemple, le rpertoire concern sera :

\\SERVEURSQL2005\ReplicationDatas\

On doit maintenant spcifier la base que l'on souhaite publier (dans notre cas, ce sera IISLOG).

A cet instant, nous devons dfinir le mode de rplication que nous souhaitons mettre en place. Notre exemple sera en "Publication de capture instantane".

L'assistant nous demande alors les objets qui doivent tre rpliqus. En effet, dans de nombreux cas, il est inutile de faire une rplication de toutes les bases lorsque seules quelques tables sont utilises par le client. Dans notre cas, nous slectionnons tous les objets.

Dans certains cas, vous pouvez avoir une alerte sur les objets dpendant d'un autre. Notre exemple prsente une alerte pour une procdure stocke qui requiert une table manquante (dans notre cas, nous ignorons cette alerte).

Cette tape est importante, car nous devons dfinir le filtre qui va conditionner la rplication des donnes. Ainsi, nous devons spcifier que nous ne voulons que les donnes dont le nom du serveur est "ServerTwo".

Pour cela, nous cliquons sur "Add..." et slectionnons la table "GlobalIISLog" en dfinissant que la valeur de la colonne "sComputername" doit tre gale "ServerTwo".

Ce qui nous donne alors le filtre :

Enfin nous devons dfinir la planification de cette capture instantane. On dfinit dans un premier temps d'effectuer une capture immdiatement, puis on va planifier une capture tous les jours 2.00 du matin.

Pour finir, les paramtres de scurit doivent tre spcifis sur la publication avec les comptes d'accs pour l'agent de capture. Nous utiliserons le compte de service du serveur SQL et le compte sa pour l'accs la base de donnes.

On cre alors la rplication.

Et on lui donne un nom.

Pour enfin cliquer sur "Terminer". La cration se fait alors.

Pour finalement nous dire que tout a t cr avec succs.

On voit alors apparatre cette nouvelle publication dans l'explorateur d'objet, avec les dtails sur celle-ci.

Il ne nous reste plus que de configurer le client SQL Server 2005 Express Edition de cette rplication.

Abonnement du client SQL Express

A ce stade, notre publication est prte tre utilise par les clients. Nous allons donc abonner notre SQL Server 2005 Express Edition sur cette publication. Nous ferons cet abonnement depuis SQL Server 2005 Management Studio Express qui a t prsent dans un prcdent article :

SQL Server Management Studio Express

Pour ceci, il faut dj nous connecter avec Management studio sur le moteur SQL Express. Nous devons alors crer la base de donnes qui sera le rceptacle de l'abonnement. Nous la nommerons pour qu'il n'y ait pas de confusion possible : "IISLOG_EXPRESS". Nous pouvons aussi spcifier le mode de rcupration SQL Server en "SIMPLE", puisque cette base sera simplement le rceptacle de la rplication, il n'y a donc aucun besoin de journalisation des transactions. On peut alors aller avec l'explorateur d'objet dplier les menus :

Rplication > Abonnements locaux

On clique alors avec le bouton droit et slectionne "Nouveaux abonnements...".

Un assistant se lance afin de nous aider paramtrer cette rplication.

L'assistant demande alors de renseigner le serveur de publication sur lequel il doit s'abonner. Par dfaut, il propose son instance locale dans la liste droulante.

Il faut alors slectionner dans la liste droulante "Rechercher un serveur de publication SQL...". Nous voyons alors une fentre de connexion se lancer dans laquelle nous devons renseigner les paramtres pour notre serveur "matre" SQL 2005.

Une fois la connexion correctement paramtre, on valide et on a alors la liste des publications disponibles sur le serveur "matre", regroupes par base de donnes. On slectionne celle que nous avons cr prcdemment et "Suivant".

L'tape suivante est extrmement importante, car elle dfinit le mode de rcupration des donnes qui sera utilis lors de cette rplication. Ainsi, nous avons deux modes possible s :

La rcupration en "push" : Le serveur "matre" pousse les donnes vers les clients abonns. Ce mode est intressant principalement pour les serveurs ou clients fixes avec des connexions permanentes.

La rcupration en "pull" : Les clients abonns demandent au serveur "matre" les donnes. Ce mode est utiliser pour des serveurs distants ayant des connexions non fixes (RNIS par exemple) ou pour les clients nomades (les portables).

Dans notre exemple, nous choisirons la premire option puisque nous avons deux serveurs dans un rseau local.

A ce niveau, nous devons dfinir la base rceptacle de cet abonnement. Par dfaut, il cherche une base ayant le mme nom que la base du serveur "matre", nous devons alors slectionner la base dans la liste droulante.

Nous devons maintenant fournir les paramtres de scurit qui seront utiliss pour l'abonnement. Ceci en cliquant sur les ... sur la droite.

On doit fournir le compte NT qui sera utilis pour se connecter sur le Share rseau de la publication et le compte SQL qui sera utilis pour le client SQL Express.

On a alors le rsum des paramtres de scurit.

On doit maintenant donner la planification qui sera utilise pour la synchronisation du client. On y trouve 3 modes :

Excuter en continu : Le client va rgulirement tester le serveur "matre" pour synchroniser les donnes Excuter la demande uniquement : Le client va se synchroniser uniquement lorsque la demande sera faite Dfinir la planification : On doit spcifier la planification respecter pour le test du serveur "matre"

Dans notre exemple, nous prendrons le mode continu.

On spcifie maintenant quel moment nous devons lancer l'initialisation de l'abonnement, c'est--dire la premire synchronisation entre le "matre" et les abonns. Nous choisirons immdiatement pour notre exemple.

Nous confirmons l'enregistrement de notre abonnement.

Un rsum s'affiche enfin.

La cration de l'abonnement se fait alors.

Pour finalement avoir la confirmation du succs de la cration.

On peut alors vrifier la prsence de cet abonnement en dveloppant le menu Rplication de l'explorateur d'objets. On contrle en mme temps que l'initialisation s'est bien droule.

Notre abonnement est maintenant fonctionnel.

Contrler la rplication

Une fois la rplication effectue, il nous reste encore contrler rgulirement que tout se droule correctement. Ceci se fait depuis SQL Server 2005 Management Studio connect au serveur de publication (dans notre cas, le serveur "matre"). Dans l'explorateur d'objets, on dveloppe la partie rplications locales et on voit apparatre la rplication prcdemment cre. On voit alors apparatre l'abonnement fait par le client. On clique alors avec le bouton droit de la souris et slectionne "Afficher l'tat de l'agent de capture instantane".

Une fentre s'ouvre avec le statut de la publication et le nombre d'objets de la base qui sont publis.

On peut maintenant cliquer sur "Moniteur" pour avoir les dtails de la publication et des abonnements en cours sur celle-ci.

En cliquant sur l'abonnement en cours sur la publication faite, on a le statut de l'abonn et la dernire synchronisation effectue.

En double cliquant sur l'abonnement, on obtient le dtail des 100 dernires synchronisations. On peut choisir dans la liste droulante le filtre adapt.

L'outil est simple utiliser et les messages sont tous parlant. Je vous invite donc vrifier rgulirement ces synchronisations avec cet outil.

Conclusion

Nous avons donc vu dans cet article comment mettre en place une synchronisation simple entre deux bases de deux serveurs distants. Nous pouvons aussi imaginer d'avoir deux bases rpliques qui soient toutes les deux sur le mme serveur (avec un filtre sur la seconde). Les possibilits sont limites pour la rplication avec la version SQL Server 2005 Express Edition, car ce moteur ne peut uniquement tre client de rplication, cela par contre peut suffire dans de nombreux cas (en tenant compte des limitations spcifiques de la version Express, principalement sur la volumtrie).

Voici quelques liens utiles si cet article vous a intress :

Rplication SQL Server Procdure Configuration et maintenance de la rplication Replication: SQL Server 2000 - Part 1 (US) Replication: SQL Server 2000 - Part 2 (US) SQL Server Replication (US) Setting Up Transactional Replication with SQL Server (US) SQL Server 2005 Express Edition (FR) sqlexpress's WebLog (US)

En vous souhaitant de bons projets de dveloppement. Romelard Fabrice (alias F___) Consultant Technique ilem SA

Вам также может понравиться