lunes, 23 de agosto de 2010

Diccionario de Datos Oracle

Diccionario de Datos (data dictionary): Es un conjunto de tablas de sólo lectura con los metadatos(descripción del esquema).


  • Información: Nombres de usuarios, seguridad (accesos permitidos, privilegios, roles...), información sobre los objetos, restricciones de integridad, diversas estadísticas. En general, mantienen información sobre las llamadas ESTRUCTURAS INTERNAS de la BD.
  • Las tablas del diccionario son propiedad del usuario SYS. El usuario SYSTEM es propietario de diversas vistas sobre esas tablas, las cuales pueden ser utilizadas por el resto de los usuarios de la BD.
  • Solo ORACLE debe escribir y leer en las tablas del diccionario:
    • Oracle accede cada vez que se ejecuta una sentencia DDL.
    • Los usuarios podrán acceder a algunas vistas: En general, no se deben modificar estas vistas.
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.
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 la DB 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%´;


Vistas del Diccionario de Datos




SELECT OWNER, TABLE-NAME
FROM DBA_TABLES
WHERE OWNER = ‘usuario';


Para ver las tablas de los usuarios


DESC USER_TABLES


Para ver lo que se guarda en las tablas


SELECT TABLE_NAME
FROM USER_TABLES;


Para saber las tablas que tiene el usuario


USER_CONS_COLUMNS
DBA_CONS_COLUMNS
ALL_CONS_COLUMNS


Para ver las restricciones que afectan a las columnas


USER_TABLES


Muestra las tablas propias del usuario activo


ALL_TABLES


Muestra todas las tablas propias del usuario activo


DBA_TABLES


Muestra todas las tablas de la BD's


USER_CONSTRAINTS


Para ver las restricciones del usuario activo


DBA_CONSTRAINTS


Para ver las restricciones de la BD's


ALL_CONSTRAINTS


Para ver todas las restricciones


SELECT *
FROM USER_TABLESPACES;


Para ver todos los tablespaces


SELECT_CATALOG_ROLE


Para ver entero el diccionario de datos


SESSIONS_PRIVS


Información de los privilegios del usuario activo


USER_SYS_PRIVS


Información de los privilegios de sistema del usuario activo


DBA_SYS_PRIVS


Información de los roles y privilegios del sistema del usuario activo


USER_TAB_PRIVS


Información sobre los privilegios de objeto relacionados con el usuario, tanto otorgados como concedidos


USER_TAB_PRIVS_MADE


Privilegios concedidos


USER_TAB_PRIVS_RECD


Privilegios recibidos


SESSION_ROLES


Roles del usuario activo


ROLE_SYS_PRIVS


Privilegios de sistema asignados a los roles


ROLE_TAB_PRIVS


Privilegios sobre objetos asignados a los roles


DBA_ROLES


Todos los roles del sistema


DBA_PROFILES


Todos los perfiles de la BD's


DBA_DATA_FILES


Archivos que componen mi espacio de tabla


USER_FREE_SPACE


Tamaño libre de mi espacio de tabla


DBA_FREE_SPACE


Tamaño libre en todos los tablespaces


DBA_TABLESPACES


Tablespaces del sistema


DBA_TS_QUOTAS


Uso de los tablespaces por los usuarios

Archivo de Registro Oracle

La estructura más importante para las operaciones de recuperación es el Redo Log , que consta de dos o más archivos preasignados que almacenan todos los cambios realizados a la base de datos a medida que ocurren. Cada instancia de una base de datos Oracle tiene asociado un Redo Log para proteger la base de datos en caso de un fallo de instancia.

Oracle Database le permite guardar llena grupos de rehacer los archivos de registro a uno o más destinos en línea, conocidas colectivamente como el registro de rehacer archivados. El proceso de convertir archivos de registro de rehacer archivados en rehacer los archivos de registro se denomina archivo. Este proceso sólo es posible si la base de datos se está ejecutando en ARCHIVELOG modo.

Puede utilizar los registros archivados redo a:
  • Recuperar una base de datos
  • Actualización de una base de datos standby
  • Obtenga información sobre la historia de una base de datos utilizando la utilidad LogMiner

