lunes, 29 de marzo de 2010

Archivo de Control en 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 abse 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
Lista de archivos de control en el uso de

From SQL*Plus (connect SYS AS SYSDBA): De SQL * Plus (conectar SYS AS SYSDBA):

SHOW PARAMETERS control_files; Control_files SHOW parámetros;

En una consulta:

SELECT * FROM v$controlfile; SELECT * FROM v $ CONTROLFILE;


Control de contenidos de los archivos
SELECT * FROM v$controlfile_record_section; Controlfile_record_section SELECT * FROM v $;

Copia de seguridad
Copia de seguridad del archivo control de udump en formato de texto:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE; BACKUP DATABASE ALTER CONTROLFILE a Trace;Haga una copia binaria del archivo de control:

ALTER DATABASE BACKUP CONTROLFILE TO '/tmp/control.bkp'; BACKUP DATABASE ALTER CONTROLFILE A '/ tmp / control.bkp';
¿Qué es un listener?

TNS Listener es un proceso servidor que provee la conectividad de red con la base de datos Oracle. El listener está configurado para escuchar la conexión en un puerto específico en el servidor de base de datos. Cuando una se pide una conexión a la base de datos, el listener devuelve la información relativa a la conexión. La información de una conexión para una instancia de una base de datos provee el nombre de usuario, la contraseña y el SID de la base de datos. Si estos datos no son correctos se devolverá un mensaje de error.

  • • Por defecto el puerto del listener es el 1521
    • El listener no limita el número de conexiones a la base de datos
    Toda la información del listener la contiene un archivo denominado listener.ora ( $ORACLE_HOME/network/admin. )
    El comando para gestionar el listener es lsnrctl. Mediante este comando podemos:
    • Parar el listener.
    • Ver el estado del listener.
    • Arrancar el listener.
    • Rearrancar el listener.
¿Qué es un PGA? (Oracle)

PGA(Program Global Area/Zona global de los programas)
En ella se almacenan los datos correspondientes a un proceso (sólo un proceso puede utilizar esta área); tambien es una región de memoria que almacena los datos y la información de control de procesos para el servidor. El tamaño y el contenido de la PGA depende de las opciones del servidor de Oracle instalado. El acceso a la AGP es exclusivo de ese servidor proceso y que es leído y escrito sólo por código de Oracle que actúa en su nombre.

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.

ALMACENAMIENTO
La PGA se almacena en la memoria del servidor pero fuera de la SGA. Por tanto, para dimensionar ambas áreas hay que tener en cuenta que la suma de las dos no supere los límites específicos del servidor y la plataforma (tamaño máximo memoria RAM, 2 GB en Windows sin /3GB, 3 GB en Windows con /3GB... etc.).
CREACION Y DESTRUCCION
La crea el Listener durante la creación del proceso servidor. Si esta memoria no puede ser asignada o reservada la creación del proceso servidor falla y el Listener devuelve un ORA-12500: TNS:listener failed to start a dedicated server process. Igualmente, si durante la ejecución de alguna sentencia es necesario incrementar el tamaño de la PGA y el sistema operativo no tiene más memoria para darle se devuelve un error indicándolo.

Administracion de Base de Datos

¿Qué es un SGA? (Oracle)

El área global del sistema (SGA) es un grupo de áreas de memoria compartida que se dedican a una instancia de "Oracle" (un ejemplo es su base de datos y programas de RAM).

Cada instancia Oracle requiere su área de memoria propia. Esta área de memoria se llama System Global Area o Shared Global Area(SGA). Si bien esta área de memoria es dedicada para la instancia, es compartida por todos los usuarios que se conectan a la base. Es decir que, desde el punto de vista de la instancia, la SGA es una área de memoria dedicada pues no se comparte con otras instancias. Desde el punto de vista de los usuarios que se conectan a la instancia, la SGA es un área de memoria compartida. El tamaño recomendable para una SGA = 50% de la memoria principal, para que el próximo acceso a los mismos sea más rápido.

La SGA está compuesta por tres estructuras principales:

• LA BUFFER CACHE
o
Es el caché que almacena los bloques de datos leidos de los segmentos de datos de la BD, tales como tablas, índices y clusters. Los bloques modificados se llamas bloques sucios. El tamaño de buffer caché se fija por el parámetro DB_BLOCK_BUFFERS del fichero init.ora.
o 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.

LA SHARED POOL
En esta zona se encuentran las sentencias SQL que han sido analizadas. El analisis sintáctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es así, no la analiza y pasa directamente a ejecutar la que mantinene en memoria. De esta manera se premia la uniformidad en la programación de las aplicaciones. La igualdad se entiende que es lexicografica, espacios en blanco y variables incluidas. El contenido de la zona de SQL compartido es:
o Plan de ejecución de la sentencia SQL.
o Texto de la sentencia.
o Lista de objetos referenciados.
Los pasos de procesamiento de cada petición de análisis de una sentencia SQL son:
o Comprobar si la sentencia se encuentra en el área compartida.
o Comprobar si los objetos referenciados son los mismos.
o Comprobar si el usuario tiene acceso a los objetos referenciados.
Si no, la sentencia es nueva, se analiza y los datos de análisis se almacenan en la zona de SQL compartida.
También se almacena en la zona de SQL compartido el caché del diccionario. La información sobre los objetos de la BD se encuentra almacenada en las tablas del diccionario. Cuando esta información se necesita, se leen las tablas del diccionario y su información se guarda en el caché del diccionario de la SGA.
Este caché también se administra mediante el algoritmo LRU. El tamaño del caché está gestionado internamente por el servidor, pero es parte del shared pool, cuyo manaño viene determinado por el parámetro SHARED_POOL_SIZE.

• EL REDO LOG BUFFER
o 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.
o El tamaño del buffer redo log se fija por el parámetro LOG_BUFFER.
Y tambien tiene 3 estructura secundarias :
• Streams pool
• Java pool
• Large pool



REFERENCIAS

http://www.infor.uva.es/~jvegas/cursos/bd/orarq/orarq.html#1.4.1
http://www.dba-oracle.com/concepts/sga_system_global_area.htm
http://www.adp-gmbh.ch/ora/concepts/sga.html