martes, 22 de noviembre de 2011

ESPACIO EN DISCO Y ADMINISTRACION DE MEMORIA EN ORACLE

* Administrar la asignacion de espacio.- 
ORACLE provee medios para limitar el uso del espacio de disco asignado a la base de datos, de acuerdo a cada usuario; incluyendo los default tablespaces, temporary tablespaces y los tablespaces quotas.
  1. Cada usuario es asociado a un default tablespace. Cuando un usuario crea una tabla, índice, o cluster y no se especifica ningún tablespace que contenga físicamente al objeto, el default tablespace es utilizado si el usuario tiene privilegio para crear el objeto.
  • Default Tablespace: Cada usuario tiene un temporary tablespace. Cuando un usuario ejecuta una sentencia SQL que  requiere la creación de objetos temporarios (por ejemplo un índice), se usa el temporary tablespace     del usuario.
  • Temporay Tablespace
  • Tablespace Quotas
ORACLE puede limitar el espacio disponible de disco colectivo. Las quotas (limites de espacio) pueden ser configuradas para cada tablespace disponible para un usuario. Las tablespace quotas permiten un control selectivo sobre el espacio en disco que es consumido por cada objeto de cada esquema.

*Describir los procesos de transporte.-
 El servidor se vale de una serie de procesos que son el enlace entre las estructuras físicas y de memoria. A continuación se describen cada proceso y el papel que juega en la gestión de laBD. Todo esto se puede ver en la siguiente figura: 



  • System Monitor, SMON:
  • El SMON es el supervisor del sistema y se encarga de todas las recuperaciones que sean necesarias durante el arranque. Esto puede ser necesario si la BD se paró inesperadamente por fallo físico, lógico u otras causas. Este proceso realiza la recuperación de la instancia de BD a partir de los ficherosredo log. Además límpia los segmentos temporales no utilizados y compacta los huecos libres contiguos en los ficheros de datos. Este proceso se despierta regularmente para comprobar si debe intervenir.
  • Process Monitor, PMON:
  • Este proceso restaura las transacciones no validadas de los procesos de usuario que abortan, liberando los bloqueos y los recursos de la SGA. Asume la identidad del usuario que ha fallado, liberando todos los recursos de la BD que estuviera utilizando, y anula la transacción cancelada. Este proceso se despierta regularmente para comprobar si su intervención es necesaria.
  • Database Writer, DBWR:
  • El proceso DBWR es el responsable de gestionar el contenido de los buffers de datos y del caché del diccionario. Él lee los bloques de los ficheros de datos y los almacena en la SGA. Luego escribe en los ficheros de datos los bloques cuyo contenido ha variado. La escritura de los bloques a disco es diferida buscando mejorar la eficiencia de la E/S.
    Es el único proceso que puede escribir en la BD. Esto asegura la integridad. Se encarga de escribir los bloques de datos modificados por las transacciones, tomando la información del buffer de la BD cuando se valida una transacción. Cada validación no se lleva a la BD física de manera inmediata sino que los bloques de la BD modificados se vuelcan a los ficheros de datos periodicamente o cuando sucede algún checkpoint o punto de sincronizaión: grabacióndiferida:
    • Los bloques del buffer de la BD (bloques del segmento de rollback y bloques de datos) menos recientemente utilizados son volcados en el disco continuamente para dejar sitio a los nuevos bloques.
    • El bloque del segmento de rollback se escribe SIEMPRE antes que el correspondiente bloque de datos.
    • Múltiples transacciones pueden solapar los cambios en un sólo bloque antes de escribirlo en el disco.
    Mientras, para que se mantenga la integridad y coherencia de la BD, todas las operaciones se guardan en los ficheros deredo log. El proceso de escritura es asíncrono y puede realizar grabaciones multibloque para aumentar la velocidad.
  • Log Writer, LGWR:
  • El proceso LGWR es el encargado de escribir los registrosredo log en los ficheros redo log. Los registros redo logsiempre contienen el estado más reciente de la BD, ya que puede que el DBWR deba esperar para escribir los bloques modificados desde el buffer de datos a los ficheros de datos.
    Conviene tener en cuenta que el LGWR es el único proceso que escribe en los ficheros de redo log y el único que lee directamente los buffers de redo log durante el funcionamiento normal de la BD.
    Coloca la información de los redo log buffers en los ficheros de redo log. Los redo log buffers almacenan una copia de las transacciones que se llevan a cabo en la BD. Esto se produce:
    • a cada validación de transacción, y antes de que se comunique al proceso que todo ha ido bien,
    • cuando se llena el grupo de buffers de redo log
    • cuando el DBWR escribe buffers de datos modificados en disco.
    Así, aunque los ficheros de DB no se actualicen en ese instante con los buffers de BD, la operación queda guardada y se puede reproducir. Oracle no tiene que consumir sus recursos escribiendo el resultado de las modificaciones de los datos en los archivos de datos de manera inmediata. Esto se hace porque los registros de redo log casi siempre tendrán un tamaño menor que los bloques afectados por las modificaciones de una transacción, y por lo tanto el tiempo que emplea en guardarlos es menor que el que emplearía en almacenar los bloques sucios resultado de una transacción; que ya serán trasladados a los ficheros por el DBWR. El LGWR es un proceso único, para asegurar la integridad. Es asíncrono. Además permite las grabaciones multibloque.
  • Checkpoint, CKPT:
  • Este proceso escribe en los ficheros de control loscheckpoints. Estos puntos de sincronización son referencias al estado coherente de todos los ficheros de la BD en un instante determinado, en un punto de sincronización. Esto significa que los bloques sucios de la BD se vuelcan a los ficheros de BD, asegurándose de que todos los bloques de datos modificados desde el último checkpoint se escriben realmente en los ficheros de datos y no sólo en los ficherosredo log; y que los ficheros de redo log también almacenan los registros de redo log hasta este instante. La secuencia de puntos de control se almacena en los ficheros de datos, redo log y control. Los checkpoints se produce cuando:
    • un espacio de tabla se pone inactivo, offline,
    • se llena el fichero de redo log activo,
    • se para la BD,
    • el número de bloques escritos en el redo log desde el último checkpoint alcanza el límite definido en el parámetro LOG_CHECKPOINT_INTERVAL,
    • cuando transcurra el número de segundos indicado por el parámetro LOG_CHECKPOINT_TIMEOUT desde el último checkpoint.
    Está activo si el parámetro CHECKPOINT_PROCESS tiene un valor verdadero.
  • Archiver, ARCH:
  • El proceso archivador tiene que ver con los ficheros redo log. Por defecto, estos ficheros se reutilizan de manera cíclica de modo que se van perdiendo los registros redo log que tienen una cierta antiguedad. Cuando la BD se ejecuta en modoARCHIVELOG, antes de reutilizar un fichero redo log realiza una copia del mismo. De esta manera se mantiene una copia de todos los registros redo log por si fueran necesarios para una recuperación. Este es el trabajo del proceso archivador.

  • Recoverer, RECO:
  • El proceso de recuperación está asociado al servidor distribuido. En un servidor distribuido los datos se encuentran repartidos en varias localizaciones físicas, y estas se han de mantener sincronizadas. Cuando una transacción distribuida se lleva a cabo puede que problemas en la red de comunicación haga que una de las localizaciones no aplique las modificaciones debidas. Esta transacción dudosa debe ser resuelta de algún modo, y esa es la tarea del proceso recuperador. Está activo si el parámetro DISTRIBUTED_TRANSACTIONStiene un valor distinto de 0.


  • Lock, LCK:
  • El proceso de bloqueo está asociado al servidor en paralelo.


