domingo, 26 de agosto de 2012

Oracle



·         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.



·   

No hay comentarios:

Publicar un comentario