martes, 24 de junio de 2014

Configurar una Replicación de datos entre dos bases de datos Oracle con Local Capture Proccesses


En este post se muestra la configuración de un entorno de replicación con Oracle Streams, que replica data manipulation language (DML), data definition language (DDL) and Objects en general. Los cambios son aplicados a todas las tablas en el esquema HR.  

En este ejemplo se usa el Asistente de configuración de replicación de Streams en el Oracle Enterprise Manager para configurar el entorno de replicación bidireccional. Este Asistente es una forma de las más rápidas y simples de configurar un entorno Oracle Streams que replique uno o más esquemas.

La Replicación es el proceso de compartir database objects y datos en múltiples bases de datos. Para mantener database objects y datos en varias bases de datos, un cambio en uno de estos database objects en una base de datos se comparte con las otras bases de datos.

Para una explicación detallada con respecto a la replicación de datos se aconseja visitar el sitio web de Oracle, el mismo fue utilizado para realizar este proyecto:



Bueno primeramente antes de iniciar la configuración para la replicación de datos desde el Enterprise Manager, otras configuraciones son necesarias en ambas PC que participaran en el entorno.

Nota: Los pasos acá mencionados son para ambas máquinas, ya que es una replicación bidireccional pero por simplicidad se hablara de la configuración de una sola máquina.

1-    Se debe tener la versión ENTERPRISE  de Oracle, ya que la versión Estándar no soporta este tipo de replicación con Procesos.

Descargar el Enterprise Manager:
http://www.oracle.com/technetwork/oem/enterprise-manager/downloads/index.html

2- Se debe crear la instancia de la base, crear un Listener y configurarlo. Además de conectar ambas maquinas en red, otorgarles sus respectivas IPs. Luego ya se puede iniciar con la configuración.

3- Verificar que se puede hacer ping entre ambas bases de datos, luego verificar si te puedes conectar a la base de datos de destino desde la consola de Windows por medio de un usuario con permisos de Administrador, si esto va bien, entonces puedes estar seguro/a que no hay problemas de conectividad.
hr@"192.168.0.1/db1"

4- Configurar un Administrador para Oracle Streams

Conectarse al Enterprise Manager con un usuario con privilegio de DBA, lo primero que aremos es crear el TableSpace para el nuevo usuario. 
-          Clic en la pestaña SERVER
-          En la parte de Almacenamiento, clic en Tablespaces
-          En el Tablespace clic en CREAR
Veremos esta pantalla:





-          En el campo del nombre ingrese “streams_tbs”
-          Clic en Add para agregar un Datafile          




-          En el campo del nombre ingrese streams_tbs.dbf 
-          Cambie el File Size a 25 y asegúrese que la lista este en MB
-          Seleccione  Automatically extend datafile when full (AUTOEXTEND)
-          Ingrese 5 en el campo de increment y seleccione MB
-          Seleccione en el Maximun File Size Unlimited
-          Clic en Continue

-          En la página de crear Tablespace clic en OK

 5-    Creamos el Administrador para Oracle Streams

-          Ir a la página principal del Enterprise Manager
-          Clic en Data Movement
-          Clic en SETUP en la sección de Streams
-          Clic en Streams Administrator user  para abrir la página del Streams Administrator






-          En el campo del Host ingresamos la IP o el dominio de la maquina donde la base de datos se está ejecutando.
-          En el campo del Puerto ingresamos el Puerto para el Listener
-          En el SID o Nombre de Servicio ingresamos el SID o el nombre de la instancia
-          En el campo Usuario DBA ingresamos a SYS
-          Añadimos la contraseña de SYS
-          En el campo Usuario Administrador de Streams ponemos el nombre de nuestro administrador, en este caso será “strmadmin”
-          Le colocamos una contraseña

-          Y le asignamos un Tablespace, el cual será el creado anteriormente “streams_tbs”


6- Daremos permisos al Administrador strmadmin