*Recuperar el espacio de las tablas e indices utilizando la funcionalidad de segmentacion.-

Una opción para el manejo de la memoria es usar una forma de liberar al programador de la tarea del control de las tablas en expansión y contracción, de la misma forma que la memoria virtual elimina la preocupación por organizar el programa en una serie de proyectos.
Esto se puede lograr dotando a la máquina de varios espacios independientes de direcciones llamados segmentos. Cada segmento tiene una serie lineal de direcciones, desde 0 hasta cierto máximo. La longitud de cada segmento puede variar de 0 hasta un máximo permitido. Los distintos segmentos pueden tener y de hecho tienen por lo general, longitudes distintas. Además, la longitud de un segmento puede variar durante la ejecución. La longitud de un segmento de la pila puede crecer si algo entra a la pila y decrecer si algo sale de ella.
Puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás. 
La segmentación también facilita el uso procedimientos o datos compartidos entre varios procesos. Un ejemplo común son las bibliotecas compartidas (Shared DLL’s). Es frecuente que las estaciones de trabajo modernas que ejecutan sistemas avanzados, con ventanas, tengan bibliotecas graficas de tamaño muy grande que se compilan casi en todos los programas. En un sistema segmentado, la biblioteca gráfica se puede colocar en un segmento y compartirse entre varios procesos, sin necesidad de tenerla en el espacio de direcciones de cada proceso.