Uso de Archivos en Modo Archive Log
 
 
Redo Threads

 
Al hablar en el marco de instancias de bases de datos múltiples, el Redo Log para cada instancia de base de datos también se conoce como un hacer de nuevo Threads. En las configuraciones típica, sólo uno tiene acceso a una instancia de base de base de datos Oracle, por lo que sólo un hilo está presente. En un entorno de Oracle Real Application Clusters, sin embargo, dos o más instancias al mismo tiempo acceder a una base de datos única y cada instancia tiene su propio Redo Threads.Un Redo Threads separada para cada instancia de contención para evitar un conjunto único de rehacer los archivos de registro, lo que elimina un cuello de botella de rendimiento potencial.

 
Contenido de Redo Log

 
Los archivos de registro están llenos de Redo Log. Un registro de nuevo disco, llamado también un registro de nuevo ingreso, se compone de un grupo de vectores de cambio, cada una de ellas es una descripción de un cambio realizado en un solo bloque en la base de datos.Por ejemplo, si cambia un valor de sueldos en una tabla de empleados, se genera un registro que contiene los vectores registro cambio que describen los cambios en el bloque de segmento de datos para la tabla, el segmento de deshacer bloque de datos, y la tabla de transacción de las deshacer segmentos.

 
Rehacer las entradas de registros de datos que puede utilizar para reconstruir todos los cambios realizados a la base de datos, incluido el deshacer segmentos. Por lo tanto, el Redo Log también protege los datos de reversión. Al recuperar la base de datos utilizando Redo Log, la base de datos lee los vectores de cambio en el hacer de nuevo los registros y aplica los cambios a los bloques correspondientes.

Rehacer los registros se almacenan en forma circular en el Redo Log de amortiguamiento de la SGA y se escriben en uno de los archivos de Redo Log por el Escritor de registros (LGWR) Antecedentes proceso de base de datos.Cada vez que una transacción se confirma, LGWR escribe la transacción rehacer los registros de la redo log buffer de la SGA a un archivo de registro de rehacer, y asigna un número de modificación del sistema (SCN) para identificar los registros de rehacer para cada transacción confirmada. Sólo cuando todos rehacer los registros asociados con una determinada transacción de forma segura en el disco en la línea los registros es el proceso de usuario se le notifica que la transacción se ha confirmado.

Rehacer los registros también se puede escribir en un archivo de Redo Log antes de la operación correspondiente se ha comprometido. Si el hacer de nuevo búfer de registro se llena, u otra transacción se confirma, LGWR limpia todas las entradas de redo log en el registro de rehacer búfer a un archivo de registro de rehacer, a pesar de que algunos registros no hacer de nuevo se pueden cometer. Si es necesario, la base de datos puede revertir estos cambios.

Cómo la base de datos Oracle escribe en el Redo Log

 
El registro de rehacer de una base de datos consta de dos o más archivos de registro de rehacer. La base de datos requiere un mínimo de dos archivos para garantizar que uno siempre está disponible para la escritura, mientras que el otro está siendo archivados (si la base de datos está en ARCHIVELOG modo).

LGWR escribe para rehacer los archivos de registro en forma circular. Cuando el actual archivo de registro de rehacer llena, LGWR comienza a escribir a la siguiente disposición rehacer archivo de registro. Cuando el último archivo de registro de rehacer disponible está llena, vuelve a la LGWR rehacer primero archivo de registro y las escrituras al mismo, comenzando el ciclo de nuevo. La Figura ilustra la escritura circular del archivo de registro de rehacer. Los números junto a cada línea indican la secuencia en que LGWR escribe a cada archivo de registro de rehacer.

 
  • Lleno de rehacer los archivos de registro están disponibles para LGWR para su reutilización en función de si el archivo está habilitado.
  • Si el archivo está deshabilitado (está en la base de datos NOARCHIVELOG modo), uno lleno de rehacer archivo de registro está disponible después de los cambios registrados en él se han escrito en los archivos de datos.
  • Si el archivo está habilitada (la base de datos está en ARCHIVELOG modo), uno lleno de rehacer archivo de registro está disponible para LGWR después de los cambios registrados en él se han escrito en los archivos de datos y el archivo ha sido archivado.

 

Archivo de Control - Oracle

