lunes, 21 de junio de 2010

ALTA DISPONIBILIDAD 3

TECNOLOGIA ORACLE FLASHBACK

Cuando la gente autorizada comete errores, usted necesita las herramientas para
corregir esos errores.
Oracle Database 11g brinda una tecnología para la corrección de errores humanos denominada Flashback.

Flashback que revoluciona la recuperación de datos. En el pasado, dañar una base de datos podría tardar minutos,pero varias horas en recuperarla. Con Flashback, el tiempo para corregir los errores es igual al tiempo que llevó cometer el error. También es extremadamente fácil de utilizar, y se puede utilizar un solo comando breve para recuperar toda la base de datos en lugar de seguir algún procedimiento complejo. Flashback ofrece una interface SQL para analizar y reparar rápidamente los errores humanos. Flashback brinda reparación y análisis de grano fino para el daño localizado – como cuando se elimina el pedido erróneo de un cliente. Flashback también permite la corrección de daños más generalizados, y lo hace con rapidez para evitar un largo tiempo de baja –como cuando se eliminan todas las órdenes del mes de un cliente. Flashback es exclusivo para Oracle Database y soporta la recuperación en todos los niveles, incluso las filas, transacciones, tablas, espacios de tabla y base de datos.

Flashback Query
Mediante el uso de Oracle Flashback Query, los administradores pueden consultar cualquier dato del pasado. Esta poderosa característica puede utilizarse para ver y reconstruir los datos corruptos que pueden haberse eliminando o cambiado involuntariamente.

Flashback Versions Query
Flashback Versions Query, similar a Flashback Query, es una característica que permite que los administradores consulten cualquier dato del pasado. La diferencia y el poder detrás de Flashback Versions Query es su capacidad de recuperar diferentes versiones de una fila a través de un intervalo de tiempo especificado.

Flashback Transaction
A menudo, es probable que haya una corrupción lógica en una transacción que puede cambiar los datos en múltiples filas o tablas. Flashback Transaction Query permite que un administrador vea todos los cambios realizados por una transacción específica.

Flashback Data Archive
Flashback Data Archive es un conjunto de herramientas que ofrece a las empresas una increíble flexibilidad para administrar sus datos críticos de negocios. Claramente,
las ventajas de Flashback Data Archive
superan los beneficios implícitos de la reparación de fallas en los datos. Al utilizar esta tecnología, los desarrolladores y administradores de aplicaciones pueden permitir que los usuarios rastreen y vean la evolución de la información. Dada la naturaleza inalterable de Flashback Data Archive, las empresas obtienen una ventaja estratégica y financiera en términos de preservación de datos para fines como la auditoría. Los desarrolladores de aplicaciones pueden aprovechar Flashback Data Archive incorporando nuevas características en sus aplicaciones, permitiendo que los usuarios vean versiones anteriores de datos– como estados bancarios. Finalmente, los desarrolladores y administradores de aplicaciones ya no tienen la carga de crear y mantener una lógica personalizada para rastrear los cambios de los datos críticos de negocio.

ALTA DISPONIBILIDAD


DATA GUARD

Data Guard Tradicional
El uso más conocido de Oracle Data Guard es sincronizar una base de datos standby física con su contraparte de producción para la protección de datos y la alta disponibilidad. Antes de Oracle Database 11g, las bases de datos standby físicas operaban en modo Redo Apply continuo (es decir, continuamente aplicando cambios desde la base de datos de producción) para asegurarse de que un failover de base de datos puede lograrse en segundos después de un corte de servicio en el sitio de producción. Redo Apply debe ser detenido para permitir el acceso de lectura a una base de datos Data Guard 10g standby, que eventualmente resulta en una réplica con datos desactualizados y amplía el tiempo requerido para completar una operación de failover.

