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:
INTEGRANTES:
CRUZ, MELBIN OMAR
LEIVA
RODRIGUEZ, OSCAR LEONARDO
MENDOZA
DE LA CRUZ, DIEGO JOSE
OLMEDO
JACO, CARLOS ALEJANDRO
No hay comentarios:
Publicar un comentario