Archivos de control. Necesarios para mantener la integridad de la base de datos.


 La arquitectura física global de una base de datos se mantiene por medio de sus archivos de control, en los que se registra la información de control referente a todos los archivos de la base de datos.

Se utilizan para conservar la coherencia interna y guiar las operacionesde recuperación.

Estos archivos son fundamentales para la base de datos, por ello se almacenan varias copias en línea. Estos archivos deben almacenarse en discos físicos separados.



Cada base de datos Oracle tiene un archivo de control, que es un archivo binario pequeño que registra la estructura física de la base de datos.El archivo de control incluye:
  • El nombre de la base
  • Los nombres y ubicaciones de archivos de datos asociados y rehacer los archivos de registro
  • La marca de tiempo de la creación de bases de datos
  • El registro actual número de secuencia
  • Punto de control de información

 
El archivo de control debe estar disponible para la escritura por el servidor de base de datos Oracle siempre la base de datos está abierta.Sin el archivo de control, la base de datos no puede ser montado y la recuperación es difícil.

 
El archivo de control de una base de datos Oracle se crea en el mismo tiempo que la base de datos. De forma predeterminada, por lo menos una copia del archivo de control se crea durante la creación de bases de datos. En algunos sistemas operativos por defecto es para crear varias copias. Debe crear dos o más copias del archivo de control durante la creación de bases de datos.También puede crear archivos de control posterior, si la pérdida de archivos de control o desea cambiar la configuración particular en los archivos de control.

 
Directrices para los archivos de control

Pautas que usted puede utilizar para administrar los archivos de control de una base de datos:

  • Proporcionar los nombres de archivo para los archivos de control
  • Control de archivos en discos diferentes Multiplex
  • Copia de seguridad Archivos de Control
  • Administrar el tamaño de los archivos de control
Creación de Control Archivos

Maneras de crear archivos de control :  
  • Creación de Archivos de Control inicial
  • Creación de copias adicionales, cambio de nombre, y la reubicación de los archivos de control
  • La creación de nuevos ficheros de control

 

 

 

lunes, 16 de agosto de 2010

PGA DE ORACLE

PGA (Área global de programa): es un área de memoria utilizada por un único proceso de usuarios es asignada al inicio del proceso de servidor. Es reservada a cada proceso de usuario que se conecte a la base de datos Oracle y liberada al final del proceso, esta memoria no se puede compartir.

Los componentes importantes dentro de Oracle son:

Instancia de Oracle

Compuesta por:

Procesos en segundo plano que administran y aplican las relaciones entre las estructuras físicas y las estructuras de memoria.
    • Obligatorios : DBWN, PMON, CKPT, LGWR, SMON
    • Facultativos : ARCn, LMDn, RECO, CJQ0, LMON, Snnn, Dnnn, Pnnn, LCKn, QMNn
Estructuras de memoria:
SGA (System Global Area): asignada al inicio de la instancia y representa un componente fundamental de una instancia de Oracle
PGA (Program Global Area): ésta es asignada al inicio del proceso de servidor. Es reservada a cada proceso de usuario que se conecte a la base de datos Oracle y liberada al final del proceso.

El proceso de usuario

Es el programa que solicita una interacción con la base de datos iniciando una conexión. Se comunica únicamente con el proceso de servidor correspondiente.

El proceso de servidor

Representa el programa que entra directamente en interacción con el servidor Oracle. Responde a todas las peticiones y envia los resultados. Puede estar dedicado a un servidor cliente o compartido por varios.

Base de datos Oracle

La base de datos Oracle es un conjunto de datos tratados como una sola y misma entidad y está constituida de tres tipos de archivos, a saber:

  • los ficheros de control
  • los ficheros de datos
  • los ficheros log

 

Que es un SGA de Oracle

SGA (Área global de sistemas).- sirve para facilitar la transferencia de información entre usuarios. Almacena la mayor parte de la información sobre la propia estructurade la base de datos que es consultada con más frecuencia. Actúa de forma similar a la caché de un PC.: este componente es asignada al inicio de la instancia.


