Sie sind auf Seite 1von 10

Administracin de Oracle 11g Arquitectura de la Base de datos (parte1)

4 febrero, 2014 by Sergio Centenero


One comment
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 ms una base de datos.
La Instancia esta formada por la SGA mas procesos en background.
La SGA (rea Global del Sistema) es una estructura bsica de memoria ( es una gran
cache ) donde Oracle cachea toda la informacin 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 tambin 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 sincronizacin son referencias al estado
coherente de todos los ficheros de la BD en un instante determinado, en un
punto de sincronizacin.

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 cclica de
modo que se van perdiendo los registros redo log que tienen una cierta
antigedad.

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 travs 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).
Administracin de Oracle 11g Arquitectura de la Base de datos (parte2)
4 febrero, 2014 by Sergio Centenero
No comments
En este capitulo nos vamos a centrar en como nos conectamos a una base de datos de
Oracle y que tipo de conexines podemos hacer hacia una base de datos, por ltimo
veremos como conectarnos a travs del SQL Developer a un servidor Oracle.

Para poder conectarnos a una Base de Datos Oracle, necesitamos una serie de
variables en el entorno del usuario del Sistema Operativo desde el que
realizaremos la conexin.

En el caso de unix/linux:
o

ORACLE_HOME : Contiene el directorio donde esta el software de


Oracle instalado.

ORACLE_SID: Es el nombre de nuestra base de datos o mejor dicho, el


identificador de la instancia Oracle.

PATH: $PATH:$ORACLE_HOME/bin .

LD_LIBRARY_PATH=$ORACLE_HOME/lib. Localizacin de las


libreras compartidas (Linux /Unix)

NLS_LANG=spanish_spain. Idioma del cliente (opcional)

Proceso de usuari: La ejecucin de la aplicacin que permite al usuario iniciar la


conexin. Por ejemplo cuando un usuario se conecta con el sql*plus

Proceso servidor: se crea en el SBD cuando el usuario se conecta a la base de


datos, y es el que realmente interacta con la base de datos.

Una conexin de un proceso de usuario a la al SBD es una sesin en la base de


datos (puede haber varias del mismo usuario) que se inician cuando el usuario se
valida contra la base de datos y termina al desconectarse.

Desconectar una sesin de un usuario podemos hacerlo de la siguiente manera


ALTER SYSTEM DISCONNECT SESSION sid, serial#';
existen opciones para la desconexin, por ejemplo [POST_TRANSACTION]
espera que termina de escribir en base de datos y una vez finalizado finaliza la
sesin y el [IMMEDIATE] finaliza la sesin inmediatamente, si al eliminar la
sesin esta metiendo datos, se hara rollback de los datos.
Desconectar destruye la conexin con el servidor dedicado ( o el circuito virtual
si MTS).

En nuestro base de datos por norma general tendremos tantas sesiones como clientes
estn conectados, conforme estos salen y entran se crearn o eliminaran sesiones.
Se crea un proceso por cada sesin que se establezca en base de datos.
Para que una base de datos Oracle funcione adecuadamente hay que proporcionar a
nuestro hardware suficientes recursos para que pueda trabajar.
Por ejemplo:

La instancia contiene luna SGA y esa SGA consume memoria RAM, por tanto
necesitamos saber cuanta memoria RAM necesitamos asignarle para que la base
de datos funcione bien.

El Nmero de sesiones simultaneas que se ejecutan (vamos suponer que


consumen cada proceso/sesin unos 10 megabytes). Si hay 10 usuarios
conectados necesitamos 100 megabytes, si hay 100 , necesitaremos 1000
megabytes.

Podemos hacer dos cosas o limitar el numero mximo de procesos que se pueden
ejecutar en esa instancia o tener suficiente memoria RAM para que todos clientes
puedan ejecutarse al mismo tiempo.

Otra solucin es a travs de una conexin con Servidor compartido (MTS) con un
sistema de Dispatcher, el Dispacher se encarga de recibir las peticiones de los usuarios y
el Dispacher por medio de una cola va tratando cada peticin.
La ventaja del servidor compartido es que nuestra base de datos requerir de menos
recursos de nuestro hardware.
El inconveniente es que el servidor compartido ralentiza las peticiones a la base de datos
debido a que las peticiones estn encoladas.
Tambin es posible simultanear los dos tipos de conexiones, por ejemplo nuestras
peticiones que se realicen a travs de nuestra pgina web se realicen a travs de un
servidor compartido, y la aplicacin de nuestra secretaria sea a travs de una conexin
con servidor dedicado.
Vale, ya tenemos un poco de teora, ahora vamos a ver como creamos una conexin para
la base de datos, para ello vamos a utilizar el SQL Developer.