Oracle Active Data Guard
Oracle Active Data Guard permite que una base de datos standby física esté abierta para acceso de solo lectura– para informes, consultas simples o complejas, clasificación, acceso basado en la web, etc. mientras se aplican cambios a la base de datos de producción. Todas las consultas que se leen desde la réplica física se ejecutan en tiempo real, y ofrecen resultados actuales. Esto implica que cualquier operación que requiere acceso de solo lectura actualizado puede descargarse en la réplica, mejorando y protegiendo el desempeño de la base de datos de producción. Esta capacidad posibilita que Active Data Guard se implemente en una amplia variedad de aplicaciones comerciales. Algunos ejemplos incluyen:


Telecomunicaciones:

Acceso técnico a cronogramas de servicio, consultas de clientes para verificar el estado de las solicitudes de servicio.


Atención médica: acceso rápido a historiales médicos actualizados.


Finanzas y administración: consultas ad-hoc e informes


Transporte: consultas sobre el seguimiento de paquetes, estado del cronograma


Negocios Web: navegación por el catálogo, estado del pedido, escalamiento horizontal
utilizando grupos de lectura (reader farms)


Active Data Guard también brinda soporte para el seguimiento de cambios RMAN en bloque,permitiendo que los backups rápidos se descarguen desde la base de datos de producción hasta la base de datos standby. Los backups rápidos pueden ser mucho más rápidos que los backups realizados sobre bases de datos standby físicas de las versiones anteriores.

ALTA DISPONIBILIDAD

  • Oracle RAC : Oracle Real Application Clusters (RAC)
    (opción software para el SGBD Oracle producida por la Corporación Oracle.)

    La opción Oracle Real Application Clusters (RAC) soporta la implementación transparente de una sola base de datos a través de un cluster de servidores y brinda tolerancia ante las fallas de hardware o los cortes planificados de servicio. Oracle RAC se ejecuta en cluster y ofrece el máximo nivel de capacidad de Oracle en términos de disponibilidad, escalabilidad e informática de bajo costo. Oracle RAC soporta las aplicaciones comerciales de todo tipo. Esto incluye OLTP, DSS y la capacidad exclusiva de Oracle para soportar de manera efectiva los entornos OLTP/DSS combinados. Esto también incluye los tradicionales productos en paquete como SAP, PeopleSoft, Siebel, y Oracle E*Business Suite, así como las aplicaciones personalizadas.

    Oracle RAC ofrece administración e instalación de imagen única. Los DBA tienen un solo punto de control para instalar y administrar un cluster RAC desde una interface GUI o línea de comando.
    Oracle Database 11g incluye Oracle Clusterware, una solución completa e integrada para la administración de clusterware, disponible para todas las plataformas Oracle Database 11g (excepto OS/390). La funcionalidad de este clusterware incluye mecanismos para la recuperación, detección de fallas, el bloqueo y la mensajería en cluster. Para la mayoría de las plataformas no se debe adquirir ningún software de administración de clusterware. Oracle, no bstante, seguirá brindando soporte de los productos clusterware de terceros elegidos para plataformas específicas.

    Oracle Clusterware incluye API de Alta Disponibilidad para que las aplicaciones sean altamente disponibles. Oracle Clusterware puede utilizarse para monitorear, reasignar y reiniciar sus aplicaciones. Con Real Application Clusters, Oracle Clusterware administra automáticamente todos los procesos de Oracle.

    Disponibilidad Continua
    Al eliminar el único punto de falla con un solo servidor, Oracle RAC brinda la más alta disponibilidad para sus aplicaciones. Si un nodo en el cluster falla, la Base de Datos Oracle continúa ejecutándose en los nodos restantes. Los nodos individuales pueden dejar de funcionar por motivos de mantenimiento mientras los usuarios de aplicaciones continúan trabajando.

    Fast Application Notification (FAN), permite la recuperación completa y automática de las aplicaciones y el equilibrio de carga cuando cambia la configuración de un cluster. Cuando se produce un cambio de estado dentro del cluster, se registra el evento FAN y se realizan llamadas del lado del servidor. Las llamadas del lado del servidor pueden utilizarse para automatizar las actividades como el inicio/fin de programas de aplicaciones, páginas o emails a los DBA, o abrir un informe de problemas. El nivel donde se encuentran las aplicaciones puede recibir el evento FAN y reaccionar según corresponda. Oracle Database 11g JDBC, ODP.NET, OCI, y Oracle Application Server 10g se integran con FAN. Los grupos de conexión de Oracle limpiarán automáticamente las conexiones hasta una instancia en donde se reciba un evento de baja y creará nuevas conexiones cuando se reciba un evento de alta.

    Escalabilidad Flexible
    Oracle Real Application Clusters brinda flexibilidad para las aplicaciones con capacidades de escalamiento. Para mantener los costos bajos, los clusters pueden crearse a partir de componentes estandarizados de red, almacenamiento y procesamiento con precios de commodities. Cuando necesite más capacidad de procesamiento, simplemente incorpore otro servidor sin desactivar a los usuarios de servidores para obtener escalabilidad horizontal. Oracle Clusterware y Oracle RAC soportan hasta 100 nodos en el cluster.


    BENEFICIOS

    Disponibilidad 24 / 7-Proporcionar el tiempo de actividad continua para aplicaciones de base de datos
    En la demanda de capacidad de escalabilidad a expandir por simple adición de servidores para el clúster
    Flexibilidad-Virtualizar bases de datos de instancia única con Oracle RAC un nodo
    Reducción de los costes-Consolidar servidores y reducir los costos de tiempo de inactividad
    Récord mundial de rendimiento se ejecuta más rápido que el más rápido de mainframe
    La computación Grid de Oracle RAC es la base para grid computing
  • REFERENCIA

lunes, 19 de abril de 2010

¿Que es una extension?


Extent es un espacio de disco que se reserva de una sola vez, un segmento que se reserva en un momento determinado de tiempo. El concepto de extent es un concepto físico, unos están separados de otros dentro del disco. Ya dijimos que todo objeto tiene su segmento asociado, pero lo que no dijimos es que este segmento, a su vez, se compone de distintas extensiones. Un segmento, puede ser reservado de una sola vez (10 Mb de golpe), o de varias veces (5 Mb hoy y 5 Mb mañana). Cada una de las veces que se reserva espacio se denomina “extensión”.



En el esquema vemos como el objeto (tabla) FACTURA tiene un segmento en el datafile A-1, y este segmento está compuesto de 3 extensiones. Una de estas extensiones tiene un color distinto. Esto es porque existen dos tipos de extensiones:



♦ INITIAL (extensiones iniciales): estas son las extensiones que se reservan durante la creación del objeto. Una vez que un objeto está creado, no se puede modificar su extensión inicial.



♦ NEXT (siguientes o subsiguientes extensiones): toda extensión reservada después de la creación del objeto. Si el INITIAL EXTENT de una tabla está llena y se está intentando insertar más filas, se intentará crear un NEXT EXTENT (siempre y cuando el datafile tenga espacio libre y tengamos cuota de ocupación suficiente).



Sabiendo que las extensiones se crean en momentos distintos de tiempo, es lógico pensar que unas extensiones pueden estar fragmentadas de otras. Un objeto de base de datos no reside todo junto dentro del bloque, sino que residirá en tantos bloque como extensiones tenga. Por eso es crítico definir un buen tamaño de extensión inicial, ya que, si es lo suficientemente grande, el objeto nunca estará fragmentado.



Si el objeto tiene muchas extensiones y éstas están muy separadas en disco, las consultas pueden retardarse considerablemente, ya que las cabezas lectoras tienes que dar saltos constantemente.



El tamaño de las extensiones (tanto las INITIAL como las NEXT), se definen durante la creación del objeto y no puede ser modificado después de la creación. Oracle recomienda que el tamaño del INITIAL EXTENT sea igual al tamaño del NEXT EXTENT.

¿Que es un segmento?


