Inicio > Database > Oracle Streams y su integración con Enterprise Manager 12c

Oracle Streams y su integración con Enterprise Manager 12c

Oracle Streams permite la replicación de objetos y datos dentro de la misma base de datos o a otra base de datos. La replicación puede ser unidireccional o bidireccional y podemos replicar DML y DDL.

La configuración de Oracle Streams puede incluir toda la base de datos o únicamente un esquema o, si se quiere ser más específico, sólo determinadas tablas.

Si escogemos una replicación por esquema podremos poner excepción a determinadas tablas y si replicamos DDL las nuevas tablas creadas se irán incorporando al proceso de réplica.

En este post no vamos entrar en un profundo nivel técnico de lo que es Oracle Streams, lo que haremos es ver cómo se puede simplificar enormemente este proceso a través de Oracle Enterprise Manager 12c Cloud Control o, lo que es lo mismo, veremos cómo configurar Oracle Streams sin tener apenas conocimiento de esta herramienta.

Para este Laboratorio se ha dispuesto dos bases de datos Oracle 11.2.0.4:

Oracle Clusterware = STREAMSP (base de datos Origen)

Oracle Standalone = STREAMSY (base de datos Destino)

2016-01-14 10_32_16-All Targets - Oracle Enterprise Manager

La replicación es recomendable realizarla desde otro usuario que no sea SYS y que tenga los privilegios adecuados; así nos lo recordara Enterprise Manager.

2016-01-14 10_34_21-Oracle Enterprise Manager (SYSMAN) - Replication

Dado esto el primer paso que haremos será completar estos dos prerrequisitos:

Base de datos en modo archivelog:

2016-01-14 10_39_38-oracle@es1testdb01v_~ - Xshell 4

2016-01-14 10_39_24-oracle@es2testdb01v_~ - Xshell 4

Creación del usuario para Streams (este usuario hay que crearlo en las dos bases de datos):

2016-01-14 10_40_56-oracle@es1testdb01v_~ - Xshell 4

Objetivo de la replicación

En este laboratorio vamos a replicar el esquema HR que se ha creado sólo en la base de datos de Origen (STREAMSP),

La replicación se realizara a nivel de esquema y las tablas implicadas inicialmente son:

2016-01-14 10_50_35-Toad for Oracle - [SYS@STREAMSP (STREAMSP1_es1testdb01v) - Schema Browser (HR)]

Proceso de configuración de la replica

Accedemos a Enterprise Manager y cuando nos pida un usuario para acceder a la base de datos utilizaremos STRMADMIN.

2016-01-14 11_01_52-Database Login

Ahora dentro de la pantalla principal de la base de datos lanzaremos el asistente de replicación.

2016-01-14 11_02_49-STREAMSP (Cluster Database) - Oracle Enterprise Manager

Desde esta pantalla nos ofrece una serie de posibles opciones de replicación:

2016-01-14-11_07_38-oracle-enterprise-manager-sysman-replication

Seleccionamos “Replicate Schema” y las credenciales de HOST para la base de datos Origen, pulsamos continuar y tendremos la siguiente pantalla:

2016-01-14 11_09_01-Oracle Enterprise Manager (SYSMAN) - Setup Streams Replication_ Object Selection

Seleccionamos HR y si es necesario marcamos las tablas a excluir y pulsamos continuar para la siguiente pantalla:

2016-01-14 11_11_20-Oracle Enterprise Manager (SYSMAN) - Setup Streams Replication_ Destination Opti

En esta pantalla utilizaremos el usuario para replicación creado previamente y pulsamos “next” para continuar:

2016-01-14 11_20_25-Oracle Enterprise Manager (SYSMAN) - Setup Streams Replication_ Replication Opti

En esta pantalla solo tenemos que poner los directorios de trabajo para Streams y pulsamos continuar.

2016-01-14 11_24_06-Oracle Enterprise Manager (SYSMAN) - Setup Streams Replication_ Schedule Job

En esta pantalla nos pedirá escoger cuando empezar con los procesos de réplica, en este caso seleccionamos “inmediate” y continuar.

2016-01-14-11_28_32-oracle-enterprise-manager-sysman-setup-streams-replication_-review

Ahora ya está completada la configuración, solo nos queda lanzar el proceso con la pestaña “SUBMIT”.

Consideraciones

Es necesario crear los tablespaces que forman parte del proceso de réplica.

Desde la ventana de JOBS podemos seguir el proceso de la generación de la réplica.

2016-01-14 11_31_47-Job Run_ STREAM SETUP JOB_1452767489983 - Oracle Enterprise Manager

Cuando esto termine podremos consultar el estado de replicación.

Verificación del Proceso de réplica

Para verificar los procesos de réplica accederemos a la gestión de réplica de Enterprise Manager:

2016-01-14 11_57_25-STREAMSP (Cluster Database) - Oracle Enterprise Manager

2016-01-14 12_28_07-Oracle Enterprise Manager (SYSMAN) - Replication

Lo siguiente que haremos será generar ddl y dml para comprobar la replica.

En la base de datos Origen:

Shell1

En la base de datos Destino:

Shell2

En la base de datos Origen:

Shell3

En la base de datos Origen:

Shell4

En la base de batos Destino:

Shell5

Desde Enterprise Manager 12c:

2016-01-14 12_28_07-Oracle Enterprise Manager (SYSMAN) - Replication

2016-01-14 12_29_18-Oracle Enterprise Manager (SYSMAN) - View Details_ STREAMSP$CAP - Streams (LOCAL

2016-01-14 12_32_36-Oracle Enterprise Manager (SYSMAN) - Replication

Y ya tenemos activa una replicación por Oracle Streams de una forma rápida y simplificada, añadiendo además un alto valor como es la motorización de estos procesos. Desde Oracle Enterprise Manager 12c podemos monitorizar incluso los procesos de replica que se hayan configurado desde otro medios.

Este es un ejemplo más de como Oracle Enterprise Manager simplifica la administración reduciendo constes tanto por el menor tiempo empleado en este tipo de configuraciones así como el poco nivel de expertis necesario.

Oracle Streams tiene muchos pros y contras comparado con otras herramientas, pero en esta ocasión sólo me gustaría destacar un valor que es muy importante a la hora de escoger nuestra solución de replica: Oracle Streams no necesita Licenciamiento adicional para una replicación Oracle-Oracle.

Como información adicional a este tema os dejo estos enlaces:

  1. julio 25, 2016 en 16:15

    Buenos días, muy bueno el post!
    Una consulta: Se puede usar esta metodología para replicar el esquema (o al menos los objetos que van cambiando) en forma horaria, a fin de tener una copia actualizada del esquema en caso de requerirlo?

    • agosto 4, 2016 en 07:37

      Hola Raul

      Este proceso esta pensado para mantener una réplica constante. Si se para y arranca estos procesos se bloquea la eliminacion del archivado hasta que la réplica vuelva a estar sincronizada.
      Para el caso que comentas sería mejor utilizar “Schema Synchronization”, este proceso realiza una copia del esquema en otra base de datos o en las misma pero con otro nombre. Se puede agendar un Job de “Schema Synchronization” para que se ejecute una o varias veces al día.
      Saludos

  1. No trackbacks yet.

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

A %d blogueros les gusta esto: