Entradas populares

lunes, 21 de junio de 2010

ALTA DISPONIBILIDAD - ORACLE

El principal objetivo de cualquier empresa es proveer bienes y servicios en forma continua. De alguna manera el concepto de planear para un desastre se aleja de este objetivo. En su lugar, lo que es requerido es una visión más amplia de cómo conservar a la organización activa manteniendo sus procesos de negocio de tal forma que los bienes y servicios se provean sin interrupción.

Por tanto, el componente principal de un Plan de Continuidad de Negocios (BCP) exitoso es el comprender que el objetivo y resultado final esperado es salvaguardar al negocio y no únicamente el componente tecnológico.

¿Podría haberse evitado esta catástrofe?

Hasta hace muy poco, la planificación clásica de recuperación se centraba en restaurar los centros de datos centralizados por si se producía una catástrofe natural o provocada. No tenía en cuenta la necesidad de que los procesos empresariales decisivos funcionen permanentemente. Aunque las medidas tradicionales siguen siendo importantes, no son ni mucho menos las adecuadas para los entornos de informática distribuida. Los requisitos de funcionamiento permanente en un mundo e-business a la velocidad de la Web son aún más complejos y representan un gran desafío.

RESPUESTA DE ORACLE A LA ALTA DISPONIBILIDAD

En Oracle, se llama alta disponibilidad (HA) a la capacidad de un clúster para mantener en funcionamiento una aplicación. La aplicación sigue ejecutándose incluso cuando se produce un fallo que, normalmente, dejaría un sistema de servidor fuera de servicio.

Alta disponibilidad" consiste en una serie de medidas tendientes a garantizar la disponibilidad del servicio, es decir, asegurar que el servicio funcione durante las veinticuatro horas.

El término "disponibilidad" hace referencia a la probabilidad de que un servicio funcione adecuadamente en cualquier momento.

El término "fiabilidad", que se utiliza en algunos casos, se refiere a la probabilidad de que un sistema funcione normalmente durante un período de tiempo dado. Esto se denomina "continuidad del servicio".

Alta Disponibilidad en la Capa de Base de Datos




Real Application Cluster – RAC

Oracle RAC permite implantar una sola base de datos en un cluster de servidores, con un nivel insuperable de tolerancia a fallos y escalabilidad y sin necesidad de ningún cambio en las aplicaciones. Los analistas valoran la creciente importancia de RAC entre la gran variedad de implantaciones de los clientes obteniendo:

* Disponibilidad Continua.
* Escalabilidad Flexible.
* Menos gastos de informática.
* Récord mundial de rendimiento.
* Activación de Grids Empresariales.
* Arquitectura Activo - Activo.
* Data Guard – Stand by

Toda organización de IT se enfrenta al desafío de mejorar la Calidad de Servicio mientras al mismo tiempo se reducen los costos y la complejidad. Un método para lograr un alto desempeño consistente para las transacciones comerciales críticas es descargar el trabajo auxiliar a una réplica de la base de datos de producción. Active Data Guard es una solución simple, de alto desempeño, que mantiene una réplica actualizada que se utiliza para descargar consultas que requieren muchos recursos, informes y operaciones de backup desde la base de datos de producción.

* Mejorar la Calidad de Servicio.
* Recover ante Desastres y Alta Disponibilidad.
* Protección completa de datos.
* Utilización eficiente de recursos del sistema.
* Sincronización automática posterior a una restauración.
* Administración Simple y centralizada.
* Arquitectura Activo - Pasivo.

Beneficios de RAC Oracle:
Cache Fusion transfiere los bloques de datos (la unidad de transferencia más pequeña en la base de datos) usando la red de interconexión de alta velocidad de la infraestructura. Antes de la fusión de cache, el disco se usa como un medio de transferencia de datos y que tiene desventajas evidentes. Dado que Oracle RAC permite a varias computadoras acceder a una base de datos individual, puede ser usado para dirigir varias áreas de gestión de base de datos. Estas áreas incluyen: Alta disponibilidad, Escalabilidad, Crecimiento Incremental, y Consolidación de Base de datos.





Data Guard de Oracle

Un Data Guard de Oracle, mejora la Calidad de Servicio al descargar las actividades con muchos recursos desde una base de datos de producción hacia una o más bases de datos standby sincronizadas. Oracle Active Data Guard permite el acceso de solo lectura a una base de datos standby física para consultas, clasificaciones, informes, acceso basado en la web, etc., mientras continuamente se aplican los cambios recibidos desde la base de datos de producción. Oracle Active Data Guard también mejora el uso de backups rápidos cuando se descargan backups en una base de datos standby, y puede ofrecer beneficios adicionales de alta disponibilidad y protección ante desastres en caso de cortes de servicio planificados o no planificados en el sitio de producción.