Está compuesta de varias áreas de memoria:
  • El área de memoria compartida
  • El buffer caché de la base de datos
  • Caché de diccionario: la información sobre los objetos de base de datos se almacenan en las tablas del diccionario de datos. Cuando la base de datos necesita esta información se leen las tablas del diccionario de datos y los datos devueltos se almacenan en la caché de diccionario de la SGA.
  • Área compartida: el área compartida almacena la caché de diccionario de datos y la caché de biblioteca (información sobre las instrucciones ejecutadas contra la base de datos). Mientras la caché de buffers de bloques de datos y la caché de diccionario permiten que los usuarios de la base de datos compartan la información sobre los datos y su estructura,
  • El área de bloques de gran tamaño: es un área de memoria opcional. Si se utiliza la opción de servidor compartido o si se llevan a cabo operaciones de copia de seguridado restauración con frecuencia, estas operaciones podrían resultar más eficientes si se crea un área de bloques de gran tamaño. Otra aplicación del área de bloques de gran tamaño es la de albergar los buffers de mensajes que se utilizan en las consultas paralelas. El tamaño del área de bloques de gran tamaño se establece inicialmente con el parámetro LARGE_POOL_SIZE.
  • Buffer de registrosde reconstrucción: los registros de reconstrucción describen los cambios realizados en la base de datos. estas transacciones se registran en un área de la SGA llamada buffer de registros de reconstrucción, El tamaño de los buffers de registros de reconstrucción se especifica mediante el parámetro LOG_BUFFER del archivo de parámetros de inicialización.


Roles de un DBA

El DBA o administrador de la BD de una empresa es siempre considerado como la persona con más experiencia en el área de bases de datos.
Tareas básicas :

  • Garantizar la seguridad del sistema : El DBA debe siempre monitorear y administrar la seguridad del sistema. Esto involucra la incorporación y eliminación de usuarios, administración de espacios de disco (cuotas), auditorias y una revisión periódica para detectar probables problemas de seguridad
  • Prevención de riesgos : Otra tarea del DBA es la de calendarizar mantenciones a las bases de datos (archivos lógicos) o cooperar en el mantenimiento de las máquinas al administrador del sistema. El DBA debe fortalecer sus esfuerzos en orden a eliminar problemas o situaciones potencialmente peligrosas.
  • Instalación de nuevos componentes del software : Una de las tareas principales del DBA consiste en la instalación periódica de nuevas actualizaciones de software de Oracle, tanto en lo referente a programas de aplicaciones como a herramientas administrativas. También es recomendable que el propio DBA y otros usuarios de Oracle prueben la instalación y nuevas configuraciones antes de migrarlas a los ambientes de producción.
  • Interacción con el administrador del sistema : En la mayoría de los casos los programas sólo pueden ser instalados o accedidos por el administrador del sistema. En este caso, el DBA debe trabajar siempre muy bien coordinado con él para garantizar que tanto la instalación y configuración de software como de hardware permita un adecuado funcionamiento del motor de base de datos y de las aplicaciones.
  • Monitorización : El DBA debe monitorear continuamente el rendimiento del sistema y estar preparado para efectuar ajustes de sintonización de éste. En ciertas oportunidades esto involucra cambiar sólo algunos parámetros y otras veces reconstruir índices o reestructurar tablas.
  • Respaldos : Debido a que la tarea más importante del DBA es proteger la integridad de los datos, se deberá desarrollar una estrategia efectiva de respaldos y recuperación de datos para mantener la estabilidad de toda la información guardada. Las frecuencias de estos respaldos deberán decidirse dependiendo de la cantidad de procesos que alteran los datos a través del tiempo.
  • Tareas adicionales
    • Otras tareas de importancia que corresponden con frecuencia realizar a un DBA son:
      • Apoyar en el diseño y optimización de modelos de datos.
      • Analizar datos y efectuar recomendaciones concernientes a mejorar el rendimiento y la eficiencia en el manejo de aquellos datos que se encuentran almacenados.
      • Asistir a los desarrolladores con sus conocimientos de SQL y de construcción de procedimientos almacenados y triggers, entre otros.
      • Documentar y mantener un registro periódico de las mantenciones, actualizaciones de hardware y software, cambios en las aplicaciones y, en general, todos aquellos eventos relacionados con cambios en el entorno de utilización de una base de datos.
      • Apoyar en la definición de estándares de diseño y nomenclatura de objetos.