Abrimos nuestra aplicacin SQL Developer.

Pulsamos en el boton + (en color verde).

Rellenamos los datos de conexin


o

Nombre de la Conexion: Nombre para identificar nuestra conexin a la


base de datos, por si tuvieramos muchas base de datos para que la
podamos identificar facilmente.

Usuario: Usuario de la base de datos.

Contrasea: Contrasea de la base de datos

Nombre del Host: La direccin ip o dominio de nuestro host donde esta


nuestra BD

Puerto: Es el puerto donde escucha nuestra BBDD por defecto es el 1521

Nombre del Servicio: El nombre de del servicio de nuestra DB

Pulsamos en Probar y comprobamos que en Estado aparece Estado:


Correcto

Pulsa Guardar para guardar la configuracin y no tenerla que meter cada vez
que abres el SQL Developer.

Por ltimo pulsamos en Conectar.

Una vez conectado nos debe aparecer nuestra conexin con la base de datos en la parte
izquierda del SQL Developer.

Administracin de Oracle 11g


Arquitectura de la Base de datos (parte3)

22 junio, 2014 by Sergio Centenero


No comments
En este capitulo nos vamos a centrar en aprender las estructuras de memoria que maneja
el servidor Oracle.
En la diapositiva podemos ver 2 estructuras de memoria dentro del servidor.

La SGA (System Global Area) es la cach de nuestra instancia donde se


cacheaban nuestras sentencias y los datos devueltos. Esta memoria es
compartida por todos los procesos.

La PGA (Program Global Area) es la zona de memoria privada de cada proceso


Oracle (tambin para los procesos background), donde la informacin que
contiene bsicamente informacin sobre la sesin (que usuario esta conectado,
privilegios, que cursores estn abiertos, buffer de ordenacin ). Los procesos
background tienen tambin su propia PGA

En la diapositiva superior podemos ver en la parte izquierda la estructura de un servidor


dedicado y en la parte derecha un servidor compartido.
Podis observar que en la parte izquierda (servidor dedicado) la SGA (estructura de
memoria compartida que proporciona la instancia) y para cada servidor dedicado
tendremos su PGA (la sesin y la pila).
Si os dais cuenta que en el modelo de la izquierda (servidor dedicado) se desperdicia
memoria ya que en la PGA se guarda un buffer de short area (que es utilizado para las
ordenadores), pero Qu pasa si esa sesin no hace ninguna ordenacin? es memoria
que se esta desperdiciando.
Para solucionar esto, Oracle a partir de la 9i introduce un concepto llamado
PGA_AGGREGATE_TARGET, esto permite definir un espacio compartido parecido
a la SGA para las PGAs.
En lugar de tener un buffer de ordenacin (sort area) dentro del proceso de la PGA,
estar dentro de un pool compartido, evitando la necesidad de asignar parmetros como
SORT_AREA_SIZE o HASH_AREA_SIZE a las memorias privadas de la PGA.
El valor mnimo de el PAGA_AGGREGATE_TARGET es 10 M.

Cmo configurar la memoria de Oracle?


Con Oracle 11g se configura la memoria del Servidor (SGA + PGA) con un slo
parmetro llamado MEMORY_TARGET.
En Oracle 11g solo hay que configurar el memory_target y memory_max_target.
En el memory target asignaremos el 80% de la memoria ram (como recomienda oracle)
El memory_max_target es la memoria maxima que puede utilizar, esto es utilizado ya
que reserva la memoria RAM.

MEMORY_TARGET dimensiona SGA + PGA. Puede crecer manualmente


hasta MEMORY_MAX_TARGET.

sga_tarjet, sga_max_size pga_aggregate_target se pueden dejar a cero


(sga_max_size, por defecto, sera el 60% de memory_target), o con un valor
mnimo.

En Linux, memory_target y memory_max_size estn limitados por el valor de


/dev/shm, para cada ua de las instancias que haya en el servidor: si /dev/shm
vale 2Gb, entonces ninguno de ellos pueden valer ms de 2Gb para cada
instancia del servidor.

Tambin hay que configurar el Bugger de Redo con log_buffer (igual que en 10g
y versiones anteriores).

V$MEMORY_DYNAMIC_COMPONENTS: tamaos actuales.

V$MEMORY_TARGET_ADVICE: recomdaciones de MEMORY_TARGET.

V$MEMORY_RESIZE_OPSS: operaciones de AMM.

Recomendaciones de Oracle

Oracle recomienda asignar un mximo del 80% de la RAM de la mquina para


el Servidor Oracle.

A su vez, de dicho 80%, recomienda asignar un mximo del 20% para la SGA

Das könnte Ihnen auch gefallen