Arquitectura del gestor.pdf

44
Arquitectura del gestor Características del DBMS

Transcript of Arquitectura del gestor.pdf

  • Arquitectura del gestor

    Caractersticas del DBMS

  • Objetivos

    Identificar y definir la estructura de memoria y procesos de la instancia

    Definir las estructuras fsicas de la base de datos

    Analizar los requerimientos para instalacin

    Instalar el software de BD en modo transaccional

    Verificar las variables de ambiente y archivos importantes para instalacin

    Configurar el DBMS

    Utilizar los comandos generales de alta y baja del DBMS

  • Arquitectura

    PGA

  • SERVIDOR ORACLE = INSTANCIA + BD

    El objetivo de esta arquitectura es que la mayora de procesos se realice en el

    SGA y no directamente en la BD

    PGA

  • Estructura de memoria y

    procesos de la instancia

  • PGA PROGRAM GLOBAL AREA

    El proceso servidor tiene su propia memoria privada PGA la cual es utilizada para realizar sus operaciones y

    almacenar informacin acerca de la sesin de usuario que

    est conectado.

  • Una instancia es el conjunto de procesos y reas de memoria SGA (System Global Area) del servidor que utiliza Oracle para

    administrar el acceso a una base de datos.

  • Shared Pool: es una cach que almacena parte del

    diccionario de datos y la compilacin de algunas

    consultas en SQL

  • Redo log buffer: contiene un registro de todas las transacciones dentro de la base, las cuales se almacenan en el respectivo archivo de Redo

    y en caso de siniestro

    se vuelven a ejecutar

    aquellos cambios que

    an no se hayan

    reflejado en el archivo de

    datos (commit).

    Utiliza un algoritmo de Reemplazo de paginas

    LRU

  • BUFFER CACHE

    Almacena copias de

    los bloques de datos,

    extrados de los ficheros

    de datos (data files)

    Gestionado por un

    algoritmo LRU.

    INSTANCE

    SGA

  • Procesos de la instancia

    SMON DBWR PMON CKPT LGWR ARCH

    BASE DE DATOS

    INSTANCIA

  • PMON PROCESS MONITOR

    Limpia aquellos procesos que el usuario termina de manera anormal,

    verificando consistencias, liberacin de recursos, bloqueos.

  • SMON SYSTEM MONITOR

    Despierta peridicamente y realiza algunas actividades entre las que se encuentran la recuperacin de errores y recuperacin de

    espacio.

    Aplica los cambios registrados en los redo log, abre la base de datos dejndola accesible a los usuarios, y hace rollback de las

    transacciones que no terminaron.

  • CKPT CHECKPOINT

    Sincroniza todo lo que se tenga en memoria, con sus correspondientes archivos en disco.

    Se activa cuando el REDO LOG esta casi lleno o cada cierto periodo de tiempo.

  • ARCH ARCHIVER

    Proceso opcional. Archiva automticamente los redo log

    Si se activa el modo ARCH se asegura que se registrarn todos

    los cambios hechos en la base de datos

  • DBWR DATABASE WRITER

    Escribe bloques de datos modificados del buffer al disco, aquellas

    transacciones que llegan a un estado de commit. Esto sucede

    cuando:

    Sucede un checkpoint.

    El nmero de buffers modificados alcanza un umbral.

    No quedan buffers libres.

    Borramos o truncamos una tabla.

  • LGWR LOG WRITER

    Escribe secuencialmente todo lo que se encuentra en el redo log

    buffer hacia el redo file

    Esto se realiza cuando:

    Se hace commit La redo log buffer cache se llena Siempre antes que escriba el DBWR.

  • Estructuras fsicas de la

    base de datos

  • DATA FILES

    Los ficheros de datos contienen los datos de la base de

    datos (informacin de las tablas, ndices, etc.). Tienen las

    siguientes caractersticas:

    Un fichero solo puede estar asociado con una base de datos.

    Los ficheros de datos tienen atributos que permiten reservar automticamente para ellos extensiones cuando

    se acaba el espacio.

    Uno o ms ficheros de datos forman una unidad lgica de almacenamiento llamada tablespace.

  • CONTROL FILES

    Un fichero de control contiene entradas que especifican la

    estructura fsica de la base de datos. En particular contiene:

    El nombre de la base de datos.

    Los nombres y localizacin de los ficheros de la base de datos y los ficheros de redo log.

    Fecha de creacin de la base de datos.

    Informacin de sincronizacin para el proceso de recuperacin de la base de datos.

  • REDO LOG FILES

    Los ficheros redo log guardan

    todos los cambios hechos en los

    datos y permiten volver a aplicarlos

    en caso de cada de la BD.

    Los ficheros redo log se organizan

    en grupos. Una BD requiere al

    menos dos grupos. Cada fichero

    redo log dentro de un grupo

    se llama miembro.

    Trabaja de manera circular.

  • Ejemplo de funcionamiento de la arquitectura con la ejecucin de una sentencia SELECT

  • CONEXIN A UNA BASE DE DATOS

    SQLPLUS

    PROCESO SERVIDOR

    CONEXIN CON LA

    INSTANCIA

    EJECUCION DE

    SENTENCIAS SQL

    CONEXIN CON EL

    SERVIDOR

  • Select nombre from alumnos where id=35

    1 2 3

    4

    5

  • update alumnos set nombre=Juan where id=35

    1 2 3

    4

    5 6

    En Redo log se

    almacena

    la direccin fsica del

    bloque a modificar y

    contenido nuevo

  • Instalacin

  • Una configuracin mnima de hardware:

    RAM: 1 GB

    MEMORIA VIRTUAL: Doble de la cantidad de RAM

    ESPACIO EN DISCO DURO: Mnimo 4 GB

    PROCESADOR: 1 GHz mnimo

    Configuracin deseable:

    RAM: 4 RAM

    DISCO DURO: 5 GB PARA SW

    2 GB BD

  • Herramientas Utilizadas para Administrar

    Oracle Universal Installer

    Asistente de Configuracin de Bases de Datos

    Asistente de Actualizacin de Bases de Datos

    Oracle Net Manager

    Oracle Enterprise Manager

    SQL*Plus

    Recovery Manager

    Oracle Secure Backup

    Pump de datos

    Herramientas de lnea de comandos

  • Descargar el sw de Oracle (gratuito solo para fines educativos a travs de la web oficial) y manual de instalacin

    ORACLE 11G REALESE 2

    Elegir nuestro SO, etc.

    Tipos de instalacin ENTERPRISE EDITION

    ESTNDAR EDITION

    Definicin de variables

    Grupo del SO con privilegios DBA grupo de usuario principal, el cual se utilizara para la instalacin el

    sw

    Per grupo de usuario con menos privilegios, por ejemplo: para arrancar la BD, parar, hacer copias de seguridad, etc.

    Comprobacin automtica de los requerimientos del SO

  • Definicin de Variables de Entorno

    ORACLE_BASE: directorio a partir del cual se instalan todos los productos

    de oracle, llamado OFA OPTIMAL FLEXIBLE ARQUITECTURE de ORACLE

    ORACLE_HOME: Directorio que contiene el software de la BD de Oracle, parte de ORACLE_BASE

    ORACLE_SID: Nombre de la instancia inicial (ORCL por defecto)

    NLS_LANG: Configuracin del idioma, territorio y juego de caracteres del cliente

    LD_LIBRARY_PATH: Libreras compartidas con el SO

    WINDOWS:

    SE CREAN AUTOMATICAMENTE

  • Procedimiento general

    de instalacin

  • PROCESO INSTALACIN LINUX

    http://www.puschitz.com/InstallingOracle10gOnSUSE.shtml#StartupAndShutdownOfTheOracle10gDatabase

    Downloading Novel SUSE Linux Downloading Oracle Software Checking Memory and Swap Space Checking Software Packages (RPMs) Checking Kernel Parameters Sizing Disk Space for Oracle Creating Oracle User Accounts Creating Oracle Directories Installing Oracle10g Oracle Post-installation Tasks

    Startup and Shutdown of the Oracle10g Database

  • Configuracin

    Para arrancar la instancia, el servidor Oracle tiene que leer el fichero de parmetros de inicializacin (spfile o

    init), cuya ubicacin predeterminada es

    $ORACLE_HOME/dbs

  • CONFIGURACIN

    Init: se trata de un fichero de texto y editable

    Spfile: es un fichero binario, no editable pero visualizable,

    Se crea, a partir de un init, con:

    CREATE SPFILE [='nombre'] FROM PFILE [='nombre'];

    Si se omiten los nombres, toma los valores por defecto.

    La BD no podr abrir el nuevo spfile hasta el siguiente arranque.

    Se puede crear un init a partir de un spfile, invirtiendo la sintaxis.

    Los parmetros del spfile se modifican con:

    ALTER SYSTEM SET parametro = valor [SCOPE = MEMORY| SPFILE | BOTH]

    Parmetros implcitos y explcitos

  • ARRANQUE Y PARADA DE LA

    BASE DE DATOS

  • ACCESO A SQLPLUS

    Cuando creamos una BDO se crean automticamente al usuario SYS con el rol DBA.

    El SYS, cuya clave inicial es change_on_install, es el

    habitualmente se usa para arrancar y parar la base de datos, as como para modificar los componentes de la misma (como instalar nuevas opciones).

    Para conectar como SYS:

    CONNECT SYS AS SYSDBA

    CONNECT / AS SYSDBA

    El DBA por excelencia. Se usa para las tareas administrativas habituales: alta de usuarios, creacin de tablespaces, etc.

  • ARRANQUE DE LA BDO

    Cuando arrancamos una BDO, pasa por varios estados hasta que finalmente queda accesible a los usuarios: nomount, mount y open.

    nomount se arranca la instancia:

    lectura del fichero de parmetros (spfile o init), creacin de la SGA, arranque de los procesos background y apertura del fichero alert$ORACLE_SID.log.

    Mount la BD se monta abriendo el fichero de control y obteniendo de l los nombres de los ficheros que la componen: datafiles y redo log.

    Open se abre la BD, procediendo a la apertura de los ficheros de datos (datafiles) y los ficheros redo log. El servidor oracle comprueba la consistencia de la base de datos, y si es necesario el proceso SMON inicia la recuperacin de la instancia.

  • COMANDO STARTUP

    Arranca la instancia y abre la BD. Permite parar el proceso de

    arranque de la BD en cualquiera de sus fases (NOMOUNT,

    MOUNT).

    STARTUP (abre la bd con el fichero de parmetros por defecto).

    STARTUP PFILE=/home/nombreinit.ora

    STARTUP NOMOUNT (para crear la base de datos).

    STARTUP MOUNT (para renombrar datafiles, activar

    ARCHIVELOG o hacer una recuperacin completa de la BD).

    STARTUP RESTRICT (slo permite la conexin de usuarios con el privilegio RESTRICTED SESION).

    STARTUP FORCE (hace SHUTDOWN ABORT y arranca la BD).

  • PARAR LA BASE DE DATOS SHUTDOWN

    Hay determinadas operaciones que requieren parar la BD; como la actualizacin de algunos parmetros del init.ora o hacer una copia fsica de la BD (copia en frio).

    SHUTDOWN NORMAL, espera a que terminen todas las transacciones en curso y todas las sesiones, fuerza un checkpoint, adems de cerrar todos los ficheros y destruir (parar) la instancia.

    SHUTDOWN TRANSACTIONAL, slo espera a que terminen las transacciones en curso, fuerza un checkpoint, cierra los ficheros y destruye (para) la instancia.

    SHUTDOWN IMMEDIATE, hace rollback de todas las transacciones en curso y cierra todas las sesiones; cierra y desmonta la BD, adems de forzar un checkpoint, cerrar ficheros y parar la instancia.

    SHUTDOWN ABORT, cierra la instancia (destruye procesos background y SGA) sin esperar a desmontar ni cerrar la BD (como en una caida, ni hace checkpoint ni cierra ficheros). Requiere recovery de la instancia al arrancar (SMON).

  • Sintaxis:

    SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]

    NOTA: No se permiten ms conexiones una vez iniciado el SHUTDOWN

    y este no se puede parar.

  • Fichero de log

    alert_$ORACLE_SID.log

    Recoge informacin de estado y errores:

    Arranque y parada

    Parmetros del init sin valores por defecto

    Arranque de los procesos background

    Cambio de fichero redolog

    Creacin de tablespaces y segmentos de rollback

    Comandos alter (alter database, alter tablespace, etc)

    Errores ORA-600 y los que indican falta de espacio (llenado de tablas, ndices, tablespaces, etc)

  • FICHEROS DE TRAZA DE LOS PROCESOS

    BACKGROUND

    Registran errores producidos en los procesos background de la instancia: LGWR, DBWR, SMON, PMON, etc.

    {ORACLE_SID}_nombreproceso_pid.trc

  • FICHEROS DE TRAZA DE LOS PROCESOS DE USUARIO

    Recogen estadsticas de seguimiento de sentencias SQL o errores en las sesiones de usuario.

    {ORACLE_SID}_ora_pid.trc;

    tiles para el ajuste de sentencias SQL

    Nivel de sesin

    ALTER SESSION SET SQL_TRACE=TRUE/FALSE;

    Desde una sesin del DBA con

    dbms_system.set_sql_trace_in_session(sid,serial,true)

    A nivel de instancia

    con el parmetro SQL_TRACE=TRUE

    Utilidad TKPROF

    tkprof cursoXY_ora_23654.trc salida.txt explain=scott/tiger sys=no (solo analiza las sql del usuario)

  • Arquitectura del gestor

    Caractersticas del DBMS