Personalizada. Permite clarificar mejor la forma de instalar Oracle (es la más complejo, pero la que más opciones permite)
Elegir nuestra opción y pulsar Siguiente
Se nos pregunta (salvo que hayamos elegido la versión personalizada) por el tipo de base de datos que se creará en la instalación. Ya en la instalación se crea una base de datos que puede ser:
Propósito general. Bases de datos que se utilizan para todo tipo de tareas (ante la duda conviene utilizar esta opción).
Procesamiento de transacciones, preparada para utilizar transacciones muy a menudo.
Almacenes de datos, base de datos pensada para primar el almacenamiento de grandes volúmenes de datos (Warehousing).
Personalizada, permite especificar más claramente la base de datos a utilizar (esta opción requiere más pasos que las otras)
Sólo software, instala el software de base de datos sin crear una primera base de datos (habrá que crearla más adelante
Elegir la opción preferida (ante la duda elegir uso General) y pulsar Siguiente
Si se está migrando de una versión anterior aparecerá un cuadro que nos permite migrar (o no) los datos de la versión anterior.
Si el equipo tiene Microsoft Transaction Server se nos pedirá el número de puerto (normalmente el 2030) que ha de utilizarse para usar dicho software de transacciones.
Se nos pide el identificador (SID, System Identifier) y el nombre global de la base de datos. El nombre global es un nombre único para la red a la que pertenece el servidor en el que instalamos Oracle (por ejemplo inicial.donbosdco.local). El SID es el nombre que identifica a la base de datos en el ordenador en el que estamos. En el cuadro se pone primero el nombre global el instalador sugiere el SID correspondiente. Pulsar Siguiente
Indicar la ruta en la que se instalarán por defecto los archivos de la base de datos. Es conveniente que esta carpeta esté en una unidad distinta a la de la carpeta Home de Oracle, para acelerar el rendimiento. Esta carpeta se suele llamar OraData.
Indicar el juego de caracteres que se utilizará en la base de datos. Normalmente se toma el juego de caracteres que utiliza el sistema operativo. Este dato si se rellena mal ocasiona que algunos de nuestros caracteres nacionales, nunca se muestren adecuadamente.
Tras aceptar el cuadro anterior se nos muestra un resumen de la instalación. Tras este resumen comienza la copia de los archivos en nuestro disco duro. Este es el paso más largo, se pueden tardar bastantes minutos (incluso alguna hora) en completarse).
En segundo plano se configurarán los servicios de red necesarios para el funcionamiento de Oracle, la base de datos y el servidor http de Oracle. (Ver imagen anterior)
En cuanto se instala la base de datos y se lanza la instancia asociada a ella (la instancia es la base de datos en ejecución, desde ese instante al arrancar Windows la instancia estará en memoria salvo que la detengamos) se nos piden las contraseñas asociadas a los usuarios administrativos SYS y SYSTEM. Es muy importante recordarlas y no perderlas.
Para comprobar si la instalación es correcta, se debe hacer lo siguiente.
1. Ir al grupo de programas de Oracle en Windows (normalmente Inicio-Programas-Oracle Home92) y hacer clic sobre Enterprise Manage Console (consola de administración)
2. Activar la casilla Iniciar en modo autónomo y aceptar el cuadro
3. Desde el programa de administración, expandir el apartado Bases de datos. Aparecerán las bases que hemos creado, después se nos pedirá un nombre de usuario y contraseña para conectarnos con la base de datos. Inicialmente habrá que conectar con el usuario SYSTEM y la contraseña que especificamos para dicho usuario en la instalación indicar que conectamos como SYSDBA (administrador) lo que nos permite realizar todo tipo de tareas.
Servidor ORACLE
Un servidor Oracle es el software que permite una administración y desarrollo de bases de datos. Tiene tres posibilidades de ejecución:
Local o basada en host. El servidor se ejecuta en la misma máquina en la que se conectan los clientes. La versión personal de Oracle database, produce servidores de este tipo.
Cliente-Servidor. Enfoque más típico. El servidor reside en un ordenador distinto respecto al que los usuarios van a usar para conectarse a la base de datos.
Cliente-Servidor de Aplicaciones-Servidor. Los usuarios acceden a un servidor de aplicaciones (Oracle Application Server) que, a su vez, accede al servidor Oracle. Los tres elementos (cliente, servidor de aplicaciones, servidor Oracle) pueden estar en tres máquinas distintas.
Elementos del servidor Oracle
El servidor Oracle está formado por dos elementos:
La instancia de la base de datos. Consta de datos (llamados estructuras de memoria) y de procesos en memoria (procesos background) necesarios para dar servicio a los usuarios de la base de datos. Puede haber más de una instancia si se distribuye la base de datos en más de una máquina. Cada instancia abre una y sólo una base de datos.
Ficheros en disco. Representan la base de datos en sí. Consta de:
Estructuras lógicas: Tablespaces, objetos del esquema de usuario.
Estructuras físicas: Los ficheros de datos almacenados en disco. Los ficheros de datos (asociados a los tablespaces), los ficheros redo log y los ficheros de control
Estructura de las bases de datos Oracle
Desde el punto de vista de Oracle, una base de datos es una colección de datos tratados como una única unidad. Una base de datos Oracle contiene tres tipos de ficheros:
Archivos de datos. Contiene los datos actuales de la base de datos así como el diccionario de datos.
Archivos rehacer (redo logs). Almacenan datos recuperables en caso de error grave.
Archivos de control. Necesarios para mantener la integridad de la base de datos.
Además se utilizan otros archivos de forma auxiliar
Archivos de parámetros. Que definen algunas características de una instancia Oracle.
Archivos de contraseñas. Que sirven para autentificar a los usuarios.
Copias de archivos rehacer. Utilizadas para la recuperación de datos.
Instancia de la base de datos
La instancia de la base de datos es uno de los dos elementos de cualquier base de datos Oracle. Sirve para gestionar los datos de la base de datos y proporcionar servicio a los usuarios que acceden a la misma.
Está compuesta de:
Estructuras en memoria.
Procesos en segundo plano (background).
Componentes del SGA (System Global Area) y su Utilización
El SGA es un área de memoria compartida que se utiliza para almacenar información de control y de datos de la instancia. Se crea cuando la instancia es levantada y se borra cuando ésta se deja de usar.
Sirve para facilitar la transferencia de información entre usuarios y también almacena la información estructural de la BD más frecuentemente requerida.
El SGA es utilizado para el intercambio de datos entre el servidor y las aplicaciones cliente.
Una instancia Oracle puede abrir una sola base de datos a la vez.
Componente | Utilización | |
Library Cache | Almacena las sentencias SQL mas recientes en memoria. | |
Database Dictionary Cache | Buffer para el diccionario de datos. Tablas, columnas, tipos, índices. | |
Database Buffer Cache | Buffer de la base de datos, contiene bloques de datos que han sido cargados desde los Datafiles. | |
Redo Log Buffer Cac | Bloques de datos que han sido actualizados. |
Componentes del PGA (Process Global Area) y su Utilización
El Process Global Area es un área de memoria utilizada por un proceso Oracle. Esta zona de memoria es un área no compartida en la cual se puede escribir y contiene:
Área e almacenamiento
Información de la sesión
Estado del cursor
Espacio de la pila
Componente | Utilización | |
PMON (Process Monitor) | Monitorea los procesos de los usuarios en caso de que la conexión falle. | |
SMON (System Monitor) | Proceso encargado de recuperar la instancia y abrir la base de datos en caso de que ocurra alguna falla. | |
CKPT (CheckPoint Process) | Sintoniza las tareas de grabación en BD. | |
DBWR (Database Write) |
| |
LGWR (Log Writer) |
|
Jerarquía lógica y física de los datos
Una base de datos tiene una estructura lógica (que se manipula mediante comandos) y una estructura física (la que realmente se almacena en disco).
Estructura Lógica
Está formada por:
Tablespaces. Pertenecen sólo a una base de datos y sirven para agrupar los datos de la base de datos. Cada tablespace está formado físicamente por uno o más archivos de datos. Están divididos en 0 o más segmentos. Se pueden visualizar en línea o fuera de línea y pueden ser activados en sólo lectura o en lectura / escritura.
Segmento. Sirven para almacenar las estructuras lógicas de la base de datos (tablas, índices,…). Un tablespace se compone de uno o más segmentos. Pero el mismo segmento no puede estar en más de un tablespace.
Extensiones. División que se hace a cada segmento. El DBA puede añadir o quitar extensiones a los segmentos a fin de hacer que ganen o pierdan espacio.
Bloque Oracle o bloque de datos. Es la unidad mínima de datos para Oracle y se corresponde a una o más unidades de datos mínimas del sistema operativo en el que nos encontremos.
Estructura física
Archivos de datos. Son archivos en disco que sirven para almacenar los datos físicamente (en una unidad de disco). Cada archivo de datos pertenece sólo a un tablespace. Su tamaño se puede gestionar.
Bloques de sistema. La división mínima de los datos que hace el sistema operativo.
Transacciones
Los cambios en la base de datos no son guardados hasta que tras una serie de instrucciones se decide llevar a cabo esos cambios. Hasta ese momento todo lo realizado se toma como provisional. Un fallo en la máquina permitiría invertir los cambios. Una transacción son varias operaciones SQL que forman una unidad de trabajo. Comienza cuando una persona se conecta y de ahí hasta que ejecuta la instrucción commit (ejecutar la transacción) o rollback (anular la transacción). La anulación deja la base de datos en el estado anterior al comienzo de la transacción. Tras un commit o un rollback comienza la siguiente transacción.
En Oracle se admite además el uso de puntos de ruptura (checkpoints) para almacenar valores intermedios y volver a cualquier de ellos si interesa. Pero esto ralentiza excesivamente el sistema.
Usuarios
Los usuarios son las personas que acceden de una forma o de otra a la base de datos. Cada usuario tiene una vista determinada de la base de datos. Hay varios conceptos sobre los usuarios a tener en cuenta.
Privilegios
Controlan el permiso que posee un usuario de ejecutar una determinada instrucción SQL.
Un usuario que quiera crear una tabla, deberá tener el privilegio (o permiso) adecuado para ello.
Además se pueden colocar privilegios en los objetos, es decir, un usuario propietario de una tabla puede otorgar privilegios a esa tabla (se trataría de un privilegio a nivel de objeto) para que haya otros usuarios que la puedan usar.
Privilegios del Sistema Oracle 9i
Permite al usuario hacer ciertas tareas sobre la BD, como por ejemplo crear un Tablespace. Estos permisos son otorgados por el administrador o por alguien que haya recibido el permiso para administrar ese tipo de privilegio.
En general los permisos de sistema, permiten ejecutar comandos del tipo DDL (Data definition Language), como CREATE, ALTER y DROP o del tipo DML (Data Manipulation Language.
Privilegio | Descripción | ||
CREATE ANY INDEX | Crear cualquier índice. | ||
CREATE [PUBLIC] SYNONYM | Crear sinónimos [públicos]. | ||
CREATE [ANY] TABLE | Crear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener asignado el privilegio UNLIMITED TABLESPACE. | ||
CREATE [ANY] VIEW | Crear vistas. | ||
ALTER ANY INDEX | Alterar cualquier índice. | ||
ALTER ANY TABLE | Alterar cualquier tabla | ||
DROP ANY INDEX | Borrar cualquier índice. | ||
DROP ANY SYNONYM | Borrar cualquier sinónimo. | ||
DROP PUBLIC SYNONYM | Borrar sinónimos públicos. | ||
DROP ANY VIEW | Borrar cualquier vista. | ||
DROP ANY TABLE | Borrar cualquier tabla. | ||
SELECT ANY TABLE | Efectuar selecciones de cualquier tabla o vista. | ||
INSERT ANY TABLE | Insertar en cualquier tabla o vista. | ||
DELETE ANY TABLE | Borrar filas de cualquier tabla o vista, y también truncar. | ||
ALTER SESSION | Alterar los parámetros de la sesión. | ||
CREATE SESSION | Conectarse a la BD. | ||
CREATE PROFILE | Crear perfiles de usuario. | ||
CREATE ROLE | Crear roles. | ||
CREATE ROLLBACK SEGMENT | Creación de segmentos de rollback. | ||
CREATE TABLESPACE | Crear espacios de tablas. | ||
CREATE USER | Crear usuarios. | ||
ALTER PROFILE | Alterar perfiles existentes. | ||
ALTER ANY ROLE | Alterar cualquier rol. | ||
ALTER ROLLBACK SEGMENT | Alterar segmentos de rollback. | ||
ALTER TABLESPACE | Alterar espacios de tablas. | ||
ALTER USER | Alterar usuarios. | ||
DROP PROFILE | Borrar un perfil existente. | ||
DROP ANY ROLE | Borrar cualquier rol. | ||
DROP ROLLBACK SEGMENT | Borrar un segmento de rollback existente. | ||
DROP TABLESPACE | Borrar un espacio de tablas. | ||
DROP USER | Borrar un usuario. Añadir CASCADE si el usuario posee objetos. | ||
ALTER DATABASE | Permite una sentencia ALTER DATABASE. | ||
GRANT ANY PRIVILEGE | Otorgar cualquiera de estos privilegios. | ||
GRANT ANY ROLE | Otorgar cualquier rol a un usuario. | ||
UNLIMITED TABLESPACE | Puede usar una cantidad de almacenamiento ilimitada. | ||
DROP PROFILE | Borrar un perfil existente. |
Privilegios de Objeto
Este tipo de privilegios le permite al usuario hacer cierta acción en un objeto de la base de datos, como puede ser una tabla, vista, función etc. Si a un usuario no se le dan estos privilegios solo podrías acceder a sus propios objetos. Y estos tipos de privilegios los da el dueño del objeto, el administrador o alguien que haya recibido este permiso explícitamente.
Los privilegios sobre objetos consienten que un objeto (creado por un usuario) estos privilegios puede ser de SELECT, de UPDATE, de DELETE, de INSERT.
Privilegio | Descripción | ||||
SELECT | Puede consultar a un objeto. | ||||
INSERT | Puede insertar filas en una tabla o vista. Puede especificarse las columnas donde se permite insertar dentro de la tabla o vista. | ||||
UPDATE | Puede actualizar filas en una tabla o vista. Puede especificarse las columnas donde se permite actualizar dentro de la tabla o vista. | ||||
DELETE | Puede borrar filas dentro de la tabla o vista. | ||||
ALTER | Puede alterar la tabla. | ||||
INDEX | Puede crear índices de una tabla. | ||||
REFERENCES | Puede crear claves ajenas que referencie a esta tabla. | ||||
EXECUTE | Puede ejecutar un procedimiento, paquete o función. | ||||
READ | Permite leer archivos asociados con objetos BFILE en el directorio del sistema |
Rol
Son agrupaciones de privilegios que facilitan la tarea de gestionar a los usuarios. Así cuando una serie de usuarios van a tener los mismos privilegios, se crea un rol que contenga esos privilegios y a esos usuarios se les asigna el rol. Oracle proporciona varios roles ya preparados, por ejemplo el rol DBA da privilegio absoluto a un usuario.
Perfiles
Los perfiles permiten definir limitaciones de recursos. Por ejemplo podemos definir un perfil que limite el número de sesiones abiertas concurrentemente por un usuario cualquiera, y posteriormente aplicar este perfil a uno o más usuarios concretos.
ESQUEMA BASICO DE SEGURIDAD
Esquemas
Los esquemas están asociados a los usuarios. Agrupan los objetos lógicos que pertenecen al usuario. Es decir es el conjunto de tablas, vistas, sinónimos, instantáneas, enlaces de base de datos, procedimientos y funciones, paquetes,…
Cada usuario tiene su propio esquema y, en principio, un usuario no tiene acceso a los elementos de otro usuario, salvo que sea un administrador o que otro usuario ceda el privilegio de utilización de uno o más de sus objetos al resto de usuarios.
Crear Tablespaces, Usuarios, Tablas
Tablespaces
Para crear un tablespaces se inicia la sesión en la base de datos donde deseamos trabajar.
Nos dirigimos a Almacenamiento, Tablespaces, clic derecho y crear
En esta ventana creamos el tablespaces TURC, T identifica que es tablesapace, en la parte de Archivo de datos creamos el datafile, utilizamos el mismo nombre del tablespace precedido por la letra D, que lo identifica como Datafile. Determinamos el estado Online
El tipo de tablespace, será permanente, en el cual trabajaremos, se recomendaría crear un tablespace temporal propio y un utilizar el que existe por defecto.
Crear Usuarios
Para crear usuario nos dirigimos a Seguridad, Usuarios, clic derecho Crear
En esta ventana se ingresan:
El nombre del usuario, el perfil creado para este usuario, la contraseña, seleccionamos los tablespaces creados para este usuario,
En las pestañas de Rol y Sistema, otorgamos los privilegios al usuario, como se puede observar en la siguiente pantalla.
Finalmente creamos el usuario.
Crear Tablas
Para crear tablas damos clic en Objeto, Crear.
Se abrirá una ventana donde aparecen todos los objetos que podemos crear, seleccionamos tablas
Si creamos la tabla utilizando el asistente, ingresamos el nombre da la tabla, elegimos el usuario creado como esquema, y el tablesapace
En esta ventana creamos los campos de la tabla, detallando el tipo de datos, tamaño y valor por deefecto.
En esta pantalla creamos la clave primaria de la tabla
Al finalizar nos mostrara el código SQL para crear la tabla.
Crear Enlace a la base de datos para Distribución
Editaremos el archivo tnsnames.ora
"C:oracleproduct10.2.0db_1networkadmintnsnames.ora", y agregaremos las siguientes líneas de configuración para que el servidor Oracle reconozca nuestro servidor remoto
Una vez creada la conexión creamos el enlace a la base de datos, en el servidor, nos dirijimos a Distribuido, Enlaces de Base de Datos, clic derecho crear. En la ventana ingresamos el nombre de la conexión, mediante un usuario fijo (el usuario de la base de datos a la cual queremos conectar)
En este caso si queremos distribuir las bases de datos "URCUQUI.URCUQUI.LOCAL" y "OTAVALO. URCUQUI.LOCAL" en la base de datos "URCUQUI.URCUQUI.LOCAL" creamos el enlace a "OTAVALO.URCUQUI.LOCAL" utilizando un usuario de "OTAVALO.URCUQUI.LOCAL", y en la base de datos "URCUQUI.URCUQUI.LOCAL" creamos el enlace a "OTAVALO.URCUQUI.LOCAL" utilizando un usuario de "URCUQUI.URCUQUI.LOCAL"
Bases de datos Distribuidas
Se trata de una base de datos a nivel lógico (los usuarios la manejan como una base de datos normal), pero que en realidad (físicamente) está implementada en varias ubicaciones físicas, incluso en máquinas diferentes y distantes.
Cada máquina ejecuta su propia instancia y conjuntos de archivos y todas se conectan en red para hacer que el usuario no tenga que cambiar su código para reflejar esta distribución. La dificultad de esta estructura suele estar aliviada por medio de instantáneas que graban momentáneamente los datos de las tablas distantes. Permiten trabajar con los datos copiados y se programan para que cada cierto tiempo recojan nuevamente los datos a fin de reflejar sus cambios.
Gracias a las instantáneas no hace falta una sobrecarga tan excesiva de las instantáneas de la base de datos.
La replicación de datos consiste en el transporte de datos entre dos o más servidores, permitiendo que ciertos datos de la base de datos estén almacenados en más de un sitio, y así aumentar la disponibilidad de los datos y mejorar el rendimiento de las consultas globales.
En el presente trabajo se muestra de una manera detallada paso a paso como distribuir una base de datos en Oracle hacia otro servidor Oracle, mediante el uso de vistas materializadas.
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.
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.
Esquema de base de datos distribuida en Oracle
Distribución
Las máquinas deben tener instalado el Oracle9i, en modo dedicado. Crear una base de datos en cada una de ellas.
Configurando El Servidor
Editaremos el archivo tnsnames.ora
"C:oracleproduct10.2.0db_1networkadmintnsnames.ora", y agregaremos las siguientes líneas de configuración para que el servidor Oracle reconozca nuestro servidor remoto, usando una resolución de nombres tns.
YOS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = TCP)
(PROTOCOL = TCP)
(HOST = yosy1)
(PORT = 1521)
)
)
(CONNECT_DATA =
(SID = XE)
)
)
Donde YOS es el nombre del servidor remoto que agregamos, es decir un alias, PROTOCOL es el protocolo de comunicación hacia el servidor, HOST es el nombre ó la dirección IP de la computadora que tiene el servidor, PORT indica el numero de puerto al cual se conectara el servidor y finalmente SID que es el nombre de servicio del servidor remoto.
De esta manera nos podremos conectar con el servidor remoto usando la nomenclatura de conexión:
Usuario/Password@Alias_Del_Servidor:[Puerto]
Donde Usuario es cualquier usuario valido del servidor remoto, Password es la contraseña del usuario remoto, @Alias_del_servidor es el nombre que hemos añadido en el archivo de configuración tnsnames.ora, y finalmente el Puerto que indica a que puerto se conectara este parámetro es opcional, por defecto las conexiones se realizan al puerto 1521.
Una vez editado y configurado archivo, tendremos que configurar nuestro servidor estableciendo un DBLink ó un enlace a base de datos.
Usando la siguiente instrucción:
Create database link "Nombre_Del_DBLink" connect to Usuario identified by "Password" using 'HOST[: PUERTO]/SID'
De la siguiente instrucción tenemos Nombre_Del_DBLink el cual es un nombre cualquiera para identificar a que base de datos estamos ligados, Usuario el cual debe de ser un usuario remoto valido, Password es la contraseña del usuario remoto, HOST es el nombre ó dirección ip del servidor, PUERTO indica el numero del puerto al que se conectara el parámetro es opcional, el puerto por defecto es el 152, y por ultimo SID es el nombre del servicio al cual se conectara nuestro servidor.
La cual nos proporcionara la facilidad de hacer consultas del tipo:
Objeto@DBLink
Donde Objeto puede ser cualquier tipo de objeto en la base de datos remota y @DBLink es el enlace a la base de datos, de este modo podremos usar las tablas, vistas, triggers y demás objetos en el servidor.
Estos pasos de configuración se hacen en los dos servidores para que se puedan comunicar, es decir tenemos que dar de alta el servidor 1 en el servidor 2 y viceversa; además tenemos que dar de alta un DBLink para cada uno de ellos, una vez teniendo configurados los servidores podremos iniciar la replicación.
Replicando Datos
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: COMPRAS; la cual estará en el servidor 1 (RAMMS) y será replicada hacia el servidor 2 (YOS).
Utilizaremos las sentencias de SQL Plus para crear la tabla con los siguientes campos de la siguiente manera:
CREATE TABLE RAMMS.COMPRAS
(
CODIGO VARCHAR2 (8 BYTE) NOT
NULL,
PROVEEDOR VARCHAR2 (30
BYTE) NOT NULL,
PRODUCTO VARCHAR2 (45 BYTE)
NOT NULL,
PRECIOCOMPRA INTEGER NOT
NULL,
PRECIOVENTA INTEGER NOT
NULL,
CANTIDAD NUMBER NOT NULL
)
Y posteriormente:
ALTER TABLE RAMMS.COMPRAS
ADD (
PRIMARY KEY
(CODIGO)
USING INDEX
TABLESPACE USERS
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS
UNLIMITED
PCTINCREASE 0
));
Después de crear la tabla agregaremos datos en ella, quedando de la siguiente manera:
Ahora realizaremos una consulta desde el servidor 2 (YOS) usando los DBLink, quedando de la siguiente manera:
SELECT * FROM COMPRAS@DBLINKRAMMS
Arrojando la siguiente información:
Como podemos observar la consulta funciona es decir que podemos consultar objetos desde el servidor 2, ahora crearemos en el servidor 1 (RAMMS), una tabla LOG para la replicación de la tabla COMPRAS, con la siguiente instrucción:
CREATE MATERIALIZED VIEW LOG ON RAMMS.COMPRAS
NOCACHE
LOGGING
NOPARALLEL;
Esta tabla guardara los datos cambiados y actualizara de manera instantánea todas las replicas de la tabla COMPRAS. Ahora desde el servidor 2 (YOS) crearemos nuestra vista materializada para recibir los datos de la tabla original, a este procedimiento de replica se le denomina replica en forma de instantánea o de snapshot, lo haremos usando la siguiente instrucción.
CREATE MATERIALIZED VIEW RAMMS.COMPRAS
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
AS
SELECT * FROM COMPRAS@DBLINKRAMMS;
Ahora en el servidor 2 (YOS), ya disponemos de una copia exacta de la tabla compras del servidor 1 (RAMMS), y se actualizara automáticamente cuando se haga un commit en las transacciones, ahora podemos ejecutar la sentencia:
SELECT * FROM COMPRAS;
E inmediatamente después podremos apreciar el resultado de la consulta, nótese que en el servidor 2, no existían datos para la tabla COMPRAS de hecho COMPRAS no es una tabla es una ¡vista!
De esta manera cualquier cambio realizado en el servidor 1, se verá reflejado inmediatamente en el servidor 2, así tenemos la información actualizada y lo más importante distribuida en varios nodos al mismo tiempo.
Autor:
Galo Barahona
2010
Página anterior | Volver al principio del trabajo | Página siguiente |