Beneficios:

* Aumente el desempeño—Descarga el volumen de trabajo en una réplica actualizada de la base de datos de producción
* Simplifique las operaciones—Elimina la complejidad de administración que se asocia a las soluciones de replicación tradicional
* Elimine el compromiso—La réplica de informes está actualizada y online en todo momento - no es posible con la tecnología tradicional para el espejamiento de almacenamiento
* Reduzca los costos—Una base de datos standby física Active Data Guard también puede brindar recuperación ante desastres y/o servir como base de datos de prueba - no se requieren servidores ni almacenamiento adicional




TECNOLOGÍA FLASHBACK DE ORACLE

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.

lunes, 19 de abril de 2010

Que es una Extension

Extension en Oracle

Para cualquier objeto de base de datos que tenga cierta ocupación en disco, es decir, cualquier objeto que tenga un segment relacionado, existe el concepto de extent. 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.

La mejor solución es calcular el tamaño que tendrá el objeto (tabla o índice), multiplicando el tamaño de cada fila por una estimación del número de filas. Cuando hemos hecho este cálculo, debemos utilizar este tamaño como extensión INITIAL y NEXT, y tendremos prácticamente la certeza de que no se va a producir fragmentación en ese objeto. En caso de detectar más de 10 extensiones en un objeto (consultando el catálogo de Oracle, como veremos), debemos recrear el objeto desde cero (aplicando el cálculo anterior) e importar de nuevo los datos.

Ciertas operaciones, necesitan de espacio en disco para poder realizarse. El espacio reservado se denomina “segmentos temporales”. Se pueden crear segmentos temporales cuando:

Que es un Segmento en Oracle

Segmento en Oracle

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 él, ya que si la tabla crece, el segmento también crece con ella. Físicamente, todo objeto en base de datos no es más que un segmento (segmento, trozo, sección) 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 no es más que una definición lógica).

Que es un Datafile - Oracle

Datafile en Oraclce

  • Un datafile es la representación física de un tablespace.
  • Son los "ficheros de datos" donde se almacena la información físicamente.
  • Un datafile puede tener cualquier nombre y extensión (siempre dentro de las limitaciones del sistema operativo), y puede estar localizado en cualquier directorio del disco duro, aunque su localización típica suele ser $ORACLE_HOME/Database.
  • Un datafile tiene un tamaño predefinido en su creación (por ejemplo 100Mb) y este puede ser alterado en cualquier momento.
  • Cuando creemos un datafile, este ocupará tanto espacio en disco como hayamos indicado en su creación, aunque internamente esté vacío. Oracle hace esto para reservar espacio continuo en disco y evitar así la fragmentación. Conforme se vayan creando objetos en ese tablespace, se irá ocupando el espacio que creó inicialmente.
  • Un datafile está asociado a un solo tablespace y, a su vez, un tablespace está asociado a uno o varios datafiles. Es decir, la relación lógica entre tablespaces y datafiles es de 1-N, maestro-detalle.

En el esquema podemos ver como el “Tablespace A” está compuesto (físicamente) por tres datafiles (DATOS_1.ORA, DATOS_2.ORA y DATOS_3.ORA). Estos tres datafiles son los ficheros físicos que soportan los objetos contenidos dentro del tablespace A. Aunque siempre se dice que los objetos están dentro del tablespace, en realidad las tablas están dentro del datafile, pero tienen la propiedades asociadas al tablespace.



Que es un Tablespace - Oracle

Tablespace en Oracle

Un tablespace es una unidad lógica de almacenamiento dentro de una base de datos oracle.

Es un puente entre el sistema de ficheros del sistema operativo y la base de datos.

Cada tablespace se compone de, al menos, un datafile y un datafile solo puede pertenecer a un tablespace.

Cada tabla o indice de oracle pertenece a un tablespace, es decir cuando se crea una tabla o indice se crea en un tablespace determinado.

Los tablespace son estructuras donde se almacenan los objetos del esquema de la base de datos, tales como tablas, índices, etc. con la particularidad de poderse repartir en varios ficheros. Por tanto, las bases de datos tienes varios tablespaces y estos a su vez varios datafiles. Un datafile sólo pertenece a un tablespace y un tablespace sólo pertenece a una Base de Datos.

