En esta primera parte vamos a ver que es una Base de Datos Oracle, de que se compone, y definiremos la Instancia.
Un servidor Oracle es una Instancia más una base de datos.
La Instancia esta formada por la SGA mas procesos en background.
La SGA (Área Global del Sistema) es una estructura básica de memoria ( es una gran cache ) donde Oracle cachea toda la información que maneja, tanto los datos de las tablas como las sentencias SQL que ejecutamos contra el servidor de Oracle. Los datos recuperados de las consultas SQL ejecutadas también son cacheadas por la SGA.
Los procesos en background:
- SMON (System Monitor): Es el supervisor del sistema y se encarga de todas las recuperaciones que sean necesarias durante el arranque.
- DBWR (Database Writer): El proceso DBWR es el responsable de gestionar el contenido de los buffers de datos y del caché del diccionario.
- PMON (Process Monitor):Este proceso restaura las transacciones no validadas de los procesos de usuario que abortan, liberando los bloqueos y los recursos de la SGA.
- CKPT (Checkpoint):Este proceso escribe en los ficheros de control los checkpoints. 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.
- LGWR (Log Writer): Este proceso es que se encarga de escribir el contenido de los buffers del redo log en el disco.
- ARCH (Proceso archivador): 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 antigüedad.
La Base de Datos en definitiva son son ficheros. Estos ficheros podemos identificar en ficheros de datos, ficheros de control y ficheros de Redo Log.
La manera que tenemos de trabajar con los datos que almacenamos en la base de datos de Oracle es a través de la instancia. La instancia es lo que permite abrir y arrancar una base de datos, cuando hablamos de arrancar la base de datos, realmente lanzamos la instancia.
Una instancia esta asociada solo a una base de datos, no es posible tener una instancia que apunte a varias base de datos.
La instancia es la encargada de acceder a la base de datos.
Para saber la instancia de nuestra base de datos que estamos ejecutando podemos saberlo si nos conectamos a la maquina donde esta instalado el servidor Oracle y escribimos ORACLE_SID (identifica a la instancia con la que estamos trabajando).
Sergio, muchas gracias por tu blog. Muy instructivo, fácil entender y útil. El otro día tuve un problema con la cantidad de SGA asignada en una bbdd y gracias, en parte a tu blog, pude resorverlo