-          Nos conectamos a la consola de Windows (Tecla Windows + R)
-          Nos conectamos al SQLPLUS con un usuario con privilegios de Administrador
sqlplus SYS/oracle as SYSDBA
-          SQL> grant execute on dbms_aqadm   to   strmadmin;
-          SQL> grant execute on dbms_capture_adm     to   strmadmin;
-          SQL> grant execute on dbms_propagation_adm   to   strmadmin;
-          SQL> grant execute on dbms_streams_adm  to    strmadmin;
-          SQL> grant execute on dbms_apply_adm      to    strmadmin;

-          SQL> grant execute on dbms_flashback    to     strmadmin;

-          SQL> begin dbms_streams_auth.grant_admin_privilege
       (grantee => 'strmadmin',
      grant_privileges => true);
      end;
      /
-          SQL> grant connect, resource, dba to strmadmin;
-          SQL> grant exp_full_database  to strmadmin;
-          SQL> grant imp_full_database  to strmadmin;

Agregación de variables de entorno necesarias para el Streams.
-          SQL> alter system set global_names=true;

-          SQL> alter system set Streams_pool_size=100m;

7-    Agregar a strmadmin como Super Administrador en el Enterprise Manager


-          Desde la página principal clic en SETUP
-          Clic en Administrators
-          Clic en Crear
-          En la casilla de nombre colocamos “strmadmin”
-          En la lista Administrator Privilage elegiremos “Super Administrador”
-          Clic en Review Y luego clic en Finish

Nos desconectamos y ahora ya nos podemos loguear con nuestro nuevo administrador, strmadmin. Todos los pasos que faltan es obligatorio hacerlos con este nuevo usuario.



     8- Crear una cola ANYDATA

-          Irse a la página Home de la base de datos
-          Clic en Data Movement
-          En la sección de streams clic en Manage Advanced Queues
-          Clic en Create 




-          Seleccionamos Normal Queue, SYS.ANYDATA Datatype

-          Clic en Continue




-   Ingrese el nombre de la cola en el campo de Nombre, un nombre típico es “streams_queue”
-          En el campo Queue Table especificamos el dueño y el nombre de la Que Table por ejemplo “strmadmin.streams_queue_table”
-          En el campo Queue User asegurarse que se ha ingresado el nombre del Administrador Oracle Streams

-          Clic en Finish para crear la cola.


9-    Crear el Database Link, para este paso es obligatorio que las maquinas se encuentren conectadas (en red), ya sea por cable conexión directa, Switch o wifi.

Una base de datos Oracle usa database links para habilitar a los usuarios en una base de datos para acceder a los objetos de una base de datos remota.
Database links son requeridos en la mayoría de entornos que guardan datos en múltiples bases de datos o que comparten información entre ellas.

-        Loguearse al Enterprise Manager como un usuario con privilegios de Administrador, El database link es creado en el esquema de este usuario.
-          Ir a la página principal de la base de datos para la  instancia DB2
-          Clic en Eschema para abrir la subpágina de Schema
-          Clic en Database Link en la sección Database Objects

-          En la página Database Link, clic  en Create para abrir la página Create Database Link




-          En la parte del Name ingresar el nombre del Database Link, el nombre debe de ser el nombre global de la base de datos a la que se quiere hacer el enlace. En este ejemplo el database link se llama db1

-          En el campo net Service Name, ingresar el nombre del servicio de red de la base de datos a la cual vos estás haciendo el link. In este ejemplo, es db1.

-          En la sección Connect As elegiremos Fixed user

-          En el campo del Username, ingresa el user name del usuario que será el dueño del database link. El database link se conecta a este usuario en la base de datos remota. Colocaremos el “strmadmin”

-          En el campo de Password y Confirm Password ingresa el password para el strmadmin de la base de datos remota.

-          Clic en OK para crear el Database Link


      10-    Establecer Parámetros de Inicialización

Para acceder a los datos en múltiples ubicaciones, vos debes a ley asegurarte que cada ubicación puede ser identificada de manera única y para ello hay que establecer a TRUE el parámetro GLOBAL_NAME, seguimos los siguientes pasos.

