Inicio » Oracle » STREAMS

STREAMS

Introducción:

Streams es una nueva funcionalidad añadida en oracle 9 que permite propagar información de una base de datos a otra. Oracle streams nos permite colocar la información en flujos y controlar como estos se van a encargar de transmitir la información de una base de datos a otra. El primer paso sería configurar la información que queremos compartir y basándonos en estas especificaciones streams captura y aplica los eventos de forma automática, procesando tanto sentencias DML como DDL.

Los pasos que realiza streams serían los siguientes:

  1. Capturar los cambios en la base de datos. Se configura el proceso de captura en background para capturar los cambios realizados en tablas., esquemas, o en toda la base de datos. El proceso de captura .obtiene los cambios de los redo log y los transforma en LCR (Logical, change record).
  2. Se encolan los eventos. En una cola de streams se pueden almacenar dos tipos de eventos LCR o mensajes de usuario.
  3. Propagar los eventos de una cola a otra.
  4. Descolar los eventos
  5. Aplicar los eventos de una base de datos a otra

 

Para la base de datos de compra la solución es que una de las bases de datos se encargará de la provisión y ambas de las compras. Y se propagarán los datos entre ambas. En caso de caída de una de las bases de datos encargada de la provisión habría que redirigir todos los servicios a la segunda base de datos y activar los procesos propagación de esta información.

Ventajas 

  • No requiere licencia
  • Streams aparece en la versión 9 de Oracle, y se está evolucionando bastante por este lado en versiones posteriores.
  • Permitiría tener dos bases de datos trabajando en modo asíncrono y cada x tiempo enviar la información de una base datos a otra.

 

Incovenientes

  • Los datos son diferentes entre los periodos de tiempo que se produce la propagación, hay conflicto de datos
  • Necesita más trabajo de mantenimiento, por un lado es necesario un dba en planta capacitado para solucionar conflictos y por otro es necesario llevar mantenimientos especifico para cada una de las  bases de datos ya que algunos de las sentencias no se propagan.
  • No esta recomendada para un sistema con múltiples updates, consume excesivos recursos en estos entornos.
  • Existen tipo de datos que la aplicación esta utilizando que no se pueden propagar.
  • 

Elementos a tener en cuenta la hora de la implantación:

Estos son los principales conflictos de datos que pueden aparecer y habría que buscar distintas soluciones para ellos:

            1.         Actualizaciones:

             Dos o más sentencias DML se aplican sobre  el mismo registro en diferentes ubicaciones antes de que el registro pueda ser propagado.

            2.         Problemas de unicidad:

            Se produce la inserción de un registro en más de una ubicación y clave única esta repetida en varias localizaciones.

            3          Conflictos en el borrado:

            Un registro se borra de uno de los entornos, mientras en otro entorno es actualizado. O se produce el borrado del mismo registro en los diferentes entornos.

Tipos de datos y sentencias no soportadas:

Algunos de estos tipos de datos se están utilizando por la aplicación y esta información no se podría propagar.

  1. Tipos de datos no soportados:

                        LOB, NCLOB, CLOB, LONG, LONG RAW, BFILE, ROWID y UROWID.

       2.   Sentencias DDL no soportadas:

                        ALTER DATABASE

                        CREATE CONTROLFILE

                        CREATE DATABASE

                        CREATE PFILE

                        CREATE SPFILE

                        ALTER MATERIALIZED VIEW

                        ALTER MATERIALIZED VIEW LOG

                        CREATE DATABASE LINK

                        CREATE SCHEMA AUTHORIZATION

                        CREATE MATERIALIZED VIEW

                        CREATE MATERIALIZED VIEW LOG

                        DROP DATABASE LINK

                        DROP MATERIALIZED VIEW

                        DROP MATERIALIZED VIEW LOG

                        RENAME

    3. Objetos no soportados:

                        VISTAS MATERIALIZADAS

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s