Un segment es aquel espacio reservado por la base de datos, dentro de un datafile, para ser utilizado por un solo objeto. Así una tabla (o cualquier otro objeto) está dentro de su segmento, y nunca podrá salir de el, ya que si la tabla crece, el segmento tambien crece con ella.

Físicamente todo objeto en base de datos no es mas que un segmento dentro de un datafile. Se puede decir que, un segmento es a un objeto de base de datos, lo que un datafile a un tablespace; el segmento es la representación física del objeto en base de datos (el objeto es solo una definición lógica).

Los segmentos son los equivalentes físicos de los objetos que almacenan datos. El uso efectivo de los segmentos requiere que el DBA conozca los objetos, que utiliza una aplicación, cómo los datos son introducidos en esos objetos y el modo en que serán recuperados.

Un segmento está constituido por secciones llamadas extensiones, que son conjuntos contiguos de bloques Oracle. Una vez que una extensión existente en un segmento no puede almacenar más datos, el segmento obtendrá del espacio de tabla otra extensión. Este proceso de extensión continuará hasta que no quede más espacio disponible en los ficheros del espacio de tablas, o hasta que se alcance un número máximo de extensiones por segmento.

Existen 5 tipos de segmento:

•De datos.
•De índices.
•De rollback.
•Temporales.
•De bootstrap.

¿Qué es un DATAFILE?

Un DATAFILE es un archivo informático que almacena los datos para su uso por una aplicación informática o sistema. Por lo general, no se refiere a los archivos que contienen instrucciones o código que se ejecutará (normalmente llamados archivos de programa), o archivos que definen el funcionamiento o la estructura de una aplicación o sistema (que incluyen los archivos de configuración, archivos de directorio, etc), pero específicamente a la información utilizada como entrada, y / o por escrito en términos de producción por algún programa de software. Esto es especialmente útil cuando se depura un programa.
es una colección de datos, a menudo se llama un conjunto de datos "." En general, cada archivo de datos tendrán un formato particular.

Los datafiles son archivos almacenados en el disco físico. Estos archivos se utilizan para almacenar datos en el disco. datafiles de base de datos sólo se escriben en los procesos de DBWR.Estos DATAFILES de base de datos Oracle se asocian con "tablespace" ya expuestas anteriormente en este mismo blog, que son "lógicas" contenedores para las tablas e índices.

¿Que es un tablespace?

Tablespace es un grupo lógico de archivos de datos en una base de datos. Una base de datos suele contener al menos un tablespace y por lo general dos o más. Dentro de la base de datos, el tablespace desempeña un papel similar al de una carpeta en el disco duro de un ordenador.
Algunos programas de base de datos, como Oracle, crean automáticamente una llamada de tablas de sistema que contiene información general sobre la estructura y el contenido de la base de datos. Una pequeña base de datos puede ser totalmente contenida en el tablespace del sistema, pero en la mayoría de los casos, los datos de usuario se coloca en otros tablespaces.

Los archivos en un tablespace por lo general tienen una característica en común. Por ejemplo, una base de datos para un distribuidor al por mayor podría consistir en tablespaces derecho CONTABILIDAD, pedidos, envío, servicio y SYSTEM. Cada espacio de tablas puede contener sólo un archivo de datos, o miles de archivos, o cualquier otra cosa. De tablas se pueden crear, borrar, y se combina, como puede las carpetas en el disco duro de un ordenador.

lunes, 29 de marzo de 2010

Archivo de Control en Oracle

Un Archivo de Control es un archivo binario pequeño que forma parte de una base de datos oracle. El archivo de control se utiliza para hacer un seguimiento del estado de la abse de datos y la estructura fisica.

Cada Base de datos Oracle debe tener al menos un archivo de control, sin embargo se recomienda crear mas de uno. Cada copia de un archivo de control debe ser almacenado en una unidad de disco diferente multiplexada para pdoer hacer el registro en linea.
Se utilizan apra minimizar el riesgo de que todos los archivos de control sean borrados o estend dañados.

El Archivo de Control contiene informacion como:

