Vous êtes sur la page 1sur 13

02/02/2021

Bases des données réparties

Applications sous Oracle

Et le placement des fragments ?

• Chaque fragment sur un seul site


– copie unique, BD partitionnée

• Duplication de fragments
– (+) performances des requêtes et disponibilité
PLAY
– (-) coût des mises à jour et contrôle de concurrence plus complexe

• Fréquemment : duplication partielle

1
02/02/2021

Réplication des données

• Réplica ou copie de fragments (H/V) table


dans une BD qui Seront transféré vers une autre
BD ( Copie primaire, copies secondaires).

• Transparence
–Les applications clientes croient à PLAY
seule copie des données
manipulent:
• soit « logique » dans le cas vue
• soit physique

Objectifs généraux

– Fragmentation
• Favoriser les accès locaux
• Équilibrer la charge de travail entre les sites

– Duplication
• Favoriser les accès locaux PLAY
• Augmenter la disponibilité des données

2
02/02/2021

Problèmes de la réplication

Servitudes de mise à jour : le système doit garantir la


cohérence des répliques avec maj. Sur toutes les répliques
(gestion alourdit).

Convergence
les copies doivent être maintenues à jour à un instant donné, elles
peuvent être différentes.
mais elles doivent converger vers un même état cohérent où toutes les
mises à jour sont exécutées partout dans le même ordre. PLAY
Transparence : le SGBD doit assurer
la diffusion et la réconciliation des mises à jour
la résistance aux défaillances

Réplication: Principe

• Le principe de la réplication, qui met en jeu au


minimum deux SGBD, est assez simple et se déroule en
trois temps :
1. La base maître reçoit un ordre de mise à jour
(INSERT, UPDATE ou DELETE).
2. Les modifications faites sur les données sont
PLAY
détectées et stockées (dans une table, un fichier,
une queue) en vue de leur propagation.
3. Un processus de réplication prend en charge la
propagation des modifications à faire sur une
seconde base dite esclave. Il peut bien entendu y
avoir plus base esclave.

3
02/02/2021

PLAY

Bases de données répliquées

• Copies maîtres multiples

• Copies esclaves modifiables


PLAY

• Configuration hybride ( A la fois des copies


maîtres et esclaves)

4
02/02/2021

La réplication synchrone asymétrique

– Une modification sur le site primaire sera propagée aux sites


secondaires.. La table est modifiée en temps réel sur les autres
sites, ces modifications faisant parties de la transaction.

PLAY

La réplication synchrone symétrique

– Pas de table maître!!


– Définir des priorités et de gérer les blocages des tables en
attendant qu’une modification soit entièrement propagée.
– Différencier les mises à jour issues d’une réplication des
mises à jour de requête directe.
PLAY

5
02/02/2021

La mise à jour asynchrone


• Ce type de réplication est plus flexible que la réplication synchrone
– Définir les intervalles de synchronisation, ce qui permet à un site de fonctionner même si
un site de réplication n’est pas accessible.
– L’utilisateur peut ainsi déclarer que la synchronisation sera effectuée la nuit, à une heure
de faible affluence.
– Si le site distant est victime d’une panne, l’absence de synchronisation n’empêche pas la
consistance de la base maître.
– De même une panne de réseau laissera les deux bases, maître et esclave dans des états
de consistance. Les opérations sur les données sont plus rapides, puisqu’une requête
PLAY
n’est pas immédiatement déployée. Le trafic sur le réseau est de ce fait plus compact.

– Par contre, le planning de réplication est dans ce cas plus complexe, puisqu’il s’agit de
gérer les conflits émanant d’un éventuel accès en écriture sur une base esclave
entre deux mises à jour.

La réplication asynchrone asymétrique

– Les mises à jour sont stockées dans une file d’attente et ne seront
propagées que lors d’un déclenchement programmé.

PLAY

6
02/02/2021

La réplication asynchrone symétrique

– Toute modification sur toute table de toute base est


stockée dans une file pour être rejouée
ultérieurement. De fortes incohérences des données
sont à craindre.
PLAY