-          Clic en Server de la página principal en de la base de datos
-          Clic en Initialization Parameters en la sección de Database Configuración.
-          Clic en SPFile
-          En la página, clic en serach tool y coloca GLOBAL_NAMES
-          Clic Go
-          Coloca el valor del parámetro a TRUE
-    Selecciona la opción de Apply changes in SPFile mode to the current running instance(s). For static parameters, you must restart the database.
-          Clic Apply para guardar los cambios.






      11-     Configurar ambas instancias para que se ejecuten en modo ARCHIVELOG. Para que un capture process capture los cambios generados en la base de datos fuente, esta base de datos debe estar corriendo en modo ARCHIVELOG.

-          Nos conectamos a la consola de Windows (Tecla Windows + R)
-          Nos conectamos al SQLPLUS con un usuario con privilegios de Administrador
sqlplus SYS/oracle as SYSDBA
-          SHUTDOWN IMMEDIATE
-          STARTUP MOUNT
-          ALTER DATABASE ARCHIVELOG;
-          ALTER DATABASE OPEN;

Realizar estos cambios en ambas bases de datos.


     12-    Una vez terminadas las configuraciones iniciales, ya tenemos listas ambas instancias para configurar la replicación.

-          Clic en Data Movement en la página principal del EM
-          Clic Seta en la sección de Streams
-          La página de Streams aparece mostrándote estas opciones




-     En el Setup Streams Replication seleccionar Replicate Schemas
-  En la sección del Host Crendentials, ingresa el username y el password para un Administrador del sistema operativo.
-   Clic Continue, si has puesto los datos correctamente Oracle procederá sin problemas y te mostrara esta página:




-   Acá tenemos que seleccionar el esquema que se desea replicar, en nuestro caso elegimos HR.
-   Clic en Siguiente

Se te mostrara esta página, en ella tienes que colocar la información de la base de datos de destino, además de las credenciales del administrador de Streams de destino con las que desea configurar la replicación de Streams.




-          En el campo HOST colocamos la IP de la base de datos destino.
-   En el campo puerto, le colocamos el puerto por el cual está escuchando el LISTENER.
-          En el SID o nombre de servicio, le colocamos el nombre de la instancia de la base de datos destino, en este caso será “db1”
-          En el campo Administrador de Streams, colocamos al usuario “strmadmin”
-          En el campo Contraseña se coloca el password de strmadmin.
-          Clic en siguiente

Si la información fue puesta correctamente te dejara avanzar, de lo contrario mostrara un error.






-          Acá es recomendable dejar el Directory Path tal como esta, nada más verificar que la dirección de ambas bases de datos esta correcta.

-          Lo que sí es fundamenta es seleccionar la pestaña de Advanced Options ya que en ella está la opción para elegir replicación bidireccional






-          Seleccionar la casilla de Configurar Replicación Bidireccional
-          Verificar que el Proceso de Captura este puesto en “Capture Local”
-          Clic en Siguiente

Se nos muestra esta ventana, acá nos dice si queremos configurar la replicación en este momento o planificarlo para más tarde, seleccionamos inmediatamente.






-          Damos clic en siguiente





-        Acá nada más tenemos que comprobar que los datos estén correctos, respecto a la base de datos de origen y la de destino.
-   Una vez comprobado eso clic en Ejecutar y esperar un momento para ver la estadística de trabajo que se está ejecutando, esto tardara entre 2 a 3 minutos en realizarse. Media vez en el trabajo salgo “CORRECTO” se puede dar por terminada la replicación y se puede proceder a abrir unos SQL*DEVELOPER para comenzar a hacer pruebas.

En el siguiente link se muestra el funcionamiento del etnorno de replicacion con Oracle Streams:

                                                    https://www.youtube.com/watch?v=VFjHtPubhOA




INTEGRANTES:
CRUZ, MELBIN OMAR
                                   LEIVA RODRIGUEZ, OSCAR LEONARDO
                                      MENDOZA DE LA CRUZ, DIEGO JOSE
OLMEDO JACO, CARLOS ALEJANDRO

No hay comentarios: