Este documento describe cómo configurar la replicación de una base de datos entre dos servidores Oracle. Primero se instala y configura Oracle Express Edition en ambos servidores, asignando una IP estática a cada uno. Luego se crea un enlace de base de datos entre los servidores y se comparten los permisos. Después se crea una tabla en el servidor maestro y se agregan datos. Finalmente, se crea un trigger que replica cualquier cambio en la tabla maestra a la tabla esclava, manteniendo así la información sincronizada entre los dos servidores.
1. APLICACIÓN DE BASE DE DATOS<br />REPLICACION DE UNA BASE DE DATOS<br />INTEGRANTES:<br />JUAN CARLOS ROJAS <br />CARLOS HEREDIA<br />GEOVANNY YEPEZ<br />7mo “C”<br />20-07-2010<br />Objetivo General: <br />Es la comunicación entre servidores ubicados en Maquinas diferentes, para poder compartir base de datos y realizar las operaciones básicas entre ellas, tales como la inserción, eliminación y actualización.<br />Introducción: <br />La replicación permite tener una copia exacta de una base de datos alojada en un servidor (maestro) que se guardará en otro servidor (esclavo). Todas las modificaciones que se hagan en la base de datos del servidor maestro se actualizarán inmediatamente en el servidor esclavo. <br />Esto no es una copia de seguridad, ya que si borramos una fila en la base de datos maestra, también se borrará en la base de datos esclava.<br />A continuación tenemos los pasos para instalar y configurar nuestro servidor para replicar datos.<br />INSTALACION DE ORACLE<br />Para nuestro caso usaremos la de oracle llamada oracle Express Edition.<br />CONFIGURANDO EL SERVIDOR<br />Ingresamos una IP estática a cada PC, en este caso la 192.168.1.3 seria la PC Máster <br />IP esclavo 192.168.1.4<br />Creación del database link <br />CREATE DATABASE LINK REPLICA<br />CONNECT TO DIEGO IDENTIFIED BY “DIEGO”<br />USING<br />‘(DESCRIPTION =<br />(ADDRESS_LIST =<br />(ADDRESS = (PROTOCOL = TCP)<br />(HOST = 192.168.1.4)<br />(PORT = 1521))<br />)<br />(CONNECT_DATA =<br />(SERVICE_NAME = XE)<br />)<br />)’; <br />CREATE DATABASE LINK REPLICA<br />CONNECT TO JUAN IDENTIFIED BY “JUAN”<br />USING<br />‘(DESCRIPTION =<br />(ADDRESS_LIST =<br />(ADDRESS = (PROTOCOL = TCP)<br />(HOST = 192.168.1.3)<br />(PORT = 1521))<br />)<br />(CONNECT_DATA =<br />(SERVICE_NAME = XE)<br />)<br />)’;<br />LE DAMOS LOS PERMISOS<br />GRANT ALL PRIVILEGES TO JUAN WITH ADMIN OPTION<br />REPLICANDO DATOS<br />Ahora antes de replicar los datos tenemos que tener datos, necesitamos tener cuando menos una tabla en la base de datos, ahora crearemos una tabla para hacer esta práctica la cual llamaremos: usuarios la cual estará en el servidor 1 y será replicada hacia el servidor 2. Utilizaremos las sentencias de SQL Plus para crear la tabla con los siguientes campos de la siguiente manera:<br />CREATE TABLE usuarios(cedula int PRIMARY KEY,nombre varchar2(100),apellido varchar2(100),email varchar2(100));<br />Después de crear la tabla agregaremos datos en ella, quedando de la siguiente manera:<br />PARA LA REPLICACION UTILIZAMOS UN TRIGGER EL CUAL ACTUALICE NUESTRA INFORMACION DEL SERVIDOR AL CLIENTE<br />CREATE OR REPLACE trigger disp<br />after insert or delete or update on usuario<br />declare cursor mostrar is<br />select * from usuario;<br />v_cedula usuario.cedula%type;<br />v_nombre usuario.nombre%type;<br />v_apellido usuario.apellido%type;<br />v_email usuario.email%type;<br />BEGIN<br />DELETE FROM usuario@replica;<br />OPEN mostrar;<br />LOOP<br />FETCH mostrar INTO v_cedula, v_nombre, v_apellido, v_email;<br />EXIT WHEN mostrar%NOTFOUND;<br />INSERT INTO usuario@replica(cedula,nombre,apellido,email)<br />VALUES (v_cedula, v_nombre, v_apellido, v_email);<br />END LOOP;<br />CLOSE mostrar;<br />END disp;<br />Ahora realizaremos una consulta desde el servidor 2 usando los DBLink, quedando de la siguiente manera:<br />De esta manera cualquier cambio realizado en el servidor 1, se verá reflejado inmediatamente en el servidor 2, de esta manera tenemos la información actualizada y lo más importante distribuida en varios nodos al mismo tiempo<br />.<br />CONCLUSIÓN<br />Se concluye que al hacer una replicación de una tabla en oracle usando dos servidores MASTER Y ESCLAVO, el cual puede tener los datos de la tabla para consultar. Teniendo la posibilidad de realizar consultas, actualizaciones o eliminaciones, entre los servidores.<br />