lunes, 23 de agosto de 2010

¿En que consiste un diccionario de datos - Oracle?

El diccionario de datos es una parte fundamental de la base de datos Oracle. Está formado por tablas, vistas y packages a los que se puede acceder para obtener información. Las tablas se crean automáticamente durante la instalación y permiten saber:
  • Estructura lógica y física de la DB
  • Los usuarios de la DB
  • Restricciones de integridad sobre las tablas de la DB
  • Espacio asociado a cada objeto en la DB y la cantidad que se está utilizando por los distintos objetos creados por los usuarios de la DB
El usuario SYS es el dueño del DD y tiene todos los permisos sobre cualquier objeto de la DB (también los de cualquier usuario). Componentes de la DD:
  • Tablas base: Una serie de tablas a las que el servidor de datos accede cada vez que se procesa una instrucción DDL de SQL o en algunos comandos DML.
  • Vistas estáticas: Se crean durante la instalación del RDBMS y decodifican y resumen la información contenida en las tablas base. Durante la creación de estas vistas se generan sinónimos públicos para proveer el acceso a los usuarios del RDBMS. Estas vistas deben ser utilizadas para las labores de administración rutinarias que necesiten información específica sobre configuración y estado de la DB. Tienen el nombre de estáticas porque no mantienen información relacionada con las sesiones. Se dividen en 3 categorías:
    • Vistas con prefijo USER: Puede utilizarlas cualquier usuario de laDB y se refieren a objetos poseídos por dicho usuario.
      Ej: Usuario 
      dave ejecuta:
      SELECT * FROM USER_TABLES;
      Se desplegará toda la información de las tablas cuyo propietario sea
      dave.
    • Vistas con prefijo ALL: Evidente, las podrá usar cualquier usuario y además añaden la columna OWNER al resto de información. Con estas vistas se puede tener acceso a la información de los objetos que el usuario es dueño además de los objetos públicos y los que el usuario tiene acceso (por pertenecer a un grupo de seguridad o poseer ciertos privilegios).
    • Vistas con prefijo DBA: Dan información sobre todos los objetos de la DB. Usualmente también tienen la columna OWNER. Sólo las puede utilizar el administrador o usuarios con privilegio SELECT ANY TABLE o pertenezca a un rol que incluya el privilegio.
  • Vistas dinámicas (o performance views): Incluyen información sobre las condiciones actuales de operación del RDBMS. La mayor parte son creadas durante la instalación y algunas se crean específicamente para monitorear cierta actividad. Todas se identifican por el prefijo V$.
    EJ: La vista dinámica V$_SESSION incluye información sobre las sesiones actuales y la vista V$SYSSTAT provee información estadística sobre el
    RDBMS. Para obtener información general sobre las vistas del diccionario de datos se podría utilizar esta consulta:

    SELECT * FROM DICTIONARY WHERE table_name LIKE ´%indicador%´;
    Por ejemplo, para ver todas las vistas relacionadas con tablas podríamos ejecutar:

    SELECT * FROM DICTIONARY WHERE table_name LIKE ´%TABLE%´;

¿Que es un archivo de registro - Oracle?

Oracle conserva registros de todas las transacciones realizadas en la base de datos. Estas transacciones se registran en archivos denominados archivos de registro de reconstrucción en línea. Estos archivos se utilizan para recuperar transacciones de la base de datos en el orden adecuado, en caso de que se produzca un fallo en la base de datos. También permiten que Oracle coordine la forma en que se escriben los datos en disco. Cuando se produce una transacción en la base de datos, ésta se introduce en los buffers del registro de reconstrucción, mientras que los bloques de datos afectados por la transacción no se escriben de manera inmediata en el disco. Todas las bases de datos Oracle tienen tres o más archivos de registro de reconstrucción en línea. Oracle escribe en ellos de manera cíclica: después de llenar el primer archivo de registro, escriben en el segundo, hasta llenarlo. Cuando se han llenando todos los archivos de registro, vuelve al primero y empieza a sobrescribir su contenido. Si la base de datos se está ejecutando en modo ARCHIVELOG, hará una copia de los archivos de registro antes de sobrescribirlos. Estos archivos de registro guardados (si el modo ARCHIVELOG está activado) pueden utilizarse para restaurar una parte o toda la Base de Datos en un momento de tiempo determinado. Debido a que estos registros de reconstrucción son fundamentales para el funcionamiento de la Base de Datos, Oracle permite duplicarlos en espejo y conviene que las diferentes copias se hagan en diferentes unidades de disco físicas.

¿Que es un archivo 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 poder hacer el registro en linea.
Se utilizan para minimizar el riesgo de que todos los archivos de control sean borrados o esten 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


lunes, 16 de agosto de 2010

¿Que es un PGA de oracle?

¿Qué es la PGA?
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 ). 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.

¿Que es un SGA de oracle?

Área Global del Sistema, SGA
Sirve para facilitar la transferencia de información entre usuarios y también almacena la información estructural de la BD más frecuentemente requerida.
La SGA se divide en varias partes:

Buffers de BD, Database Buffer Cache
    Es el caché que almacena los bloques de datos leidos de los segmentos de datos de la BD, tales como tablas, indices y clusters. Los bloques modificados se llaman bloques sucios. El tamaño de buffer caché se fija por el parametro DB_BLOCK_BUFFERS del fichero init.ora. 
    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.
Buffer Redo Log
    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. El tamaño del buffer redo log se fija por el parámetro LOG_BUFFER.

¿Cuales son los roles de un DBA?

El administrador de base de datos (DBA) es la persona responsable de los aspectos ambientales de una base de datos. En general esto incluye lo siguiente:
  • Recuperabilidad - Crear y probar respaldos
  • Integridad - Verificar o ayudar a la verificación en la integridad de datos
  • Seguridad - Definir o implementar controles de acceso a los datos
  • Disponibilidad - Asegurarse del mayor tiempo de encendido
  • Desempeño - Asegurarse del máximo desempeño incluso con las limitaciones
  • Desarrollo y soporte a pruebas - Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos.
El diseño lógico y físico de las bases de datos a pesar de no ser obligaciones de un administrador de bases de datos, es a veces parte del trabajo. Esas funciones por lo general están asignadas a los analistas de bases de datos ó a los diseñadores de bases de datos.