• Pratique
PLAY

7
02/02/2021

Architecture Oracle pour la distribution

• En mode distribué,
chaque système est un
nœud pouvant jouer le
rôle de client ou de
serveur.

• Un utilisateurPLAYpeut
être connecté
directement ou
indirectement à une
base.

Transparence vis-à-vis la fragmentation

• Vue -virtuelle-
• Cas de sélection
• Modification (U, I, D)
• En cas de restriction
• Alternatives: trigger PLAY

8
02/02/2021

La réplication avec ORACLE

Il y a 3 modes de réplication:

• Asynchrone (read only) à intervalles réguliers avec un


déclencheur externe (exemple : horloge): snapshots ou VM

• Synchrone read only : dès modification de la copie primaire.


PLAY
• Synchrone read/write: la plus complexe, car tout changement
d'une copie quelconque est transmis immédiatement aux autres
répliques,.

Création de Snapshot / Vues Matérialisées

VUES MATERIALISEES (revoir le chapitre vu dans le


cours d’optimisation)

CREATE MATERIALIZED VIEW <nom_VM>


REFRESH NEXT SYSDATE + DT
AS Query@<db_link_name>

PLAY

Query_rewrite

9
02/02/2021

Triggers (déclencheurs)

• Un trigger est programme stocké dans le DD, et


déclenché automatiquement par des événements liés à
des actions sur la base. Les événements déclencheurs
peuvent être les commandes LMD (Insert, Update,
Delete) ou les commandes LDD (Create, Alter, Drop).

PLAY

Gestion des contraintes distribuées

• Types de contraintes
– Domaine
– Unicité
– Intégrité référentielle


– Dans la définition des tables (principalement)
PLAY
• Le côté manuel de la distribution limite les possibilités de gestion
des contraintes
– Utilisation de vues >> pas de contraintes

10
02/02/2021

Exemples

• Check / NOT NUL


– Se gère par fragment
• Unicité
– Gérable par fragment
– Globalement ? Réplication OK, Fragmentation KO
– Utilisation de trigger
– Site maître pour numérotation >> perte autonomie
• Intégrité Référentielle
– Pas géré en inter-bases
PLAY
– Réplication OK, Fragmentation KO
– Utilisation trigger
• Ca devient vraiment lourd à gérer…

Notion de liens sous Oracle

• Pour faciliter l'accès à une autre base, Oracle permet la


définition de liens :
– entre une base et une autre
– dans un sens unique de liaison

CREATE DATABASE LINK E;NSAT.ServeurInstanceBD PLAY


• Après cette déclaration, un utilisateur peut manipuler des
données distribuées dans une requête SQL.
une session de base de données dans la base distante au nom de la requête
applicative locale.

11
02/02/2021

Lien de Base de données: Oracle

• Syntaxe: Oracle

PLAY

Liens BD : notions avancées

• 3 types de liens (savoir en tant que quel utilisateur Oracle


l'utilisateur du dblink sera reconnu dans la base de données
distante.)
– Current user
• Si lien utilisé à partir de procédure, identification en temps que propriétaire de la
procédure

– Fixed user PLAY


• Utilisateur fixe.

– Connected user
• Mode de base : même utilisateur en local et distant
• Ce n’est pas nécessairement le créateur du lien

12
02/02/2021

Exemples

CREATE DATABASE LINK lien_ET USING ‘etud’;

CREATE DATABASE LINK lien_ET CONNECT TO ginf2


IDENTIFIED BY ginf2pw USING ‘etud’;

CREATE DATABASE LINK lien_ET CONNECT TO PLAY


CURRENT_USER USING ‘etud’;

Remarque : USING -> nom du service! (voir le nom du service )

Liens BD : notions avancées

• Visibilité :
– Public
o Pratique si utilisé par un grand nombre d’utilisateurs

– Private (défaut)
o + sécurisé, accessible uniquement au propriétaire ( créateur du lien) et à
ses sous-programmes PLAY

– Global
o Accessible de n’importe quelle base, mais suppose une gestion centrale
(directory server)

13

Vous aimerez peut-être aussi