Tipos de tablespaces.

  • Tablespace SYSTEM.
    • Se crea automáticamente al hacer la instalación de Oracle o al crear una Base de Datos.
    • Contiene el diccionario de datos.
  • Tablespaces TEMPORALES.
    • Es aquél en el que solamente puede haber objetos temporales. No se pueden crear objetos permanentes como pueden ser los índices, las tablas o los segmentos de rollback.
    • Optimización operaciones de ordenación.
  • De tipo deshacer cambios (9i).
    • Se utilizan para gestionar poder deshacer las transacciones incompletas. En versiones anteriores --> rollback
  • Con tamaño de bloque variable (9i).
  • De tipo BigFile (10g).

Estado del tablespace.
Su estado puede ser online o offline. Existe una vista que nos da información sobre los tablespaces de nuestra base de datos. Esa vista es la siguiente:

select tablespace_name, status from dba_tablespaces;

Para poder realizar una copia de seguridad del tablespace estando completamente seguros de que nadie está modificando los objetos del tablespace es necesario establecer el modo offlne. Así mismo se actuará de igual forma para poder actualizar una aplicación que se basa en los objetos de este tablespace sin que ningún usuario puede modificar los datos en medio de la actualización.

Manipulación del tablespace.

  • Crear un Tablespace.
    • Create tablespace prueba datafile 'c:\ORACLEXE\ORADATA\XE\prueba01.dbf' size 100M;
  • Aumentar el tamaño del Tablespace.
    • Alter database tablespace prueba add datafile ‘c:\oracleexe\oradata\XE\prueba02.dbf' size 50M;
    • Alter database datafile '/users/oradata/orcl/prueba01.dbf' resize 150M;
  • Borrando un tablespace.
    • Drop tablespace prueba;


Cláusula Storage.

Todo objeto que tenga ocupación física tiene esta cláusula. El objetivo es definir ciertas propiedades de almacenamiento para el objeto creado.

STORAGE( INITIAL entero{K|M} NEXT entero{K|M} {MINEXTENTS entero} {MAXEXTENTS entero|UNLIMITED} {PCTINCREASE %entero} )


Tablespaces Temporales.

Para crear un tablespace temporal simplemente hay que añadir la palabra TEMPORARY a la instrucción utilizada para crear tablespaces normales.

Create tablespace prueba datafile '/users/oradata/orcl/prueba01.dbf' size 100M temporary;

Alter user nombre_de_usuario temporary tablespace nombre_de_tablespace;

Select username, temporary_tablespace from dba_users;
Select tablespace_name, contents from dba_tablespaces;


Tablespaces Read-Only.

Se pueden consultar los datos de los objetos, no se puede ni borrar ni insertar nada en ellos. La principal ventaja de un tablespace read-only es que no hace falta hacer backup del mismo.

Tablespace de Undo.

  • Podemos tener varios tablespaces de “undo”, pero sólo uno de ellos estará activo.
  • No se pueden crear objetos sobre un tablespace de “undo”.
  • Al cambiar de tablespace “undo” activo (con undo_tablespace), los segmentos de rollback que contiene el nuevo tablespace pasan a estar online, mientras que los del tablespace anterior se ponen offline.


Se crean de dos formas:

  • Mediante create database.
  • Mediante create tablespace:

Create undo tablespace undotbs02 datafile ‘c:\oraclexe\oradata\ex\undo02.dbf’ size 25M reuse autoextend on;

Para eliminarlo:

drop tablespace undotbs02;


Parámetros de inicialización de los espacios de tablas de deshacer:

  • Undo_Management (valores MANUAL/AUTO). Si auto se gestionará de forma automática el espacio de deshacer. No es dinámico, cuando se cambia de estado se debe rearrancar la instancia.
  • Undo_tablespace (MANUAL/AUTO). En entornos RAC (Real Application Clusters)



Sintaxis TABLESPACE:


CREATE [UNDO] TABLESPACE tablespace_name

DATAFILE Datafile_Options Storage_Options ;

Datafile_Options:

'filespec' [AUTOEXTEND OFF]

'filespec' [AUTOEXTEND ON [NEXT int K | M] [MAXSIZE int K | M]]

La opción Autoextend Maxsize es por defecto UNLIMITED si no se especifica valor.

Storage_Options:

DEFAULT [COMPRESS|NOCOMPRESS] STORAGE storage_clause

MINIMUM EXTENT int {K|M}

BLOCKSIZE int K

LOGGING | NOLOGGING

FORCE LOGGING

ONLINE | OFFLINE

PERMANENT | TEMPORARY

EXTENT MANAGEMENT {DICTIONARY |

LOCAL {AUTOALLOCATE | UNIFORM [SIZE int K | M]} }

SEGMENT SPACE MANAGEMENT {MANUAL | AUTO}