Base de données II Module 3b Bases de données répliquées Environnement Oracle et SQL Server Eddy.Meylan@hegne.ch E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 1
Plan du module Présentation d environnements de réplication de différents constructeurs Approche Oracle Approche SQL Server Résolutions de conflits de copies divergentes Approche Oracle E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 2
Réplication dans Oracle L environnement de réplication Oracle permet la réplication des objets suivants: Tables Indexes Vues Packages et corps de Package Procédures et Fonctions Types définis par l'utilisateur et corps de types Déclencheurs Synonymes E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 3
Types de réplication Oracle offre 3 types de réplication. Réplication multi-maîtres Multimaster Replication Réplication par cliché Materialized View Replication Réplication hybride Combinaison des deux autres types E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 4
Réplication multi-maîtres Permet à plusieurs sites de gérer des groupes d'objets répliqués dans plusieurs bases de données en communiquant ensemble et en agissant d'égal à égal Elle est également appelée réplication "peer-to-peer " Chaque site peut mettre à jour les données sur n'importe quel autre site participant à la réplication.» La réplication multimaîtres nécessite la version Oracle Enterprise Edition Oracle Standard Edition" ne supporte que la configuration d'un seul site maître. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 5
Schéma de principe de la réplication multi-maîtres E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 6
Caractéristiques de la réplication multi-maîtres On opte pour ce mode de réplication dans les cas suivants: Les données sont mises à jour dans des intervalles courts. Il n'est pas acceptable d'avoir des copies de données qui ne sont pas mises à jour dans un délai assez court. Les mises à jour se font depuis plusieurs sites. Le volume de données est grand. Les réplicats sont complets et non partiels. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 7
Réplication par cliché Un cliché (également appelé snapshot) est une copie totale ou partielle de données à un moment donné. Appelée aussi Materialized View Replication Le cliché peut être rafraîchi manuellement à la demande ou automatiquement en utilisant un programmateur.» La réplication par cliché nécessite l'une des versions Oracle Enterprise Edition Oracle Standard Edition Oracle Personal Edition E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 8
Schéma de principe de la réplication par cliché E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 9
Caractéristiques de la réplication par cliché On opte pour ce type de réplication dans les cas suivants: Les données sont principalement statiques et ne changent pas souvent. Il est acceptable d'avoir des copies de données qui ne sont pas à jour. La réplication concerne des petits volumes de données. Les sites sont souvent déconnectés. Stockage des agrégats dans des entrepôts de données. Les données sont mises à jour dans des intervalles plus longs. Les réplicats peuvent être partiels. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 10
Clichés modifiables Il est possible de créer des updatable Materialized view qui vont permettre aux utilisateurs d'insérer, de mettre à jour et de supprimer des tuples de la table de base sur le master site au travers du réplicat. Il faut ajouter la clause FOR UPDATE lors de la création pour qu'elle devienne une relation modifiable. Utilise un journal pour les mise à jour du cliché modifiable E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 11
Rafraîchissement de cliché modifiable Execute fast refresh Cliché modifiable Active la queue de transaction différée pour mettre a jour le site maître Utilise le log pour identifier les m.a.j de la table maitre Propage les m.a,j identifiées Fin du refresh fast E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 12
Rafraîchissement des updatable materialized view Les updatable Materialized view permettent d'interroger et de mettre à jour les données locales. Elles permettent d'augmenter la sécurité des données en ne répliquant qu'un sous-ensemble des données de la table de base. Elles nécessitent un environnement de réplication complet pour être rafraîchies!!! E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 13
Réplication hybride La réplication hybride est un environnement dans lequel cohabitent les deux formes de réplications précédentes: cliché et multi-maîtres. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 14
Environnement répliqué Pour mettre en place un environnement répliqué, il faut construire divers objets dans les bases de données. On parlera tout d abord de site maître pour la base de données principale, alors que la base de données servant de réplication s appelle un site cliché. L environnement répliqué supporte tous les types de réplication Symétrique / Asymétrique Synchrone / Asynchrone E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 15
Mécanisme de réplication synchrone E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 16
Mécanisme de réplication asynchrone E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 17
Préparation de la réplication La préparation consiste à configurer correctement l'ensemble des étapes nécessaires, des objets répliqués et des processus de propagation et de purge des transactions Administrateurs de réplication BD1 Propagation des transactions Groupe de réplication Database link BD2 BD2 Purge des transactions Groupe de réplication Purge des transactions Propagation des transactions Database link BD1 E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 18
L'administrateur de réplication L'administrateur de réplication est un utilisateur créé sur chaque base de données participant à la réplication. Il a pour rôle la gestion de l'environnement de réplication. Il doit disposer des privilèges nécessaires pour gérer la réplication. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 19
Exemple de création d un administrateur Connexion en tant que DBA system par exemple CREATE USER USER repadmin IDENTIFIED BY BY repadmin; BEGIN BEGIN DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA( username => => 'REPADMIN'); END; END; / GRANT GRANT COMMENT ANY ANY TABLE TABLE TO TO repadmin; GRANT GRANT LOCK LOCK ANY ANY TABLE TABLE TO TO repadmin; GRANT GRANT SELECT ANY ANY DICTIONARY TO TO repadmin; GRANT GRANT EXECUTE ANY ANY PROCEDURE TO TO repadmin; E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 20
Propagateur et receveur Le propagateur est l'utilisateur responsable de la propagation des transactions déférées d'un site maître vers un autre site maître. Cette tâche peut être confiée à l'administrateur de la réplication "repadmin". Le receveur est l'utilisateur qui reçoit les transactions déférées envoyées par les propagateurs des autres sites. Cette tâche peut être confiée à l'administrateur de la réplication "repadmin". E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 21
Exemple -- -- Propagateur BEGIN BEGIN DBMS_DEFER_SYS.REGISTER_PROPAGATOR( username => => 'REPADMIN'); END; END; / --Receveur BEGIN BEGIN DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP ( username => => 'REPADMIN', privilege_type => => RECEIVER', list_of_gnames => => NULL); END; END; / E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 22
Les liens de bases de données (database link) Un lien de base de données est une adresse (pointeur) qui définie un chemin unidirectionnel d'une base de données vers une autre Les liens de bases de données constituent le concept central dans un environnement de bases de données distribuées ou répliquées. Les liens de bases de données peuvent être privés ou publics. Les liens privés ne peuvent être utilisés que par l'utilisateur qui les a créés. Les liens publics sont accessibles à tous les utilisateurs de la base de données. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 23
Purge des transactions accomplies Afin de maintenir la taille de la queue des transactions déférées et accomplies dans des proportions contrôlables, la programmation d'une purge automatique s'avère nécessaire. Connect repadmin/repadmin@bd1; BEGIN BEGIN DBMS_DEFER_SYS.SCHEDULE_PURGE( next_date => => SYSDATE, interval => => '/*1 '/*1 min min */ */ sysdate + 1/(60*24)', delay_seconds => => 0, 0, rollback_segment => => ''); ''); END; END; / E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 24
Propagation des transactions Il s'agit de définir la fréquence de propagation des transactions d'un site vers l'autre. Connect repadim/repadmin@bd1; BEGIN BEGIN DBMS_DEFER_SYS.SCHEDULE_PUSH( destination => => 'BD2', interval => => '/*1 '/*1 min*/ min*/ sysdate + 1/(60*24)', next_date => => SYSDATE, stop_on_error => => FALSE, delay_seconds => => 0, 0, parallelism => => 0); 0); END; END; / E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 25
Notion de site maître Un site maître qui représente la base de donnée principale. Oracle utilise la terminologie MASTER SITE Tous les sites maître communiquent directement avec les autres afin de propager les données et les mises à jour. Dispose d objets pour contrôler la propagation E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 26
Notion de site cliché Un site cliché qui va contenir des copies complètes ou partielles des objets du site maître. Oracle utilise la terminologie SNAPSHOT SITE Le site cliché supporte généralement des copies en lectures seules Le site cliché peut contenir des copies qu'il est possible de mettre à jour (UPDATABLE SNAPSHOT) pour autant qu'elles appartiennent à un groupe de clichés SNAPSHOT GROUP E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 27
Site de définition principal Il s'agit d'un site choisi parmi les sites participant à la réplication pour effectuer des tâches d'administration de la réplication. Même si dans un environnement multi-maîtres appelé également "Peer-to-Peer", il n'existe aucune hiérarchie entre les sites et aucune importance d'un site par rapport à l'autre, il existe néanmoins la notion de "site de définition principal". Par défaut, le site de définition principal est le site depuis lequel le groupe de réplication a été créé. On peut, toutefois, déclarer un site comme étant site de définition principal à tout moment. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 28
Groupes de réplications Dans un environnement répliqué, Oracle gère les objets de réplication avec des groupes de réplication Un groupe de réplication est une collection d objet de réplication qui ont un lien logique entre eux Les objets d un groupe de réplication sont administrés ensemble. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 29
Groupe et schéma Un groupe ne correspond pas forcément à un schéma. Un groupe peut contenir des objets provenant de plusieurs schémas et les objets d un schéma peuvent appartenir à plusieurs groupes de réplication. La seule restriction réside dans le fait qu'un objet ne peut appartenir qu'à un et un seul groupe de réplication. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 30
Groupes maîtres Les groupes de réplication maîtres sont appelés MASTER GROUP Les objets d'un groupe peuvent provenir de plusieurs bases de données. La seule restriction est qu'un objet répliqué ne peut appartenir qu'à un seul groupe. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 31
Groupes clichés Sur un site cliché, les groupes peuvent contenir une copie partielle ou complète des objets du group maître cible. Tandis que la réplication sur un site maître doit contenir une copie exacte des objets de la base de données. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 32
Liens entres groupes maîtres et clichés E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 33
Groupe de rafraîchissement Afin de pouvoir effectuer des rafraîchissements, il est indispensable de créer des refresh group sur un master site ou un snapshot site. Lorsque des mises à jour auront été effectuées, il suffira d'attendre le rafraîchissement automatique ou alors d'exécuter une procédure qui effectuera un rafraîchissement manuel de tous les objets du groupe. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 34
Groupe de rafraîchissement E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 35
Ajout d'un site à la réplication Cette action permet d'ajouter des sites à l'environnement de réplication en précisant le nom du site et le groupe de réplication. Elle doit être lancée depuis le site de définition principal. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 36
Objets de réplication Tout objet devant participer à la réplication doit être ajouté au groupe de réplication. Tout objet ajouté au groupe de réplication nécessite la génération du support de réplication. Le support de réplication est l'ensemble des triggers et des pacakages générés par Oracle pour assurer la réplication de l'objet spécifié. Si une table contient des clés étrangères, Oracle recommande de les indexer et de répliquer ces index. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 37
Création du MASTER SITE Créer l administrateur de réplication Utilisateur et enregistrement de administrateur Création du propagateur Le propagateur est responsable de propager les transactions différées aux autres sites. Création de la purge de programmateur Purge complètement les transactions différées des sites maîtres et des sites clichés, afin de garder une taille normale de la file d attente. Création des groupes et placement des objets à répliquer E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 38
Création du SNAPSHOT SITE Créer l administrateur de réplication Enregistrement du propagateur Enregistrement du receveur Création de la purge du programmateur Création du «valideur» de transaction différées Création des snapshot groupes E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 39
Plan du module Présentation d environnements de réplication de différents constructeurs Approche Oracle Approche SQL Server Résolutions de conflits de copies divergentes Approche Oracle E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 40
Réplication dans SQL Server SQL serveur permet de répliquer : Tables Index Vues Procédures et fonctions Les triggers E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 41
Concept global de réplication SQL Server E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 42
L'éditeur (Publisher) L'éditeur est un serveur qui détient les données répliquées et les met à disposition de la réplication vers d'autres serveurs. L'éditeur peut contenir une ou plusieurs publications. L'éditeur détecte les changements des données dans une réplication transactionnelle. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 43
Le distributeur (Distributor) Le distributeur est un serveur qui héberge la base de données de distribution et stocke l'historique des données. Le distributeur peut être un serveur séparé de l'éditeur, on parle alors de "distributeur distant". Si l'éditeur et le distributeur seraient sur le même serveur, on parle de "distributeur local". Le rôle du distributeur varie selon le type de réplication E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 44
Le rôle du distributeur Réplication par cliché Stock temporairement les transactions Héberge la plupart des agents de réplication Stocke les méta-données Stock l'historique des données. Réplication transactionnelle Héberge la plupart des agents de réplication. Stock les méta-données Stock l'historique des données. Réplication par fusion Stock les méta-données Stock l'historique des synchronisations. Héberge l'agent des clichés Héberge l'agent de la fusion pour les abonnement de type "push". E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 45
Abonné (Subscriber) L'abonné est un serveur qui reçoit les données répliquées. L'abonné s'abonne aux publications et non individuellement aux articles qui forment la publication. Selon le type de réplication, l'abonné peut également propager les modifications des données vers l'éditeur ou les republier vers d'autres abonnés. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 46
Publication La publication est une collection d'articles d'une base de données. Les publications sont crées chez l'éditeur. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 47
Article Un article est tout objet de la base de données apte à être répliqué. Il peut s'agir d'une table entière ou uniquement de certaines colonnes (filtre vertical) ou de certaines lignes (filtre horizontal). Un article peut être également une procédure stockée, une vue, une fonction ou une vue indexée. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 48
Abonnement Un abonnement est une demande d'une copie de donnée ou de réplication des objets de bases de données. Un abonnement définit quelle va être la publication contenant les données, où et quand. La synchronisation ou la distribution des données peut être demandée soit par l'éditeur (Abonnement "Push") ou par l'abonné (abonnement "Pull"). E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 49
Abonnement "Push" Un abonnement "Push" est créé et administré chez l'éditeur. Les données sont propagées depuis l'éditeur vers les abonnés sans que ces derniers en fassent la demande. Il permet de simplifier et de centraliser l'administration car il n'y a pas besoin d'administrer individuellement chaque abonnement. L'agent de distribution et l'agent de fusion s'exécutent sur le distributeur lorsqu'un abonnement "Push" est synchronisé. Ce type d'abonnement est conseillé tant que les performances ne sont pas atteintes. En effet un grand nombre d'abonnement gérés à un même endroit (distributeur) peut faire baisser fortement les performances. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 50
Abonnement "Pull" Un abonnement "Pull" est créé et administré chez l'abonné. L'abonné demande les données et les mises à jour survenues chez l'éditeur. Ce type d'abonnement permet aux utilisateurs de l'abonné de se déconnecter, d'être mobiles et de décider librement quand leurs données doivent être synchronisés. L'administration est décentralisée et a lieu chez l'abonné. L'agent de distribution et l'agent de fusion s'exécutent chez l'abonné lorsqu'un abonnement "Pull" est synchronisé. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 51
Abonnement anonyme Il s'agit d un cas particulier de l'abonnement "Pull" où les données concernant l'abonné et l'abonnement ne sont pas stockées chez l'éditeur ou le distributeur. Il est utilisé principalement pour le grand nombre d'abonnements faits depuis Internet et pour lesquels il n'a pas été jugé utile de garder des informations chez l'éditeur ou le distributeur. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 52
Réplication par cliché (Snapshot) Un cliché est une photo instantanée d'un ensemble de données à un moment donné. Les données ne sont pas rafraîchies de façon partielle. A chaque synchronisation, c'est le cliché entier donc l'ensemble des données qui sont rafraîchies. Les données étant rafraîchies en totalité, la synchronisation peut prendre un certain temps. Les synchronisations dans ce type de réplication ne sont souvent pas très fréquentes et sont généralement lancées à la demande. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 53
Réplication par cliché (Snapshot) Ce type de réplication est utile dans les cas suivants: Les données sont principalement statiques et ne changent pas souvent. Il est acceptable d'avoir des copies de données qui ne sont pas à jour. La réplication concerne des petits volumes de données. Les sites sont souvent déconnectés.» La réplication par cliché nécessite les versions de SQL Server 2000 "Personal Edition" ou "Enterprise Edition". E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 54
Réplication par cliché (Snapshot) E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 55
Réplication transactionnelle La réplication transactionnelle permet de rafraîchir les données de façon partielle. Le concept est basé sur la propagation d'un cliché initial, sur la capture des transactions survenue par la suite chez l'éditeur et sur leur propagation vers les abonnés. SQL Server stocke les transactions touchant les objets répliqués et propagent les modifications des données vers les abonnés en respectant si possible les transactions. La propagation se fait de manière continue (en temps réel) ou en utilisant un programmateur (en différé). E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 56
Réplication transactionnelle On opte pour ce type de réplication dans les cas suivants: La propagation des données vers les abonnés se fait à un rythme avoisinant le temps réel. Les propriétés ACID des transactions doivent être respectées. A noter que les transactions ne peuvent être gardés que si la réplication est synchrone.» La réplication transactionnelle nécessite la version SQL Server 2000 "Enterprise Edition". E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 57
Réplication transactionnelle E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 58
Réplication par fusion La réplication par fusion permet à plusieurs sites d'être autonomes, connectés ou déconnectés de l'éditeur et de fusionner par la suite les modifications de leurs données vers un résultat uniforme. Le concept est basé sur la propagation d'un cliché initial et sur le suivi des modifications des données publiées chez l'éditeur et chez les abonnés. Les données sont synchronisés entre les serveurs à la demande ou sur la base d'un programmateur. Etant donné que les mises à jour des mêmes données sont possibles sur plus d'un serveur, des conflits de convergence des données peuvent surgir. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 59
Réplication par fusion On opte pour ce type de réplication dans les cas suivants: Plusieurs abonnés ont besoin de mettre à jour les données à des temps différents et de propager leurs modifications vers l'éditeur ou vers d'autres abonnés. Les abonnés ont besoin de recevoir les données, de les modifier en étant déconnectés et de synchroniser plus tard les modifications avec l'éditeur ou avec d'autres abonnés. L'autonomie du site est un facteur déterminant E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 60
Réplication par fusion E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 61
Préparation de la réplication Editeur et distributeur local Administrateurs de réplication ServeurBD1 Agent de fusion Publication dans BD1 Articles Agent SQL Server Agent de distribution Synchronisation: Download Synchronisation: Upload ServeurBD2 Agent SQL Server Abonnement dans BD2 E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 62
L'administrateur de réplication Bien que la gestion des tâches de réplication puisse être confiée à l'utilisateur le plus privilégié dans SQL Server 2000 "sa", il convient de créer un utilisateur et de lui donner les droits nécessaires. Il est en effet préférable de clarifier la gestion des bases de données et de ne pas tout administrer depuis un seul login. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 63
Liens entre serveurs Dès le moment où un serveur SQL server 2000 est ajouté à un groupe de serveurs administré depuis une même console, les liens entre serveurs deviennent implicites. Toutefois, vu que cette reconnaissance implicite n'est valable que pour les serveurs de bases de données SQL server, il convient de déclarer explicitement un lien entre les serveurs à chaque fois que 2 serveurs hétérogènes doivent communiquer. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 64
Liens entre serveurs E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 65
Filtrage avant publication Filtrage des colonnes SQL Server permet de filtrer les colonnes d'une table participant à la publication. L'utilisateur peut ainsi filtrer verticalement et faire des projections pour ne publier qu'une partie des colonnes de la table. Filtrage des lignes Ce filtre permet de faire des sélections de lignes et de ne publier qu'une partie des enregistrements d'une table. Si le filtre utilisé dépend d'une autre table publiée, SQL Server permet de créer une jointure entre les deux tables. Filtrage mixte des lignes et des colonnes: SQL Server permet de publier uniquement une sélection de lignes de certaines colonnes. Il s'agit donc d'un filtre qui regroupe les deux cités auparavant. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 66
Filtrage des colonnes E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 67
Filtrage des lignes E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 68
Filtrage mixte des lignes et des colonnes E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 69
Plan du module Présentation d environnements de réplication de différents constructeurs Approche Oracle Approche SQL Server Résolutions de conflits de copies divergentes Approche Oracle E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 70
Gestion des conflits dans Oracle L'environnement de réplication symétrique asynchrone est très propice à la génération des conflits. Le fait d'autoriser les mises à jour concurrentes des mêmes données sur plusieurs sites et les propager d'un site à l'autre, conduit inévitablement au risque de non-convergence des données entre les sites participant à la réplication. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 71
Exemple: modification d'une adresse e-mail les données sont dans un état convergent. T BD1 BD2 08h00 a@client.com a@client.com 08h30 b@client.com 09h00 c@client.com 09h30 Propagation b@client.com 10h00 c@client.com Propagation Résultat: le client a comme adresse email c@client.com dans BD1 et b@client.com dans BD2. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 72
Nombre de participants Les exemples illustrent un cas simple de conflits dans un environnement à 2 sites seulement. Si on avait un grand nombre de sites maîtres participant à ce type de réplication, la fréquence d'apparition des conflits de cette sorte risque d'augmenter fortement. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 73
Concept de résolution des conflits Si un conflit est détecté et si aucune méthode n'a été définie pour le résoudre, Oracle retourne une erreur. Si une seule méthode a été définie pour le résoudre, le conflit est considéré résolu si la méthode retourne 'Vrai'. Si elle retourne 'Faux', Oracle traite le conflit comme étant non résolu et une erreur est déclenchée. Si plusieurs méthodes ont été définies pour le résoudre, Oracle exécute les méthodes dans l'ordre défini par le paramètre 'Sequence' défini lors de la création de la méthode. Aussitôt une méthode retourne 'Vrai', le conflit est réputé résolu et le processus terminé. Si toutes les méthodes ont été exécutées et si elles ont toutes retourné 'Faux', le conflit est considéré comme non résolu et Oracle déclenche une erreur. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 74
Détection des conflits de mise à jour (Update): Détection des conflits par comparaison de la valeur d'origine du site source et la valeur actuelle du site de destination. Lors de la propagation, le site source détecte un conflit si la valeur originale du site de destination est différente de la valeur actuelle du site source. L'erreur signalée sur le schéma est l'exception 'ORA- 01403: Aucune donnée trouvée' retournée par Oracle. E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 75
Exemple de détection des conflits de mise à jour T BD1 BD2 09h30 Tentative de propagation de b@client.com Erreur! Valeur d'origine dans BD2 Nouvelle valeur dans BD2 Valeur actuelle dans BD1 Valeur d'origine dans Nouvelle valeur dans Valeur actuelle dans a@client.com c@client.com b@client.com BD2 BD2 BD1 10h00 Erreur! Tentative de propagation de c@client.com Valeur d'origine dans BD1 BD2 Nouvelle valeur dans BD1 BD2 Valeur actuelle dans BD2 BD1 Valeur d'origine dans Nouvelle valeur dans Valeur actuelle dans a@client.com b@client.com c@client.com BD2 BD2 BD1 E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 76