•Nombre de la BD
•Marca de la hora de creacion de la BD
•Nombres y ubicaciones de archivos de datos
•Los nombres y ubicaciones de los Redo Log
•El actual numero de secuencia de registro
•Informacion de Checkpoint
•Recientes copias de seguridad RMAN adoptadas
Lista de archivos de control en el uso de

From SQL*Plus (connect SYS AS SYSDBA): De SQL * Plus (conectar SYS AS SYSDBA):

SHOW PARAMETERS control_files; Control_files SHOW parámetros;

En una consulta:

SELECT * FROM v$controlfile; SELECT * FROM v $ CONTROLFILE;


Control de contenidos de los archivos
SELECT * FROM v$controlfile_record_section; Controlfile_record_section SELECT * FROM v $;

Copia de seguridad
Copia de seguridad del archivo control de udump en formato de texto:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE; BACKUP DATABASE ALTER CONTROLFILE a Trace;Haga una copia binaria del archivo de control:

ALTER DATABASE BACKUP CONTROLFILE TO '/tmp/control.bkp'; BACKUP DATABASE ALTER CONTROLFILE A '/ tmp / control.bkp';
¿Qué es un listener?

TNS Listener es un proceso servidor que provee la conectividad de red con la base de datos Oracle. El listener está configurado para escuchar la conexión en un puerto específico en el servidor de base de datos. Cuando una se pide una conexión a la base de datos, el listener devuelve la información relativa a la conexión. La información de una conexión para una instancia de una base de datos provee el nombre de usuario, la contraseña y el SID de la base de datos. Si estos datos no son correctos se devolverá un mensaje de error.

  • • Por defecto el puerto del listener es el 1521
    • El listener no limita el número de conexiones a la base de datos
    Toda la información del listener la contiene un archivo denominado listener.ora ( $ORACLE_HOME/network/admin. )
    El comando para gestionar el listener es lsnrctl. Mediante este comando podemos:
    • Parar el listener.
    • Ver el estado del listener.
    • Arrancar el listener.
    • Rearrancar el listener.
¿Qué es un PGA? (Oracle)

PGA(Program Global Area/Zona global de los programas)
En ella se almacenan los datos correspondientes a un proceso (sólo un proceso puede utilizar esta área); tambien es una región de memoria que almacena los datos y la información de control de procesos para el servidor. El tamaño y el contenido de la PGA depende de las opciones del servidor de Oracle instalado. El acceso a la AGP es exclusivo de ese servidor proceso y que es leído y escrito sólo por código de Oracle que actúa en su nombre.

La PGA se compone de:
  • Área SQL privada:cada SQL que se ejecuta necesita de este espacio para poder llevar el control de las operaciones propias de la sentencia. Se asigna cuando se abre el cursor y se libera completamente cuando se cierra. Esta parte de memoria se subdivide en dos: a) area persistente: perdura durante toda la vida del cursor. Guarda las bind variables además de otras cosas; b) area en tiempo de ejecución: se libera cuando finaliza la ejecución de la sentencia SQL (aunque no se haya cerrado el cursor ). Constituyen las áreas de trabajo (working areas) que se explican más adelante. El número máximo de cursores, y por tanto, el número máximo de áreas SQL privadas, que un usuario puede tener abiertos al mismo tiempo se controla con el parámetro OPEN_CURSORS. También hay que tener en cuenta que esta área SQL privada se almacena en la PGA si la Instancia está configurada como servidores dedicados (dedicated servers). En caso de servidors compartidos (shared servers) se almacena en la SGA.
  • Memoria de las sesiones: guarda información relativa a la sesión como el login, variables de sesión... etc. En servidores compartidos (shared servers) este área pasa a ser pública ya que diferentes usuarios comparten los mismos procesos servidores.