Entender la administracion de recursos de la base de datos.- 
  • La administración de recursos de datos: Actividad administrativa que aplica tecnología de información y herramientas de software a la tarea de administrar los recursos de datos de una organización.





Conceptos Fundamentales de los Datos
  • ¿Cómo se organizan los datos en los sistemas de información?
      - Carácter: elemento más básico de dato que puede ser observado y manipulado. (Se representa en símbolo)
      - Campo: agrupación de caracteres relacionados. (apellido)   
      - Registro: representa una colección de atributos que describen una entidad.
      - Archivo: Es un grupo de registros relacionados.
      - Base de datos: colección integrada de elementos de datos relacionados de manera lógica.



Tipos de Bases de datos:
BASES DE DATOS OPERATIVAS. Almacenan datos detallados necesarios para apoyar los procesos y operaciones de negocio de una empresa. (de clientes o inventarios)
BASES DE DATOS DISTRIBUIDAS. Pueden residir en servidores de red en Internet o en redes de la empresa. Se realizan para mejorar el desempeño de la base de datos en las estaciones de trabajo de los usuarios finales.
BASES DE DATOS EXTERNAS. Están disponibles por una tarifa para servicios comerciales en línea, y con o sin cargo desde muchas fuentes en Internet.
BASES DE DATOS HIPERMEDIOS. Conjunto de multimedia interconectadas en un sitio Web.
ALMACEN DE DATOS. Guarda datos que se han extraído desde diversas bases de datos operativas, externas y de otro tipo de una organización.
MINERIA DE DATOS. Los datos de un almacén de datos se analizan para revelar patrones y tendencias ocultos en la actividad histórica del negocio.


Problemas del procesamiento de datos
Redundancia de datos: Datos duplicados en el archivo.
Falta de integración de datos: Datos almacenados en diferentes archivos. Absorbe mucho tiempo.
Dependencia de datos.

Desarrollo de base de datos
El desarrollo de grandes bases de datos corporativas requiere un esfuerzo de planeación de datos de arriba abajo. Eso puede implicar desarrollar modelos empresariales de entidad relación, bases de datos de áreas temáticas y modelos de datos que reflejan los elementos lógicos de datos y las relaciones necesarias para apoyar la operación y la administración de los procesos básicos de negocio de la organización.


*Crear y usar componentes de administracion de base de datos.-


  • Los procesos de usuario y de servidor son los procesos          principales implicados en la ejecución de una sentencia SQL.
  • Instancia Oracle es la combinación de los procesos en segundo plano y las estructuras de memoria.
  • Base de datos Oracle: Una base de datos Oracle está formada por archivos del sistema operativo que se utilizan para asegurar la consistencia de los datos, así como su recuperación en caso de que se produzca un fallo de la instancia.


miércoles, 24 de agosto de 2011

¿Qué es un PGA de Oracle?

El área global de programas (Program Global Area, PGA) es un búffer de memoria de lectura-escritura no compartida que contiene datos e información de control acerca de cada uno de los procesos de un usuario. Por ello, diremos que cada proceso provocado por un usuario contendrá su propia PGA.
Un usuario, al conectar con la Base de Datos ORACLE (desde cualquiera de sus componentes) provoca la creación de una PGA que contiene información acerca de la conexión. Si el sistema operativo no es capaz de suministrar dicha memoria, se producirá un error de conexión por falta de memoria.

¿Qué es un SGA de Oracle?

La arquitectura de ORACLE tiene dos clases de memoria, una de ellas es compartida por todos los usuarios conectados y otra dedicada al trabajo de cada uno de ellos.

El area global del sistemas o SGA, es el area compartida por todos los usuarios y se divide en tres partes:

  • Fondo comun compartido.- En ella mantiene el diccionario de datos y las areas compartidas de las ordenes SQL que se solicitan para su procesamiento.
  • Area de memoria rapida.- Donde mantiene los datos traidos por las ordenes SQL  de los usuarios conectados a la base de datos.
  • Area de registros de rehacer.- Aqui se registran los cambios hechos a la base de datos.

¿Cuáles son los roles de un DBA?

Las funciones mas importantes de un Administrador de Base de Datos son:

•Instalación de nuevos componentes del software
•Creación de base de datos y tablas
•Especificación de las restricciones de integridad de los datos
•Administrar la concurrencia
•Optimización del acceso a datos
•Definir el esquema conceptual
•Definir el esquema interno
•Vincularse con los usuarios
•Procedimientos de respaldo y recuperación
•Supervisar el desempeño y responder a cambios en los requerimientos
•Concesión de autorización para el acceso a los datos
•Definición de esquema
•Definición de la estructura de almacenamiento del método de acceso