lunes, 19 de abril de 2010

¿Que es un Extent?

http://www.mitoledo.com/dai/Recursos/OracleAlmacenamiento01.png

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

¿Qué es un segmento?

Es un espacio reservado por la base de datos dentro de un datafile para ser utilizado por un solo objeto asi los objetos contenidos en el no podran salir haciendo crecer la tabla. Fisicamente todo objeto en una base de datos no es mas que un segmento.
Existen cuatro tipos de segmentos (principalmente): Segmentos de TABLE: aquellos que contienen tablas Segmentos de INDEX: aquellos que contienen índices Segmentos de ROLLBACK: aquellos se usan para almacenar información de la transacción activa. Segmentos TEMPORALES: aquellos que se usan para realizar operaciones temporales que no pueden realizarse en memoria, tales como ordenaciones o agrupaciones de conjuntos grandes de datos.


http://download.oracle.com/docs/cd/E11882_01/server.112/e10713/img/cncpt284.gif

¿Qué es un Datafile?

es el fichero de datos de una base de datos, son los ficheros donde se alamacena la informacion fisicamente, estos pueden tener cualquier nombre y extension y tambien pueden estar locaclizados en cualquier parte del disco duro tienen un tamaño definido al momento de su creacion que puede ser modificado en cualquier momento.
Un datafile solo le pertenece a un Tablespace.

http://seminariosql.galeon.com/Imagenes/Paso1.gif

¿Qué es un tablespace?

Un tablespace es una unidad lógica que no es un fichero fisico y que encierra un conjunto de propiedades de almacenamiento que se aplican a los objetos que se van a crear en la base de datos bajo el tablespace indicado.
En estos se almacena los objetos del esquema de la base de datos (tablas, indices, secuencias...), una base de datos puede contener mas de un tablespace y estos a su vez contienen varios DATAFILES.

Los Objetos de una base de datos siempre deben estar almacenados dentro de un tablespace sin excepcion.

http://www.mitoledo.com/dai/Recursos/OracleAlmacenamiento02.png

Tipos de Datafile:

Datafile System: Se crea automaticamente al instalar la base de datos y contiene el diccionario de datos.

Datafile Temporales: Como su nombre lo dice solo puede contener objetos temporales no se pueden crear objetos como los indices o tablas permanentemente.

Los Datfiles se pueden consultar con el comando "select tablespace_name, status from dba_tablespaces;" (sin comillas)


lunes, 29 de marzo de 2010

Archivos de Control 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 base 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
La arquitectura física general de una base de datos se mantiene por medio de los archivos de control, en los que se almacena la información de control sobre todos los archivos de la base de datos. Se utilizan para conservar la consistencia interna y servir de guía en las operaciones de recuperación. La base de datos creará y mantendrá los archivos de control especificados durante la creación de la base de datos.

Listener Oracle



Oracle Listener (Escucha de Oracle)

Controla el tráfico de red entrante de una instancia de base de datos Oracle. Al configurar la conectividad de red de una base de datos Oracle, se especifica el protocolo mediante el que se envía el tráfico y el puerto en el que el Listener escucha el tráfico. Normalmente, el Listener se configura para que se ejecute en el mismo equipo que la instancia de base de datos Oracle y se puede configurar para dar servicio a una o más instancias.

¿Qué es un PGA - Oracle?



Las siglas provienen de Program/Private Global Area, y es la memoria privada de cada proceso servidor. En esta memoria cada proceso almacena información que sólo es necesaria para su propio funcionamiento como por ejemplo sus variables globales, el estado actual de cada cursor (SQL) que se ejecuta... etc.

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 ).
  • 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.
Fuente:
http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10743/cncpt151.gif
http://basesdedatosoracle.blogspot.com/2007/11/gestin-automtica-de-la-memoria-pga.html