ALMACENAMIENTO
La PGA se almacena en la memoria del servidor pero fuera de la SGA. Por tanto, para dimensionar ambas áreas hay que tener en cuenta que la suma de las dos no supere los límites específicos del servidor y la plataforma (tamaño máximo memoria RAM, 2 GB en Windows sin /3GB, 3 GB en Windows con /3GB... etc.).
CREACION Y DESTRUCCION
La crea el Listener durante la creación del proceso servidor. Si esta memoria no puede ser asignada o reservada la creación del proceso servidor falla y el Listener devuelve un ORA-12500: TNS:listener failed to start a dedicated server process. Igualmente, si durante la ejecución de alguna sentencia es necesario incrementar el tamaño de la PGA y el sistema operativo no tiene más memoria para darle se devuelve un error indicándolo.

Administracion de Base de Datos

¿Qué es un SGA? (Oracle)

El área global del sistema (SGA) es un grupo de áreas de memoria compartida que se dedican a una instancia de "Oracle" (un ejemplo es su base de datos y programas de RAM).

Cada instancia Oracle requiere su área de memoria propia. Esta área de memoria se llama System Global Area o Shared Global Area(SGA). Si bien esta área de memoria es dedicada para la instancia, es compartida por todos los usuarios que se conectan a la base. Es decir que, desde el punto de vista de la instancia, la SGA es una área de memoria dedicada pues no se comparte con otras instancias. Desde el punto de vista de los usuarios que se conectan a la instancia, la SGA es un área de memoria compartida. El tamaño recomendable para una SGA = 50% de la memoria principal, para que el próximo acceso a los mismos sea más rápido.

La SGA está compuesta por tres estructuras principales:

• LA BUFFER CACHE
o
Es el caché que almacena los bloques de datos leidos de los segmentos de datos de la BD, tales como tablas, índices y clusters. Los bloques modificados se llamas bloques sucios. El tamaño de buffer caché se fija por el parámetro DB_BLOCK_BUFFERS del fichero init.ora.
o Como el tamaño del buffer suele ser pequeño para almacenar todos los bloques de datos leidos, su gestión se hace mediante el algoritmo LRU.

LA SHARED POOL
En esta zona se encuentran las sentencias SQL que han sido analizadas. El analisis sintáctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es así, no la analiza y pasa directamente a ejecutar la que mantinene en memoria. De esta manera se premia la uniformidad en la programación de las aplicaciones. La igualdad se entiende que es lexicografica, espacios en blanco y variables incluidas. El contenido de la zona de SQL compartido es:
o Plan de ejecución de la sentencia SQL.
o Texto de la sentencia.
o Lista de objetos referenciados.
Los pasos de procesamiento de cada petición de análisis de una sentencia SQL son:
o Comprobar si la sentencia se encuentra en el área compartida.
o Comprobar si los objetos referenciados son los mismos.
o Comprobar si el usuario tiene acceso a los objetos referenciados.
Si no, la sentencia es nueva, se analiza y los datos de análisis se almacenan en la zona de SQL compartida.
También se almacena en la zona de SQL compartido el caché del diccionario. La información sobre los objetos de la BD se encuentra almacenada en las tablas del diccionario. Cuando esta información se necesita, se leen las tablas del diccionario y su información se guarda en el caché del diccionario de la SGA.
Este caché también se administra mediante el algoritmo LRU. El tamaño del caché está gestionado internamente por el servidor, pero es parte del shared pool, cuyo manaño viene determinado por el parámetro SHARED_POOL_SIZE.

• EL REDO LOG BUFFER
o Los registros Redo describen los cámbios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperación hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log son escritos en un caché de la SGA llamado redo log buffer. El servidor escribe periódicamente los registros redo log en los ficheros redo log.
o El tamaño del buffer redo log se fija por el parámetro LOG_BUFFER.
Y tambien tiene 3 estructura secundarias :
• Streams pool
• Java pool
• Large pool



REFERENCIAS

http://www.infor.uva.es/~jvegas/cursos/bd/orarq/orarq.html#1.4.1
http://www.dba-oracle.com/concepts/sga_system_global_area.htm
http://www.adp-gmbh.ch/ora/concepts/sga.html