Sommaire Configuration de SQL server 2005 pour la réplication 1. Présentation du besoin... 2 2. Architecture des deux sites... 2 3. Présentation du modèle de publication de réplication... 3 4. Configuration de SQL server du site d Armentières... 4 4.1. Introduction... 4 4.2. SQL server Management Studio... 4 4.3. Création de la base TapirisArm... 5 4.4. Création des utilisateurs SQL server : «Connexions» SQL... 6 4.4.1. Connexion SQL avec authentification Windows... 7 4.4.2. Connexion SQL avec authentification SQL server... 9 5. Configuration de SQL server du site de Roubaix... 9 5.1. Configuration de SQL server... 9 5.2. Création d une base vide qui servira à la réplication... 9 5.3. Création des utilisateurs SQL server : «Connexions» SQL... 9 5.3.1. Connexion SQL avec authentification Windows... 9 5.3.2. Connexion SQL avec authentification SQL server... 10 6. Mise en place de la réplication par fusion... 12 6.1. Services de Publication et de Distribution sur Armentières... 13 6.2. Service d abonnement sur Roubaix... 19 6.3. Contrôle avec SQL server Management... 25 7. En cas de problème... 26 BTS iris - Lycée Eiffel - Armentières Page 1 sur 26 27/05/2008
1. Présentation du besoin Besoin : Les deux sites distants d Armentières et de Roubaix travaillent sur un même projet. Les données contenues dans la base de données du projet doivent être uniques. Il faut que les données de la base soient toujours accessibles pour les applications clientes d un site ou d un autre. Problèmes : La connexion ADSL privée entre ces deux sites peut être inaccessible Un des serveurs peut être éteint Un site peut être en congé pendant que l autre travaille Solution choisie en 2008 : Nous avons décidé d installer deux serveurs de base de données SQL server 2005 (un dans chaque site, donc toujours accessibles). Chacun de ces serveurs possèdera une base de données pour le projet. Les applications accèderont aux données de leur base sur leur serveur local. Les deux serveurs SQL s occuperont eux-mêmes de synchroniser automatiquement les données des deux bases à intervalle régulier, préservant ainsi l unicité des données (réplication bidirectionnelle). Cette synchronisation s effectuera tant que la liaison inter-site est active et reprendra automatiquement après chaque perte de liaison et/ou chaque redémarrage d un serveur. 2. Architecture des deux sites Armentières Roubaix Domaine Windows : ARMBET Groupe de Travail : WORKGROUP Routage IP + VPN SQL Server 2005 ARMBET\b30 SQL Server 2005 Irisxp-82 : 192.168.33.7 Irisxp-p203 : 192.168.33.61 BdD : TapirisArm BdD : TapirisX user203 Utilisateurs Windows et connexions SQL server Utilisateurs SQL Server Armentières Utilisateurs b30 Windows Connexions SQL server ARMBET/b30 Authentification liée à l utilisateur windows b30. Propriétaire de la base TapirisARM Connexions SQL server Utilisateurs SQL Server Roubaix user203 Propriétaire de la base TapirisX BTS iris - Lycée Eiffel - Armentières Page 2 sur 26 27/05/2008
Réplication par fusion : services mis en œuvre par SQL server Services SQL sur Armentières Service de Publication des données à synchroniser (PUSH) Services SQL sur Roubaix Service d abonnement aux données synchronisées Service de Distribution 3. Présentation du modèle de publication de réplication La réplication utilise une métaphore de l'industrie de l'édition pour représenter les composants d'une topologie de réplication ; elle comprend un serveur de publication, un serveur de distribution, des abonnés, des publications, des articles et des abonnements. Il peut être utile de penser à la réplication Microsoft SQL Server dans les mêmes termes qu'un magazine : L'éditeur d'un magazine produit une ou plusieurs publications Une publication contient des articles L'éditeur distribue le magazine directement ou bien utilise un distributeur Les abonnés reçoivent les publications auxquelles ils se sont abonnés Même si la métaphore du magazine est utile à la compréhension de la réplication, il est important de noter que la réplication SQL Server inclut des fonctionnalités qui ne sont pas représentées dans cette métaphore, en particulier la possibilité pour un Abonné d'effectuer des mises à jour et pour un serveur de publication d'envoyer des modifications incrémentielles aux articles d'une publication. Une topologie de réplication définit la relation entre les serveurs et les copies des données, et clarifie la logique qui détermine les flux des données entre les serveurs. La copie et le déplacement de données entre le serveur de publication et les Abonnés sont pris en charge par plusieurs processus de réplication (appelés agents). L'illustration suivante donne une vue d'ensemble des composants et des processus impliqués dans la réplication. Source : ms-help://ms.vscc.v80/ms.vsipcc.v80/ms.sqlsvr.v9.fr/rpldata9/html/b9567832-e6a8-45b2-a3edea12aa002f4b.htm BTS iris - Lycée Eiffel - Armentières Page 3 sur 26 27/05/2008
4. Configuration de SQL server du site d Armentières 4.1. Introduction L exemple de ce chapitre n est pas une traduction complète de la vraie base du projet Tapiris 2008. Cet exemple ne sert qu à illustrer une réplication de base. 4.2. SQL server Management Studio Toute la configuration s effectuera dans le logiciel «SQL server Management Studio». Dans un premier temps, nous nous connecterons au serveur SQL en tant que «sa», l administrateur du serveur SQL (cf. Documentation sur l installation de SQL Server). BTS iris - Lycée Eiffel - Armentières Page 4 sur 26 27/05/2008
4.3. Création de la base TapirisArm Clic droit sur «Bases de données» > Nouvelle base Donnez le nom de la nouvelle base Créez une nouvelle table dans la base tapirisarm Donnez la structure de la table et enregistrez la table «TabArmSync» BTS iris - Lycée Eiffel - Armentières Page 5 sur 26 27/05/2008
Dans notre exemple, toutes les données de la table «TabArmSync» seront synchronisées sur les deux serveurs. On peut, sur le même principe, créez une table «TabArmNonSync» dont les données ne seront pas synchronisées sur l autre serveur SQL. Insertion de données dans les tables : Clic droit sur la table > Ouvrir la table 4.4. Création des utilisateurs SQL server : «Connexions» SQL Les connexions SQL correspondent aux autorisations d accès sur le serveur SQL. Chaque connexion, ou utilisateur, peut avoir des droits différents sur les différentes bases hébergées sur SQL server. Les connexions SQL (login + mot de passe) permettent : De se connecter à «SQL server Management Studio» D accéder par programme à une base SQL server Note importante : Puisqu on a installé SQL server en mode d authentification mixte, nous avons la possibilité de créer des utilisateurs de SQL server spécifiques (=mot de passe validés par SQL server), ou d autoriser certains utilisateurs «Windows» à accéder à SQL server (=mot de passe validés par Windows). BTS iris - Lycée Eiffel - Armentières Page 6 sur 26 27/05/2008
Pour créer une nouvelle connexion SQL : 4.4.1. Connexion SQL avec authentification Windows Dans notre cas, on choisit une authentification Windows pour permettre aux services de réplication de s exécuter avec les droits d un utilisateur Windows (cf. 6.2) BTS iris - Lycée Eiffel - Armentières Page 7 sur 26 27/05/2008
Privilèges de sécurité sur l ensemble du serveur : laissez le rôle «public» et ajouter «sysadmin» Aide Windows sur les rôles de serveur (dans Document Explorer) : ms-help://ms.sqlcc.v9/ms.sqlsvr.v9.fr/uirfsql9/html/a7ab86ed-215a-4bdd-9806-a861a6c1f5f3.htm Sélectionnez les bases de données auxquelles cette connexion peut accéder : cochez «tapirisarm» Sélectionnez les rôles (=les droits) pour l'utilisateur dans la base de données spécifiée. Tous les utilisateurs sont membres du rôle public de chaque base de données, qui ne peut pas être modifié. Cochez «public» et «db_owner» Aide Windows sur les rôles au niveau de la base de données (dans Document Explorer) : ms-help://ms.sqlcc.v9/ms.sqlsvr.v9.fr/udb9/html/7f3fa5f6-6b50-43bb-9047-1544ade55e39.htm BTS iris - Lycée Eiffel - Armentières Page 8 sur 26 27/05/2008
4.4.2. Connexion SQL avec authentification SQL server (Non réalisée dans notre exemple) 5. Configuration de SQL server du site de Roubaix 5.1. Configuration de SQL server Toute la configuration s effectuera dans le logiciel «SQL server Management Studio». La configuration peut s effectuer à distance en spécifiant le nom (ou l adresse) du serveur SQL distant (irisxp-p203) 5.2. Création d une base vide qui servira à la réplication Sur le serveur de Roubaix, créez une base de données «TapirisX» qui contiendra les futures données, issues de la réplication de «tapirisarm» du serveur d Armentières. Remarque : nous ne créons aucune table dans cette base, le processus de réplication s en chargera. 5.3. Création des utilisateurs SQL server : «Connexions» SQL 5.3.1. Connexion SQL avec authentification Windows (Non réalisée dans notre exemple) BTS iris - Lycée Eiffel - Armentières Page 9 sur 26 27/05/2008
5.3.2. Connexion SQL avec authentification SQL server Créez une nouvelle connexion SQL «user203» utilisée par la réplication (cf. 6.2). BTS iris - Lycée Eiffel - Armentières Page 10 sur 26 27/05/2008
BTS iris - Lycée Eiffel - Armentières Page 11 sur 26 27/05/2008
6. Mise en place de la réplication par fusion La réplication par fusion met en œuvre plusieurs services. Service de Publication des données à synchroniser Service de Distribution Service d abonnement aux données synchronisées (PUSH) Nous créerons la réplication à partir d un poste d Armentières en utilisant «SQL Server Management Studio» et en se connectant à distance aux deux serveurs SQL. Server SQL d Armentières Server SQL de Roubaix BTS iris - Lycée Eiffel - Armentières Page 12 sur 26 27/05/2008
6.1. Services de Publication et de Distribution sur Armentières Remarque : SQL Server Agent doit être démarré Voici les différentes taches accomplies par l «Assistant Nouvelle publication» : Configuration de la distribution : Décrit l'identification et la configuration du serveur de distribution et du serveur de publication. Publication de données et d'objets de base de données : Décrit la création d'une publication et la définition des données et des objets de bases de données de la publication, le paramétrage des options et au besoin, l'application des filtres. Synchronisation des données : Décrit comment spécifier les options pour la synchronisation qui se produit lorsque l'agent de distribution ou l'agent de fusion s'exécute, et que les mises à jour sont propagées entre le serveur de publication et les abonnés. BTS iris - Lycée Eiffel - Armentières Page 13 sur 26 27/05/2008
Vous pouvez changer l emplacement de stockage des captures instantanées BTS iris - Lycée Eiffel - Armentières Page 14 sur 26 27/05/2008
Sélectionnez la table à synchroniser BTS iris - Lycée Eiffel - Armentières Page 15 sur 26 27/05/2008
La table à synchroniser doit avoir un champ UniqueIdentifier (l assistant l ajoute automatiquement s il n existe pas) BTS iris - Lycée Eiffel - Armentières Page 16 sur 26 27/05/2008
Entrez le compte Windows sous lequel l'agent de capture instantanée s'exécute sur le serveur de distribution. Le compte Windows que vous définissez doit : être au minimum membre du rôle de base de données fixe db_owner dans la base de données de distribution ; pouvoir écrire dans le partage de fichiers de captures instantanées D:\temp BTS iris - Lycée Eiffel - Armentières Page 17 sur 26 27/05/2008
BTS iris - Lycée Eiffel - Armentières Page 18 sur 26 27/05/2008
Heureux? 6.2. Service d abonnement sur Roubaix Voici les différentes taches accomplies par l «Assistant Nouvel Abonnement» : Abonnement à des publications : Décrit la création d'abonnements par envoi de données (push) et par extraction de données (pull), ainsi que la façon de spécifier les planifications de synchronisation et de définir d'autres options. Initialisation d'un abonnement : Décrit comment initialiser l'abonné. Nous créerons le nouvel abonnement à partir d un poste d Armentières en utilisant «SQL Server Management Studio» et en se connectant à distance au serveur SQL de Roubaix«irisxp-p203». Créez un nouvel abonnement sur le serveur SQL de Roubaix (abonnement à la publication du serveur SQL d Armentières) BTS iris - Lycée Eiffel - Armentières Page 19 sur 26 27/05/2008
Connectez-vous au serveur de publication (Armentières) en utilisant le compte «sa» et choisissez la publication désirée. Choisissez la base de données vide créée sur le serveur de Roubaix. BTS iris - Lycée Eiffel - Armentières Page 20 sur 26 27/05/2008
L'Agent de fusion s'exécute sur le serveur de distribution (Armentières) pour les abonnements envoyés (PUSH). L agent de fusion doit s exécuter sous le compte Microsoft Windows «ARMBET\b30». Ce compte doit au moins posséder le rôle db_owner sur la base de données de distribution «TapirisArm». Lorsque l Agent de fusion (Armentières) doit se connecter à l Abonné (Roubaix), il utilise la connexion SQL «user203». Cette connexion doit au moins posséder le rôle db_owner sur la base de données d abonnement «TapirisX». BTS iris - Lycée Eiffel - Armentières Page 21 sur 26 27/05/2008
Résumé de la configuration précédente Planification des mises à jour. Permet d initialiser immédiatement la base TapirisX (structures, données, ) BTS iris - Lycée Eiffel - Armentières Page 22 sur 26 27/05/2008
La réplication de fusion propose deux types d'abonnement : l'abonnement serveur et l'abonnement client. Les abonnés disposant d'un abonnement serveur peuvent republier des données à d'autres Abonnés. Aide Windows sur les types d abonnement (dans Document Explorer) : ms-help://ms.sqlcc.v9/ms.sqlsvr.v9.fr/uirfsql9/html/9a50f588-ee45-4a87-826f-372ff0798587.htm BTS iris - Lycée Eiffel - Armentières Page 23 sur 26 27/05/2008
Encore plus heureux? BTS iris - Lycée Eiffel - Armentières Page 24 sur 26 27/05/2008
6.3. Contrôle avec SQL server Management A la première synchronisation, la table dbo.tabarmsync est créée dans la base TapirisX. ATTENTION : Dans SQL Server Management Studio, il faut actualiser l affichage au niveau de irisxp-p203 (clic droit > Actualiser) Vérifiez que la synchronisation s effectue correctement dans les deux sens. BTS iris - Lycée Eiffel - Armentières Page 25 sur 26 27/05/2008
7. En cas de problème Si vous rencontrez des problèmes pour configurer la réplication ou que celle-ci ne fonctionne pas, il faut respecter scrupuleusement les consignes suivantes : 1. Supprimer l abonnement sur le serveur de publication (Armentières) Clic droit > Supprimer 2. Supprimer la publication sur le serveur de publication (Armentières) 3. Supprimer la base TapirisX (Roubaix) 4. Recréer la base TapirisX (Roubaix) 5. Redéfinir le «mappage de l utilisateur» user203 sur la base TapirisX (Roubaix) 6. Reprendre la procédure de réplication au départ : publication et abonnement BTS iris - Lycée Eiffel - Armentières Page 26 sur 26 27/05/2008