Introduction à Oracle Streams

Oracle Streams Ajouter un commentaire

Oracle Streams est une fonctionnalité standard d’Oracle (depuis la version 9i) qui permet de répliquer des données, d’une base source vers une ou plusieurs bases destination.

Et ce avec différents niveau de granularité :

  • réplication de table(s)
  • de schema(s)
  • de base complète

sachant que chaque niveau peut lui même être affiné en le filtrant par des règles…

Comment fonctionne Oracle Streams

Oracle Streams s’appuie sur 3 processus distincts :

  • la capture : sur la db source, intercepte toutes les modifications faites sur les données (via les redo logs) et les transforme en enregistrements logiques (Logical Change Record ou LCRs). CEs LCRs sont empilés dans une queue de messages,
  • la propagation : entre db source et destination, transporte ces LCRs et les empile dans une queue de messages
  • l’application (apply process) : sur la db destination, qui dépile les messages, les transforme et répercute les modifications sur les données cibles.

streams_capture

détail d’une capture

streams_propagation

détail de la propagation

Techniquement, la configuration et la mise en oeuvre d’Oracle Streams se fait avec un nombre restreint de procédures du package PL/SQL standards DBMS_STREAMS_ADM. Ce package permet :

  • la gestion des queues de messages (procédure DBMS_STREAMS_ADM.SETUP_QUEUES, DBMS_STREAMS_ADM.REMOVE_QUEUES
  • la gestion des règles de filtrage (procédures DBMS_STREAMS_ADM.ADD_%_RULES)
  • (procedures DBMS_STREAMS_ADM.MAINTAIN_GLOBAL, DBMS_STREAMS_ADM.MAINTAIN_SCHEMA, DBMS_STREAMS_ADM.MAINTAIN_TABLES,…)

Quelques utilisations d’Oracle Streams

Oracle streams peut être utilisé notamment pour les sctions suivantes :

  • réplication automatique de données
  • chargement d’infocentre / entrepot de données
  • sauvegarde de données
  • audit
  • gestion de piles de messages

Surveillance d’Oracle STreams

On peut également, administrer une partie de Streams avec la GRID Console

Les principales vues du dictionnaire de données concernant Streams sont les suivantes :

  • DBA_APPLY, DBA_APPLY_%
  • DBA_CAPTURE, DBA_CAPTURE_%
  • DBA_HIST_STREAMS_%
  • DBA_PROPAGATION
  • DBA_RULE_%
  • DBA_STREAMS_%

ainsi que les vues dynamiques suivantes :

V$BUFFERED_%, V$PROPAGATION_SENDER, V$PROPAGATION_RECEIVER, V$RULE_%, V$STREAMS_%

Faire un commentaire