·
QUE
ES ORACLE (VERSIO 10G )
Oracle es un sistema de gestión de base de datos objeto-relacional
(o ORDBMS por el acrónimo en inglés de Object-Relational Data Base Management
System), desarrollado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos
más completos, destacando:
soporte de
transacciones,
estabilidad,
escalabilidad y
Soporte multiplataforma.
Su dominio en el mercado de servidores empresariales ha sido casi
total hasta hace poco, Las últimas versiones de Oracle han sido certificadas
para poder trabajar bajo GNU/Linux. Oracle es básicamente una herramienta
cliente/servidor para la gestión de Bases de Datos. Es un producto vendido a
nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que
sólo se vea en empresas muy grandes y multinacionales, por norma general. En el
desarrollo de páginas web pasa lo mismo: como es un sistema muy caro no está
tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL
Server, etc.
·
PARA
QUE SIRVE
Almacena y facilita el manejo de
grandes cantidades de información relacionada entre sí (bases de datos). Oracle
es uno de los productos más utilizados en las infraestructuras de las empresas.
Y también es de los más caros.
Oracle
es una potente herramienta basada en la arquitectura Cliente/Servidor para la gestión
de Bases de Datos Relacionales desarrollada por Oracle Corporation. Ofrece una
interfaz intuitiva basada en el explorador, que es capaz de administrar las
bases de datos, crear tablas, vistas y otros objetos de bases de datos,
importar, exportar y visualizar datos de tablas, ejecutar scripts de SQL y
generar informes. Además, soporta transacciones, es estable, escalable y
multiplataforma.Para desarrollar en Oracle se utiliza PL/SQL, el cual es un lenguaje de quinta generación, bastante potente para tratar y gestionar la base de datos. Oracle Designer y Oracle Developer son las herramientas de programación que se usan en este motor.
·
PORQUE
SE LO USA
Oracle es una de los principales
sistemas de bases de datos usado a nivel empresarial. Esta base de datos es
desarrollada por la empresa del mismo nombre Oracle Corp. que desde 1978 tiene
casi como único producto su base de datos. Por este motivo puede considerarse
una empresa pionera que desde hace mas de 30 años está innovando en materia de
base de datos.
Esta empresa tiene 300.000 clientes y
durante el 2008 facturo US $ 22.4 billones (sí, leyó bien, billones). Es que la
administración rápida y eficiente de datos es fundamental para cualquier
empresa. Toda empresa necesita una base de datos que responda tan rápidamente
como las consultas que hacemos en una agenda personal.
Muchos usuarios conocen bases de datos
o han manejado administradores de base de datos (Database Management System o
DBMS).como la popular Microsoft Access o Mysql. Estos programas están pensados
para manejar un volumen limitado de datos. Superado el limite de datos la
lentitud en la recuperación de datos es un sintoma de que el sistema no soporta
una carga de datos muy grande.
Según la cantidad de datos que una
base de datos maneje y su uso se utiliza uno u otro programa.
Para
uso personal:
Se utilizan Microsoft Access, MySql o
dentro del paquete OpenOffice el programa Base.
Para
empresas de mediano rango:
Se utilizan Microsoft SQL Server,
Informix, IBM DB2, Oracle Stándar One, PostgresSQL y MySql .
Para
empresas grandes:
Se utiliza Oracle Enterprice Edition o
IBM DB2 .
De que hablamos cuando decimos
empresas grandes, por ejemplo todo el sistema de indexación de Yahoo funciona
sobre Oracle. Otras empresas que usan esta base de datos son: General Motors
(EE.UU), General Electric (EE.UU), Intel Corporation (EE.UU), HP (Bélgica,
Inglaterra y EE.UU.), Phillips (Bélgica, Holanda y EE.UU.), Yahoo (EE.UU.), Alcatel
(Francia), British Gas (Inglaterra), entre otros.
Muchos se preguntan ¿Qué base de datos
usa Google? Se dice en círculos especializados que usa Oracle+PostgreSQL. ¿Por
que Oracle no reconoce a Google entre sus clientes? Oracle es una empresa muy
defensora del software propietario y por una cuestión de imagen no desearía
aparecer junto a un emprendimiento de código libre como PostgreSQL .
Google no usa IBM DB2 por que IBM no
tendría ningún inconveniente en reconocer la alianza con software libre (contribuyó
al desarrollo de Apache) . Entonces por deducción Google tiene que usar Oracle
y PossgressSQL.
Aprender Oracle es una buena opción ya
que el programador se encontrará tarde o temprano con una base de datos Oracle
ya que esta es usada por muchas empresas. Oracle provee del DBMS más completo
con lo cual el programador o administrador de bases de datos aprenderá todo lo
necesario para entender el funcionamiento de cualquier base de datos.
·
COMO
TRABAJA
Conceptualmente, la arquitectura del
Oracle RAC se muestra en la siguiente figura:
Las peticiones a la base de datos son
generadas por la aplicación (por ejemplo, desde un pool de conexiones
configurado en un Application Server), y el Oracle RAC en su conjunto es el
encargado de direccionar las peticiones al servidor que esté en funcionamiento.
Nótese que en esta configuración no existe un balanceo de cargas, por lo que la
configuración mostrada es exclusivamente en failover.
Ahora bien, es necesario contemplar
cómo funciona realmente el Oracle RAC. Esto se puede ver mejor si utilizamos un
diagrama de componentes de software:
En realidad, el cliente o servicio de
Oracle está configurado para tener como conexión primaria el Nodo 1; si no es
posible ejecutar la petición enviada a dicho servidor, el servicio se encarga
de realizar un redireccionamiento de la misma hacia el servidor de respaldo (en
este caso el Nodo 2). Adicionalmente, es necesario mencionar que lo que está
corriendo en los Nodos 1 y 2 es el listener del motor de base de datos, no la base
en sí: la información de la base (los archivos que componen la DB) se encuentra
en un arreglo de discos con configuración en mirror para proveer redundancia y
por lo tanto, alta disponibilidad. En resumen:
Oracle RAC es un componente de
software que permite la creación de múltiples instancias del motor de base de
datos de forma independiente, compartiendo un mismo almacenamiento.
Sin embargo, RAC posee dos
limitaciones muy importantes que es necesario considerar:
No existe un balanceo de carga entre los nodos
de base de datos que componen el Oracle RAC: ésta configuración por default
sólo permite el failover de las peticiones realizadas sobre la base de datos y
si el diseño de la arquitectura requiere la optimización de recursos,
prácticamente se está desperdiciando la mitad del poder de procesamiento de la
capa del back-end.
Dicho failover no es tan transparente como dice Oracle (ver adelante).
Utilizando TAF
Una vez que un nodo del Oracle RAC se
desconecta (ya sea por falla de hardware, red o sobredemanda de recursos),
todas las transacciones deben ser redireccionadas automáticamente al nodo de
respaldo. El punto de dicho esquema consiste en no perder las transacciones que
se encontraban en vuelo en el momento de la desconexión.
El problema radica en que de acuerdo
al mismo Oracle (ver aquí), para hacer uso la funcionalidad de TAF es necesario
utilizar el API del Oracle Call Interface – OCI. En pocas palabras, es
necesario instalar un cliente de Oracle en el servidor de aplicaciones, y el
simple uso de un driver de conexión a la base de datos (por ejemplo, el Thin
Client de Java) no es suficiente.
Adicionalmente, cuando menos para la
versión 10g de Oracle, TAF sólo realiza failover transparente para queries de
tipo SELECT. Todos los demás tipos de operaciones marcarán un error
automáticamente:
Queries transaccionales o de manipulación de datos: INSERT, UPDATE y
DELETE.
Operaciones de manejo de sesión: ALTER SESSION y SQL*Plus.
Objetos temporales (aquellos que utilizan el espacio de trabajo TEMP).
Estados obtenidos durante la ejecución de Stored Procedures (PL/SQL).
Así entonces, llegamos a la siguiente
conclusión:
Oracle RAC no garantiza por sí mismo
un failover transparente (sólo garantiza disponibilidad de la base de datos).
El failover es implementado por el OCI en el cliente de Oracle, con ciertas
restricciones.
Esto limita la viabilidad de Oracle
RAC considerando el costo-beneficio pues éste se cotiza de forma separada al
motor de la base de datos (ver aquí).
Mejorando Oracle RAC
Sin embargo, no todo está perdido.
Ambos problemas (balanceo de cargas y failover transparente) pueden ser
resueltos mediante un clúster con balanceo de carga por hardware o software. La
escalabilidad de dicha solución depende más bien del presupuesto con el que se
cuenta, pero soporta la decisión de implementar un Oracle RAC para alta
disponibilidad de la base de datos.
El esquema conceptual se muestra en la
siguiente figura:
El encargado de realizar la
distribución de carga es el balanceador. Éste puede ser un componente de
software (por ejemplo, un Web Server con balanceo round-robin como Apache) o
uno de hardware (como un Switch F5) de tal forma que:
No exista dependencia hacia un Oracle Client instalado en el servidor de
aplicaciones. Esto es especialmente importante cuando no se puede instalar este
componente o es necesario incrementar la portabilidad de la plataforma.
Se optimizan los recursos al distribuir la carga entre los dos o más
servidores que componen la solución.
El componente de balanceo es el encargado de detectar las caídas de los
nodos de la capa de back-end. El cómo se detectan dichas caídas depende del
componente utilizado (por ejemplo, mediante pings al heartbeat de los nodos) y
puede configurarse de la siguiente manera:
Redireccionamiento al primer error. Cuando ocurre un error de
desconexión, el componente redirecciona las demás peticiones que lleguen hacia
los demás nodos de la plataforma, hasta que vuelva a recuperar el heartbeat del
nodo afectado. El detalle es que las peticiones en vuelo regresan un error.
Esto se tendría que resolver con un mecanismo de reintento ya sea en la
aplicación misma o en el contenedor (en caso de que el Servidor de Aplicaciones
y el driver de base de datos soporten dicha funcionalidad). Para este caso
particular, puede utilizarse el Oracle Cache Fusion, que básicamente es un
componente que permite sincronizar bloques de datos entre los nodos del
clúster, pero con esta solución perdemos el balanceo de cargas.
Redireccionamiento sin pérdida. Este se logra utilizando una combinación
del cliente OCI, el balanceador de carga y una configuración especial del TAF
donde se especifica que las peticiones deben lanzarse a ambos nodos de la
plataforma y el que llega primero es resuelto (descartando el segundo). Esto en
efecto permite un failover completamente transparente sin necesidad de
modificaciones en la aplicación, pero tiene un inconveniente: duplica el tráfico
transaccional entre las capas de middle y back end.
La opción con Sun Cluster. De acuerdo a Sun Microsystems, el Sun Cluster
permite realizar un redireccionamiento sin pérdida y sin necesidad de
configuraciones adicionales a la plataforma: el Sun Cluster y los agentes
instalados en cada uno de los nodos se dedican a sincronizar las peticiones
evitando la pérdida de transacciones en caso de un error
·
CUAL
ES SU PLATAFORMA
Oracle corre en computadoras
personales (PC), microcomputadoras, mainframes y computadoras con procesamiento
paralelo masivo. Soporta unos 17 idiomas, corre automáticamente en más de 80
arquitecturas de hardware y software distinto sin tener la necesidad de cambiar
una sola línea de código. Esto es
porque más el 80% de los códigos internos de Oracle son iguales a los
establecidos en todas las plataformas de sistemas operativos.
·
·
REALIZAR
UN MANUAL BÁSICO DEL USO DE ORACLE INTERFAZ DE LINEA EN PDF CON UN MÍNIMO DE 10
PÁG. Y MAX 20
ORACLE
ANTECEDENTES HISTORICOS
En sus comienzos, Oracle era
principalmente una empresa de bases de datos relacionales, Las cuales eran una
nueva forma de pensar sobre como deberían estructurarse y almacenarse los
datos; la clave de este nuevo pensamiento consiste en entender las relaciones
existentes entre los datos y en estructurar la base de Información para que
refleje dichas relaciones. El objetivo de una base de datos relacional consiste
en construir una estructura en la cual las modificaciones requeridas no la
afecten a ella, sino únicamente a los datos, es decir, se minimicen las
modificaciones a las aplicaciones, se termine con la redundancia de los datos y
se garantice la sincronización de los cambios hechos a los mismos "estos
cambios solo deben afectar una tabla, y no varios archivos como frecuentemente
sucedía cuando se manejaba el enfoque tradicional".
RESPONSABILIDADES DE UN ADMINISTRADOR
DE BASES DE DATOS (DBA)
El DBA contribuye con su trabajo al
funcionamiento eficaz de todos los sistemas que se ejecutan con la base de
datos Oracle; Además ofrece asistencia técnica a quienes interactuan con la
Base de Datos y se espera que tenga soltura en todos los aspectos técnicos que
surjan con el software de Oracle. Dentro de sus responsabilidades están:
Instalación y actualización del Oracle Server
y de todos sus productos asociados
Asignación de recursos para la utilización de Oracle: memoria, espacio
en disco, perfiles de usuario etc.
Ajuste de la base de datos para conseguir el
rendimiento optimo.
Enlace con el servicio mundial de
asistencia al cliente de Oracle (Oracle Wordwide Support) para resolver
problemas técnicos que requieran la intervención de Oracle.
Estrategias de copia de seguridad y
recuperación.
Colaboración con el personal de administración
del sistema y desarrolladores de aplicaciones.
·