Los procesos son:
DBWR: Este proceso es el que se encarga de escribir a disco. Es el único con permiso de escritura en disco, o sea en la base de datos. Cuando nosotros escribimos, hacemos un commit en la base de datos, realmente no está escribiendo en disco, si no que está marcando una serie de bloques de datos como que son susceptibles de ser escritos en disco, es decir, marca los datos como "confirmados", pero no escribe, si no que espera a que otra transaccion los requiera para llevarlos a disco y así ahorrar un "viaje" o una operación. Por eso mismo cuando la base de datos cae..o la paramos con la opcion "abort", queda inconsistente, ya que puede tener datos en bufferes "confirmados" que realmente no están escritos en disco. Por eso cuando volvemos a arrancar, necesita realizar una recuperación.
LGWR: Este proceso es que se encarga de escribir el contenido del búfer del registro de rehacer en los ficheros de registro de rehacer en linea. Se realizan las escrituras por lotes. El buffer del registro de rehacer(redo log), contiene siempre el estado más reciente de la base de datos, ya que es posible que el proceso DBWR espere antes de escribir los bloques modificados desde los búferes de bloques de datos a los archivos de datos. Los archivos de registro de rehacer son ficheros secuenciales lo que indica que cuando acaba de escribir en uno, empieza por otro y así sucesivamente.
CKPT: Este proceso es el encargado de realizar un "punto de comprobacion". Cuando se sucede un punto de comprobacion, CKPT hace que DBWR escriba todos los bloques que se hayan modificado desde el último punto de comprobación, y actualize los archivos de control y las cabeceras de los archivos de datos para registrar el punto de comprobación. Los puntos de comprobacion de producen de forma automática cuando se llena un archivo de registro de rehacer en linea.
Se puede configurar el checkpoint en el fichero de inicializacion de parametros con el parametro: LOG_CHEKPOINT_INTERVAL.
SMON: Este proceso realiza la recuperación de la instancia, segun sea preciso usando los registros de rehacer en línea... (antes hablamos de que si oracle se para necesitaría hacer una recuperacion si se para anormalmente, pues lo realiza así). Limpia la base de datos de transacciones inservibles. Tambien cumple la función de agrupar extensiones libres contiguas en la base de datos. Smon solo agrupa el espacio libre en espacios de tablas cuyo valor de almacenamiento predeterminado sea distinto de 0.
PMON: Realiza limpiezas de procesos fallidos de usuarios. Libera recursos que estuviera usando el usuario. Sirve por ejemplo cuando hay bloqueos. libera bloqueos y pone a disposición para otros usuarios.
ARCH: Proceso que escribe en los registros de rehacer en linea de forma ciclica, es decir, despues de llenar el primero, va al segundo, cuando lo llena, va al tercero y asi sucesivamente. Una vez terminado el último fichero de rehace en linea, LGWR empieza a sobreescribir los contenidos del primero. Cuando la base de datos se ejecuta en modo ARCHIVELOG, ARCH realiza una copia del cada uno de ficheros de rechace en linea antes de ser sobreescrito.
RECO: Este proceso es el encargado de realizar las recuperaciones de fallos en las bases de datos distribuidas. Este proceso trata de acceder a las bases de datos implicadas en transacciones distribuidas dudas e intenta resolver las transacciones.
DBWR. Escribe los bloques de datos (y rollback) de la SGA (data buffer cache) en los ficheros de datos. Esto lo hace de forma asíncrona, cuando:
ResponderEliminar– Sucede un checkpoint.
– El número de buffers modificados alcanza un umbral.
– No quedan buffers libres.
– Ocurre un timeout.
– Ponemos un tablespace offline.
– Dejamos un tablespace en modo readonly.
– Borramos o “truncamos” una tabla.
Nota. Un checkpoint sucede cuando:
– El fichero redo log se llena al 90%.
– Se alcanza log_checkpoint_interval (bloques del SO).
– Se llega a log_checkpoint_timeout (en segundos).
Nombre del proceso: DBW0 a DBW9 y DBWa DBWj (máximo 20).
DB_WRITER_PROCESSES. Nº de procesos arrancados (valor por defecto = 1 ó CPU_COUNT/8, el mayor de ambos).
LGWR. Realiza escrituras secuenciales del contenido de la redo log buffer cache en los ficheros redo log. ¿Cuando?
– Se hace commit.
– La redo log buffer cache se llena 1/3.
– Hay 1Mb de cambios en la redo log buffer cache.
– Como mucho, cada 3 segundos.
– Siempre antes que escriba el DBWR.
SMON. Recupera la instancia, si es necesario, cuando ésta arranca: aplica los cambios registrados en los redo log (roll forward), abre la base de datos dejándola accesible a los usuarios, y hace rollback de las transacciones que no terminaron. También se activa periódicamente, agrupando extensiones libres contiguas en extensiones de mayor tamaño (sólo para tablespaces con “default storage” cuyo pctincrease > 0). Además libera el espacio ocupado por segmentos temporales durante el procesamiento de sentencias SQL.
PMON. Se activa periódicamente, recuperando los recursos después de que un proceso falle: hace rollback de las transacciones que el usuario tenía en curso, libera bloqueos a nivel de tabla/fila y otros recursos reservados por el usuario.
CKPT. Avisa al DBWR cuando sucede un checkpoint y actualiza las cabeceras de los ficheros de datos y de control (el DBWR volcará los buffers actualizados a los ficheros de datos). Si los checkpoints suceden muy frecuentemente puede haber contención en disco. Si tardan mucho se alargará el proceso de recovery. Como mucho sucederá un checkpoint al llenarse el redolog.
ARCH. Proceso opcional. Archiva automáticamente los redo log online si se activa el modo ARCHIVELOG; asegurando que se registran todos los cambios hechos en la base de datos. Archiva el redo log que se ha llenado, cuando sucede un “log switch”.
MMAN (>=10g). Memory Manager. Gestiona Automatic Shared Memory Managment.
MMON (>=10g). Memory Monitor. Genera snapshots del AWR (abre procesos esclavos M000).
MMNL (>=10g). Memory Monitor Light. Captura frecuentemente “session history” (V$ACTIVE_SESSION_HISTORY) y calcula métricas.
PSP0 (>=10G). Process spawner. Crea y gestiona otros procesos Oracle.