administración de bases de datos - kybeledbd-2009-10... · administrador de la base de datos 8...

100
Administración de Bases de Datos Diseño de Bases de Datos y Seguridad de la Información Curso 2009-2010 1

Upload: others

Post on 17-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Administración de Bases de

Datos

Diseño de Bases de Datos y Seguridad

de la Información

Curso 2009-2010

1

Page 2: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

2

Page 3: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

3

Page 4: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Introducción

¿Qué es la Administración?

El Administrador de la Base de Datos (DBA- DataBase

Administrator) es el responsable del Diseño de la

Arquitectura, Control y Administración de la Base de

Datos.

Función que puede ser desempeñada por una persona o

un grupo de personas.

Función reconocida por diferentes grupos de

estandarización (Codasyl, ANSI/X3/SPARC, ...).

4

Page 5: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

IntroducciónArquitectura ANSI/X3/SPARC propone tres tipos de administradores

5

ESQUEMA

EXTERNO 1

ESQUEMA

EXTERNO n

ESQUEMA

CONCEPTUAL

ESQUEMA

INTERNO

DATOS ALMACENADOS

NIVEL

EXTERNO

Correspondencia

Externa/Conceptual

NIVEL

CONCEPTUAL

Correspondencia

Conceptual/Interna

NIVEL

INTERNO

ESQUEMA

EXTERNO 1

ESQUEMA

EXTERNO n

ESQUEMA

CONCEPTUAL

ESQUEMA

INTERNO

DATOS ALMACENADOS

NIVEL

EXTERNO

Correspondencia

Externa/Conceptual

NIVEL

CONCEPTUAL

Correspondencia

Conceptual/Interna

NIVEL

INTERNO

Adm. empresa

Adm. aplicaciones

Adm. BD

Page 6: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

6

Page 7: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Administrador de la Base de Datos

7

Funciones principales del ABD:

o Planificación, diseño e implementación de los

Sistemas de Bases de Datos de la organización.

o Comunicación con y formación de los usuarios.

o Son los responsables del establecimiento de

normas y procedimientos.

Page 8: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Administrador de la Base de Datos

8

Comunicación con los usuarios.

Un SBD suele estar compuesto por tres componentes:Una BD central con la mayoría de los datos.

Varias BDs funcionales, con funcionalidades concretas y

utilizadas por un conjunto limitado de programas.

Algunas BDs dedicadas, para aplicaciones únicas.

Centralizando los datos se evita la redundancia.

La propiedad y el control de los datos se transfieren al DD

central que almacena el registro de la propiedad y el uso de

cada dato.

Page 9: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Administrador de la Base de Datos

9

Comunicación con los usuarios.

o Usuarios pueden mostrarse resistentes al cambio

sobre el control de los datos.

puede mitigarse educando activamente a los

usuarios sobre las ventajas de aprender la

tecnología de las BDs, ya que les va a hacer más

efectivos y eficientes en sus tareas.

o Educación de usuarios es responsabilidad del ABD junto

con los directivos de más alto nivel.

o La formación y el entrenamiento deben dar al personal

una visión amplia de la función de un SBD como parte

integral del SI de la empresa.

Page 10: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

10

Administrador de la Base de Datos

Personas con las que interactúa el Administrador de la BD:

con usuarios en general: para especificar los requisitos que debe cumplir la BD, estudiar las necesidades y la mejor manera de satisfacerlas.

con directivos: que fijarán los objetivos de la BD para que ésta responda a los objetivos generales de la empresa.

con analistas y programadores, a los que el ABD deberá proporcionar información acerca de la estructura de los datos, especificaciones para las aplicaciones que vayan a desarrollarse, etc.

con operadores, con ellos, el ABD deberá analizar los procedimientos de

recuperación a aplicar en la explotación de la BD ante fallos del sistema, normas para copias de seguridad, rearranque, etc.

con suministradores, para corregir problemas que puedan producirse en el sistema de base de datos, además de estar al corriente de nuevas herramientas, interfaces, programas, etc, que estén desarrollándose y que sean de interés en el entorno de la BD.

con personal de formación, a fin de preparar los planes adecuados de formación sobre bases de datos a todos los niveles de la empresa.

Page 11: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Administrador de la Base de Datos

11

Establecimiento de normas y procedimientos

La administración efectiva de una BD requiere que se

establezcan normas y procedimientos uniformes para

controlar la seguridad y la integridad de los datos

eficientemente.

o En el área de programación, las normas se establecen

para asegurar que los programas se revisan y se prueban

antes de pasar a su producción.

o Los procedimientos se crean para la corrección de

errores, el tratamiento de los puntos de control y para

garantizar la copia de seguridad y la recuperación.

Page 12: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Administrador de la Base de Datos

12

Tareas del Administrador de la Base de datos

Instalación del Sistema Gestor de la Base de Datos (p.e. Oracle10g)

Diseño de la arquitectura de la BD y de modificaciones posteriores

Creación de la Base de Datos

Ajustes en la Base de Datos Eficiencia

Seguridad de la Información (Confidencialidad)

Copias de Seguridad y Recuperación de Información (Disponibilidad)

Mantener el gestor y sus herramientas en un perfecto

estado de funcionamiento para conseguir una mayor

eficacia y rapidez en el acceso de la información.

Page 13: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Administrador de la BD

13

Objetivo principal:

Mantener la integridad, la confidencialidad y la

disponibilidad de los datos del sistema.

Page 14: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

14

Page 15: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

15

¿Qué es Oracle10g?

Sistema Gestor de Bases de Datos Objeto-

Relacionales

Principales características de la arquitectura Oracle:

o Única copia del núcleo de Oracle (Oracle Server)

o SGA (Área Global Compartida)

o Mecanismos de Recuperación de Errores

Arquitectura Interna:

Física: ficheros del Sistema Operativo

Lógica: conceptos de almacenamiento a nivel de BD

La estructura lógica y física no tienen porqué coincidir

Page 16: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

16

Conexión a una BD

Proceso

Servidor

Servidor ORACLEProceso

Usuario

ClienteServidor

Usuario:SQL*Plus, Oracle Enterprise Manager,

Developer/2000, ...

• Incluye User Program Interface (UPI)

• Genera llamadas al proceso servidor

• Configuración de Servidor Dedicado: 1 a 1

• Usa una PGA (Program Global Area) exclusiva

• Incluye Oracle Program Interface (OPI)

• Procesa peticiones de cliente

• Entrega de resultados a cliente

Page 17: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

17

Procesamiento de una consulta

Proceso

Usuario

Compilar

Sentencia

OK

Manejador

EjecutarOK

Manejador

Cargar

Resultados

SELECT * FROM Alumnos ORDER BY apellidos;

Proceso

Servidor

Page 18: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

18

Procesamiento de una modificación

UPDATE Alumnos set edad=19 where nombre=‘María’;

Proceso

Usuario

Compilar

Sentencia

OK

Manejador

Ejecutar

OK

Proceso

Servidor

Page 19: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

19

¿Qué es una instancia de BD?

Consiste en una estructura de memoria SGA (System Global

Area) y un conjunto de procesos usados por el servidor de Oracle

para gestionar una BD.

Es una forma de acceder a una BD.

Se identifica por un ORACLE_SID.

Puede abrir y usar sólo una BD en cualquier momento.

Instancia

SGA

Page 20: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

20

¿Qué es una BD Oracle?

Representa la estructura física y está compuesta por un

conjunto de ficheros (SO).

Se identifica por un nombre de BD: DB_NAME.

Se recomienda: ORACLE_SID=DB_NAME

Control

files

Redo log

files

Data filesPassword

file

Parameter

file

Archived

log files

Base de Datos

Tablespaces

Transacciones y

cambios en la BD

Información BD

Arranque y parada de la BD

Ubicación de ficheros de datos

Secuencia Redo Log Actual

Page 21: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

21

Instancia de BD

Procesos

Instancia

SGA

DBWR (Database Writer)

LGWR (Log Writer)

SMON (System Monitor)

PMON (Process Monitor)

CKPT (Checkpoint Process)

Database

Buffer Cache Redolog Buffer Shared PoolLibrary Cache

Dictionary Cache

Page 22: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

22

SGA: Shared PoolShared pool

Library

cache

Data

dictionary

cache

– Se usa en la fase de compilación

– Tamaño se define en el parámetro SHARED_POOL_SIZE

– Dos componentes usados para compilar una sentencia SQL:• Library cache contiene la sentencia SQL, el código compilado, y un

plan de ejecución

• Data dictionary cache contiene las definiciones de tabla y columnas así como los privilegios (bloqueos)

Page 23: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

23

– Número de búffers se define en DB_BLOCK_BUFFERS

– Tamaño de cada bloque se basa en el tamaño del bloque

(DB_BLOCK_SIZE)

– Almacena los últimos bloques usados

SGA: Database Buffer Cache

Page 24: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

24

Proceso Servidor guarda el valor antiguo en el Segmento de Rollback

− Poder deshacer cambios

− Consistencia en lectura

− Recuperación de la BD en caso de fallo

Valor Antiguo Nuevo

Valor

Tabla

Update

Segmento

de Rollback

Page 25: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

25

– Tamaño definido en el parámetro LOG_BUFFER (en bytes)

– Registra los cambios realizados en la instancia

– Se usa de forma secuencial (intercalando transacciones)

– Es circular

SGA: Redo Log Buffer

Page 26: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

26

Instancia

SGA Shared pool

Library

cache

Redo log

buffer

Database

buffer

cache

Datadictionary

cache

1

Proceso

Servidor

Control

files

Redo log

files

Data files

Base de Datos

2

3

4

5

Procesamiento de una sentencia de manipulación

1) Compilación

2) Ejecución

Bloqueos

“dirty”

UPDATE Alumnos

set edad=19

where nombre=‘María’;

Page 27: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

27

PROCESOS DE UNA INSTANCIA:

• DBWR (Database Writer)

responsable de escribir las modificaciones de los datos en la BD

• LGWR (Log Writer)

registra los cambios registrados en el buffer redo log en la BD

• SMON (System Monitor)

su principal función es comprobar la consistencia e iniciar la

recuperación de la BD si está abierta

• PMON (Process Monitor):

refresca los recursos si falla algún proceso

• CKPT (Checkpoint Process):

responsable de actualizar la información del estado de la BD

siempre que los cambios en la caché del buffer se almacenan

permanentemente en la BD

V$BGPROCESS:

Vista que contiene los procesos en segundo plano disponibles en la BD

Page 28: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

28

Instancia

SGA Shared pool

DBWR

Database

buffer

cache

Control

filesRedo log

files

Data files

Database Writer (DBWR)

Base de Datos

dirty buffers

Page 29: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

29

Log Writer (LGWR)Instancia

SGA Shared pool

Redo log

buffer

LGWR

Control

filesRedo log

files

Data files

Base de Datos

Page 30: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

30

Procesamiento de COMMIT

Shared pool

Redo log

buffer

LGWR

Control

files

Redo log

files

Data files

Base de Datos

Proceso

Servidor

1

2Proceso

Usuario

3

Database

buffer

cache4

SGA

Instancia

registro Commit (SCN)

commit

Se informa

al usuario

Transacción

completada

SCN (System Change Number)

Secuencial

Page 31: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

31

Ficheros de la Base de Datoso Los datos se almacenan en uno o más ficheros físicos

situados en uno o varios discos.

o Cada fichero sólo puede estar asociado a una BD.

o Oracle crea un espacio físico del tamaño que elija el

DBA y luego lo va rellenando con datos.

Espacios de Tabla (Tablespaces)o Unidades lógicas de almacenamiento en las que se

divide una BD.

o Un espacio de tabla puede estar almacenado en varios

ficheros físicos; para Oracle son una única unidad.

o Sirven para racionalizar la información. Mejora de

funcionamiento.

Page 32: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Arquitectura de Oracle

32

Segmentoso Agrupación de bloques Oracle (Extensiones) no

necesariamente contiguos.

o Los tipos de segmentos más importantes son: tablas,

índices y segmentos de rollback (se mantienen por

compatibilidad pero actualmente se gestiona de forma

automática).

Extensiones

o Una extensión es un conjunto de datos (bloques

Oracle) contiguos.

Page 33: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

33

¿Cómo se almacena una BD?

TempSystem

Datos ÍndicesTools

Nivel Lógico:

Tablespaces Base de Datos

Rollback

Arquitectura de Oracle

Page 34: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

34

¿Cómo se almacena una BD?

Nivel Lógico: Base de Datos

Tablespace1 Tablespace2 TablespaceN

Tablas, Índice y

AgrupacionesTablas, Índice y

AgrupacionesTablas, Índice y

Agrupaciones

Seg1 SegN Seg1 SegN Seg1 SegN

E1 EN E1 E1 E1E1 E1 ENEN ENENEN

Arquitectura de Oracle

Page 35: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

35

¿Cómo se almacena una BD?

Nivel Físico:

F2_Tools

F1_Tools

F1_Temp

F3_Índices

F2_Índices

F1_Índices

F3_Datos

F2_Datos

F1_Datos

F1_System

Base de Datos

F1_Rollback

Arquitectura de Oracle

Page 36: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

36

Database

Lógico Físico

Tablespace Data file

O/S BlockOracle

block

Segment

Extent

ME/R de BD Oracle

Arquitectura de Oracle

Page 37: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

37

Page 38: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

38

Arranque y Parada de una BD

Se puede hacer manualmente desde el

Servidor.

Automáticamente cada vez que se arranque o

pare la máquina.

Page 39: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

39

Arranque y Parada de una BD Arranque de la BD

Etapas de arrancar una base de datos:

NOMOUNTLeer INIT.ORA

Identificar ficheros de control

Crear e inicializar SGA

Lanzar procesos de segundo plano

MOUNTAbrir ficheros de control

Monta la BD

OPENAbrir los ficheros de datos

Abrir los ficheros redolog que estén on-line

¿Recuperación?

Startup [open] Startup mount Startup nomount

DBWR (Database Writer)

LGWR (Log Writer)

SMON (System Monitor)

PMON (Process Monitor)

CKPT (Checkpoint Process)

Información BD

Arranque y parada de la BD

Ubicación de ficheros de datos

Secuencia Redo Log Actual

Page 40: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

40

Arranque y Parada de una BD

Arranque de la BD

Formas de arrancar una base de datos:o Arrancar la instancia pero sin montar la BD (creación BD o

pérdida fichero control):SQL> connect internal;

SQL> set oracle_sid = BDA;

SQL> startup nomount [dbname];

o Arrancar la instancia, montar la BD pero no abrirla (ALTER

DATABASE):SQL> startup mount [dbname];

o Arrancar la instancia, montar la BD y abrirla ( modo general y

modo restringido): SQL> startup open [dbname]; o startup restrict;

o Arrancar la BD con un fichero de parámetros específico:SQL> startup pfile=/disco0/oracle/dbs/initSID.ora;

DESDE LAS ÚLTIMAS VERSIONES SPFILE

identificación a nivel de SO

cadena de conexión

Page 41: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

41

Arranque y Parada de una BD Parada de la BD

Formas de parar una base de datos:o Parada normal: permite terminar trabajos pendientes. No

permite nuevas conexiones. set ORACLE_SID=SID

SQL> connect internal;

SQL> shutdown; o shutdown normal;

o Parada inmediata: sin esperar a que los usuarios que están

conectados cierren su sesión normalmente. Para todas las

transacciones sin validar Rollback. Proceso de recuperación

automático (sin intervención DBA).SQL> shutdown immediate;

o Interrupción de una instancia: si BD no funciona bien y

ninguna de las anteriores opciones funciona. Transacciones

no válidas no se les ejecuta un Rollback. Desconexión de

todos los usuarios. Recuperación al arrancar la BD (a partir de

versión 8i de ORACLE se realiza de forma automática).SQL> shutdown abort;

Page 42: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

42

Ejemplo Transferencia Bancaria

1. Consultar las cuentas para recuperar el estado

actual

2. Ejecutar INSERT y DELETE

3. Comprometer los datos (COMMIT)

4. Desconexión

NORMAL Espera a que se desconecte.

INMEDIATE Termina de ejecutar las sentencias

de 2 y luego deshace la transacción.

ABORT Termina la ejecución de la sentencia en

curso pero no realiza el ROLLBACK.

Arranque y Parada de una BD

Page 43: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

43

OPEN

MOUNT

NOMOUNT

SHUTDOWN

Se abren todos los

ficheros, tal y como

se describe en los

ficheros de control de

esta instancia.

Ficheros de

control abiertos

para esta

instancia

Instancia

iniciada

Arranque y Parada de una BD

Page 44: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

44

Page 45: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

45

Creación de una Base de Datos

Pasos Previos:

o Estimar tamaño que vamos a necesitar (¿BD anterior?)

o Modelo Conceptual--> Modelo Lógico Estándar /

Específico

o Tipo de Protección y Seguridad necesaria

o Opcionalmente: Copia de Seguridad de Datos de BD

anterior

BD

Page 46: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

46

Creación de una Base de Datos

Pasos para la creación de la BD:

o Crear fichero de parámetros INITSID.ORA:DB_NAME, DB_BLOCK_SIZE, DB_BLOCK_BUFFERS,

PROCESSES, ROLLBACK_SEGMENTS, ...

o Activar la instancia de BD que vamos a crear: SQL> STARTUP NOMOUNT;

o Creación de la BD: SQL> CREATE DATABASE basedatos

controlfile_reuse

logfile ‘log1’, ‘log2’ size 500K

datafile ‘ora1.dbf’ size 50M;− Creación de: ficheros de datos, ficheros de control, ficheros redolog,

tablespace SYSTEM, segmentos de rollback de SYSTEM, diccionario de

datos, administradores SYS y SYSTEM.

− Se monta y abre la BD.

SQL> ALTER DATABASE OPEN;

Generación automática de

ficheros de control

Page 47: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

47

# Initialization Parameter File: initSID.ora

db_name = prueba

control_files = (/DISK1/control01.ctl, /DISK2/control02.ctl)

db_block_size = 8192

db_block_buffers = 2000

shared_pool_size = 30000000

log_buffer = 64K

processes = 50

db_files = 100

log_files = 10

max_dump_file_size = 10240

background_dump_dest = (/home/disk3/users/BDUMP)

user_dump_dest = (/home/disk3/users/UDUMP)

core_dump_dest = (/home/disk3/users/CDUMP)

rollback_segments = (r01,r02,r03,r04,r05,r06,r07,r08)

...

Ajuste de Parámetros

Creación de una Base de Datos

Page 48: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

48

Ajuste de Parámetros

Creación de una Base de Datos

DB_NAME: indica el identificador de la BD que en este caso es „prueba‟. Debe tener

como máximo 8 caracteres. Único parámetro obligatorio.

CONTROL_FILES: Este parámetro contendrá el nombre de los ficheros de control y

su ubicación, como, por ejemplo: /DISK1/control01.ctl (mínimo 2 en distintos discos)

DB_BLOCK_SIZE: Tamaño del bloque de datos de Oracle. Por defecto: 2K o 4K. Una

vez fijado no puede modificarse.

DB_BLOCK_BUFFERS: Especifica el número de buffers de la caché en la SGA.

Cuanto más grande, menos acceso a disco tendremos. Sin embargo, ocuparemos

más memoria. Compromiso de eficacia y rapidez.

SHARED_POOL_SIZE: Tamaño en bytes del pool compartido. Por defecto:

3.500.000.

LOG_BUFFER: Número de bytes asignados al buffer de redo log en la SGA.

PROCESSES: Máximo número de procesos de SO que pueden acceder de forma

concurrente. Mínimo: 1 por usuario + procesos de arrancados con cada instancia.

DB_FILES: Número de ficheros que se podrán crear en una BD.

LOG_FILES: Máximo número de ficheros de log.

MAX_DUMP_FILE_SIZE: Máximo tamaño en bloques de SO de los ficheros de traza.

Page 49: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

49

Ajuste de Parámetros

Creación de una Base de Datos

BACKGROUND_DUMP_DEST: Ubicación de los ficheros de las trazas de los

procesos.

USER_DUMP_DEST: Ubicación de los ficheros de traza de los usuarios.

CORE_DUMP_DEST: Ubicación de los ficheros de traza de los ficheros core.

ROLLBACK_SEGMENTS: Nombres de los segmentos de rollback.

Otros parámetros relevantes:• AUDIT_TRAIL

• DML_LOCKS

• IFILE

• LICENSE_MAX_SESSIONS

• LICENSE_MAX_USERS

• LOG_ARCHIVE_BUFFER_SIZE

• LOG_ARCHIVE_BUFFER

• LOG_ARCHIVE_DEST

• LOG_ARCHIVE_START

• NLS_DATE_FORMAT

• NLS_CURRENCY

• NLS_LANGUAGE

• NLS_TERRITORY

• OPEN_CURSORS

• SESSIONS

• TRANSACTIONS

http://otn.oracle.com/pls/db92/db92.initora?remark=homepage

Page 50: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

50

Page 51: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

51

Gestión de Espacios de Tablas (Tablespaces)

Tablespace: Es una unidad lógica que permite particionar la BD y asignar

recursos de forma individual y más racionalizada, separando lógicamente

los datos. Sascha Ossowski

Creación de un nuevo Tablespace CREATE TABLESPACE nombre_tablespace

DATAFILE „nombre_fichero‟ SIZE tamaño [REUSE] [AUTOEXTEND ON]

[,„nombre_fichero‟ SIZE tamaño [REUSE] [AUTOEXTEND ON]]

[MINIMUM EXTENT tamaño [K|M]] /*control de la fragmentación*/

[DEFAULT STORAGE(

INITIAL tamaño [K|M] /*mínimo 2* tamaño del bloque*/

NEXT tamaño [K|M] /*mínimo tamaño del bloque*/

MINEXTENTS número /*mínimo 1*/

MAXEXTENTS número | UNLIMITED /*mínimo 1*/

PCTINCREASE valor) ]

[ONLINE|OFFLINE];

CREATE TEMPORARY TABLESPACE nombre_tablespace_temp

TEMPFILE „nombre_fichero‟ SIZE tamaño;

Extensiones de tamaño fijo de 1M

)2(

1001*

n

n

EPCTINCREASNEXTSize

Page 52: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

52

Gestión de Espacios de Tablas (Tablespaces)

Ampliación de un Tablespace

Añadir un nuevo fichero:ALTER TABLESPACE nombre_tb ADD DATAFILE ‘fichero’ SIZE tamaño [REUSE];

Agrandar el tamaño de un fichero existente en un tablespace:ALTER DATABASE DATAFILE ‘fichero.dbf’ RESIZE tamaño;

Page 53: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

53

Gestión de Espacios de Tablas (Tablespaces)

Modificación de un Tablespace

Cambiar los valores de almacenamiento por defecto:ALTER TABLESPACE nombre DEFAULT STORAGE (...);

Sólo para los objetos nuevos que se creen.

Disponibilidad de un Tablespace

Un tablespace puede estar activo o desactivado. Si está desactivado los

usuarios no pueden acceder al mismo.

Para cambiar su estado:ALTER TABLESPACE nombre ONLINE|OFFLINE {normal|temporary|immediate|for

recover};

Borrado de un Tablespace

¡CUIDADO! DROP TABLESPACE nombre [INCLUDING CONTENTS] [CASCADE CONSTRAINTS];

No borra los ficheros asociados.

DROP TABLESPACE nombre INCLUDING CONTENTS AND DATAFILES;

Fuerza el borrado del contenido y de los ficheros asociados al tablespace.

Page 54: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

54

Gestión de Espacios de Tablas (Tablespaces)

Modificación de un Tablespace

Poner un tablespace en modo de SÓLO LECTURA:ALTER TABLESPACE nombretb READ ONLY;

Volver a poner un tablespace en modo de ESCRITURA:ALTER TABLESPACE nombretb READ WRITE;

Tamaño de una base de datos

Select SUM(bytes) FROM DBA_DATA_FILES;

Ficheros Autoextensibles ALTER DATABASE DATAFILE „fichero.dbf‟ AUTOEXTEND ON [MAXSIZE tamaño K];

Para desactivar la opción de autoextensible:ALTER DATABASE DATAFILE „fichero.dbf‟ AUTOEXTEND OFF;

DBA_DATA_FILES:

Vista del diccionario de datos que contiene información sobre todos

los ficheros de la BD.

Page 55: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

55

Gestión de Espacios de Tablas (Tablespaces)

Renombrar ficheros de un Tablespace

Poner el tablespace “off-line”

Copiar los ficheros que queremos renombrar con su nuevo

nombre o a una nueva ubicación.

ALTER TABLESPACE nombre

RENAME DATAFILE „fichero_ant‟

TO „fichero_nuevo‟;

Poner el tablespace “on-line”

Restricciones:

El máximo número de ficheros asociados a un tablespace no

puede exceder el número máximo de ficheros de datos

(parámetro DATA_FILES).

DBA_TABLESPACES o USER_TABLESPACES:

Vista del diccionario de datos que contiene información sobre todos

los espacios de tabla de la BD.

Page 56: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

56

Gestión de Espacios de Tablas (Tablespaces)

Creación de una Tabla dentro de un Espacio de Tabla CREATE TABLE [esquema.] tabla

(columna tipo_datos [ , columna tipo_datos ] ...)

[TABLESPACE nombre_tablespace ]

[ PCTFREE integer ]

[ PCTUSED integer ]

[ STORAGE storage-clause ]

[ INITRANS integer ]

[ MAXTRANS integer ]

[LOGGING | NOLOGGING]

[CACHE | NOCACHE]];

storage_clause:= =

( [INITIAL integer[K|M]]

[NEXT integer[K|M]]

[MINEXTENTS integer]

[MAXEXTENTS {integer|UNLIMITED}]

[PCTINCREASE integer])BLOQUE de ORACLE

Cabecera

ESPACIO

LIBRE

DATOS Minimum Extent del TB

Minimum Extent del TB

Redondeo a la alza

Page 57: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

57

Gestión de Espacios de Tablas (Tablespaces)

Parámetros:

esquema es el propietario de la tabla

tabla es el nombre de la tabla

columna es el nombre de la columna

tipo_datos es el tipo de datos de la columna

TABLESPACE identifica el espacio de tabla donde se creará la tabla

PCTFREE es la cantidad de espacio reservada en cada bloque

(porcentaje del espacio total) para el crecimiento de las filas- Actualizaciones Frecuentes: ↑ PCTFREE

PCTUSED determina el límite inferior de espacio usado en cada bloque

antes de que esté disponible para inserciones de filas adicionales

DBA_TABLES (también USER_TABLES, ALL_TABLES):

Vista del diccionario de datos que contiene información sobre todas

las tablas de la BD .

Page 58: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

58

Page 59: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

59

Usuarios: Entidad que tiene acceso a la BD bajo ciertas condiciones y

pudiendo realizar determinadas tareas definidas por el administrador.

Creación de Usuarios

CREATE USER usuario IDENTIFIED BY password

[DEFAULT TABLESPACE nombre_tb] /*por defecto SYSTEM*/

[TEMPORARY TABLESPACE nombre_tb_temp]

[QUOTA espacio ON nombre_tb ] /*por omisión 0*/

[PROFILE perfil_de_usuario]; /*perfil_de_usuario debe existir*/

Modificación de Usuarios Cambiar la contraseña:

ALTER USER usuario IDENTIFIED BY new_password;

Función: PASSWORD Cambiar otras características:

ALTER USER usuario ... /*cualquier característica del usuario */

Borrado de Usuarios

DROP USER usuario [CASCADE];

Gestión de Seguridad

Page 60: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

60

Gestión de Seguridad

DROP USER usuario CASCADE;

− El usuario tiene objetos creados:SQL> DROP USER pepe;

DROP USER pepe

*

ERROR en línea 1:

ORA-01922: debe especificarse CASCADE para borrar PEPE

− El usuario está conectado:SQL> DROP USER pepe CASCADE;

DROP USER pepe CASCADE

*

ERROR en línea 1:

ORA-01940: no se puede borrar un usuario conectado actualmente

− El usuario está desconectado y tiene objetos:SQL> DROP USER pepe CASCADE;

Usuario borrado.

Page 61: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

61

Gestión de SeguridadUsuarios DBA o administradores:

SYS (change_on_install)

Usuario propietario de las tablas y vistas del diccionario de datos,

que son las que ORACLE utiliza para los procesos internos. Sólo

consulta de estas tablas.

SYSTEM (manager)

Este usuario es el que se utilizará para realizar las tareas de

administración. Creación de vistas para Administración (p.e.

DBA_USERS).

Page 62: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

62

Gestión de SeguridadPrivilegios: Sirven para determinar qué derecho tiene a realizar

determinadas sentencias SQL o bien qué tipo de acceso puede tener un

usuario a los objetos de otro usuario.

Privilegios de Sistema Permiten realizar una determinada operación de la BD

(Lenguaje de Definición de Datos):

CREATE SESSION, CREATE TABLE, CREATE INDEX (aprox. 80)

Privilegios de Objetos Permiten gestionar privilegios sobre los objetos de la BD (Lenguaje de

Manipulación de Datos):

ALTER, DELETE, EXECUTE, INDEX, INSERT, REFERENCES,

SELECT y UPDATE

Page 63: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

63

Gestión de SeguridadRoles: Conjunto de privilegios que reciben un nombre común para facilitar

la tarea de asignación de los mismos (de forma global) a los usuarios.

Creación de Roles

CREATE ROLE nombre [NOT IDENTIFIED|IDENTIFIED BY

password| IDENTIFIED EXTERNALLY]; Identificación para

habilitar o deshabilitar un rol en la sesión actual (SET ROLE …) Existen roles predefinidos

CONNECT, RESOURCE, DBA, EXP_FULL_DATABASE,

IMP_FULL_DATABASE, …

Modificación de Roles

ALTER ROLE rol [NOT IDENTIFIED|IDENTIFIED BY password|

IDENTIFIED EXTERNALLY];

Borrado de Roles

DROP ROLE nombre;

Page 64: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

64

Establecer privilegios y roles Podemos asignar privilegios de sistema y roles de la misma manera:

GRANT privilegio/rol TO usuario/rol/PUBLIC [WITH ADMIN

OPTION]; Podemos asignar privilegios sobre objetos de la manera siguiente:

GRANT privilegio/ALL ON objeto TO usuario/rol/PUBLIC

[WITH ADMIN OPTION];

Revocar privilegios y roles Privilegio de Sistema/Rol

REVOKE privilegio/rol FROM usuario/rol/PUBLIC; Privilegio sobre objetos

REVOKE privilegio/ALL ON objeto FROM usuario/rol/PUBLIC;

Gestión de Seguridad

Page 65: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

65

Visualización de Privilegios del Sistema

DBA_SYS_PRIVS:

Vista del diccionario de datos para visualizar los privilegios

concedidos a los usuarios y/o roles.

SELECT * FROM DBA_SYS_PRIVS

WHERE grantee IN (‘Usuario1’, ‘Rol1’)

ORDER BY grantee;

Comprueba los privilegios y roles concedidos al usuario

Usuario1 y al rol Rol1.

Gestión de Seguridad

Page 66: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

66

Recursos: Capacidad de un usuario de utilizar un determinado recurso

de la BD, como puede ser el espacio en un tablespace.

Establecer Recursos en Creación de Usuarios

Tablespace por defecto

Tablespace temporal

Cuotas de espacio y uso

Limitar Recursos

Se pueden limitar determinados recursos a los que tiene acceso un

usuario.

− Nivel de Sesión: A cada sesión se le asigna un determinado

tiempo de CPU y una determinada cantidad de memoria.

− Nivel de Llamadas: Podemos establecer límites a nivel de

órdenes SQL. Cuando un usuario ejecuta una de ellas, el

sistema se encarga de controlar que ninguna de sus fases o

pasos sobrepase los límites establecidos a este nivel.

Gestión de Seguridad

Page 67: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

67

Gestión de Seguridad

Perfiles: Conjunto de recursos agrupados bajo un mismo nombre que

permiten al DBA gestionar de manera más eficaz, rápida y racional dichos

recursos.

Creación de Perfiles

CREATE PROFILE nombre LIMIT

SESSIONS_PER_USER N /*Número de Sesiones Concurrentes del usuario*/

CPU_PER_SESSION unlimited /*Tiempo de CPU por Sesión: centésimas*/

CPU_PER_CALL N /*Tiempo de CPU para una llamada*/

LOGICAL_READS_PER_SESSION unlimited /*Número de bloques leídos en

una sesión, incluidos los leídos de memoria*/

LOGICAL_READS_PER_CALL N /*Número de bloques leídos por llamada en

una sentencia SQL*/

IDLE_TIME N /*N minutos de inactividad*/

CONNECT_TIME N /*Tiempo total para una sesión*/

FAILED_LOGIN_ATTEMPTS N; /*Número intentos de conexión fallidos*/

Page 68: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

68

Gestión de Seguridad

Modificación de Perfiles

ALTER PROFILE perfil LIMIT ...;

Borrado de Perfiles

DROP PROFILE perfil [CASCADE];

/* PERO: no borra los usuarios que tengan el perfil asignado, sólo se

modifica el usuario que tenga dicho perfil asignado.*/

Para bloquear/desbloquear una cuenta de usuario:

ALTER USER usuario ACCOUNT LOCK | UNLOCK;

Page 69: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

69

Algunas Vistas del Diccionario de Datos:

DBA_USERS -> todos los usuarios de la BD

USER_USERS -> información sobre el usuario actual

DBA_ROLES -> todos los roles de la BD

DBA_ROLE_PRIVS -> roles concedidos a usuarios o roles

USER_TS_QUOTAS -> cuota del usuario conectado en cada

tablespace

DBA_TS_QUOTAS -> cuota de cada usuario en cada tablespace

USER_PASSWORD_LIMITS -> limitaciones en la password del

usuario

USER_RESOURCE_LIMITS-> limitaciones de recursos para el usuario

DBA_PROFILES -> todos los perfiles de la BD

RESOURCE_COST -> limitaciones de recursos

V$SESSION -> información de las sesiones activas

V$SESSTAT -> estadísticas sobre las sesiones activas

V$STANAME -> nombres las estadísticas que se encuentran

en V$SESTAT

Gestión de Seguridad

Page 70: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

70

Page 71: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

71

¿Qué es una Auditoría de una BD?

Controlar y registrar las acciones de determinados usuarios

de la BD (investigar acciones sospechosas, información sobre el

uso del sistema, estadísticas,…).

Compromiso Rendimiento / Seguridad

− Sólo auditorías controladas

Usos:

− Aud. General Accesos No Autorizados

− Aud. Específica (a usuarios o terminales concretos):

Resultado de la anterior (auditoría general)

− Aud. de Rendimiento (bloqueos, etc…)

Diseñar plan en función del uso concreto

Auditoría de Bases de Datos

Page 72: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

72

Auditoría de Bases de DatosArrancar una Auditoría

Especificar el parámetro AUDIT_TRAIL con el valor TRUE o DB

(tabla de la BD) o bien OS (fichero del SO) en el fichero INITSID.ORA

para arrancar la auditoría.

Tabla donde se almacena la información de la auditoría: SYS.AUD$.

Ejecutar fichero @cataudit.sql creación vistas para visualizar y

gestionar información de auditoría. (@catnoaud.sql)

Información que se obtiene:

Usuario que realizó una determinada operación.

El objeto o los objetos a los que accedió el usuario.

Fecha y hora del proceso.

Código de la acción.

No se refleja la información que se modificó. Auditoría basada en valores: aplicación, proc.alm., disparador

Page 73: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

73

Auditoría de Bases de Datos Recomendación

Crear un tablespace exclusivo para los datos de la auditoría- Crear el tablespace

CREATE TABLESPACE audit_db

DATAFILE „/db1/ORACLE/test/audit1.dbf‟

SIZE 25M;

- Crear una copia de la tabla AUD$.

CREATE TABLE audit_tmp

TABLESPACE audit_db

STORAGE (INITIAL 10M

NEXT 1M

MINEXTENTS 1

MAXEXTENTS 10

PCTINCREASE 1)

AS SELECT * FROM sys.aud$;

- Borrar la tabla original:

DROP TABLE sys.aud$;

- Renombrar la copia de la tabla:

RENAME audit_db TO aud$;

- Si ya habíamos creado las vistas, volver a lanzar el fichero.

Page 74: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

74

Tipos de niveles en la Auditoría de tipo de órdenes o comandos (statement auditing)

•Activar una auditoría sobre una orden:

AUDIT comando_a_auditar

BY usuario /*Sólo órdenes de un usuario*/

BY SESSION /*Una sola línea por órdenes ejecutadas en una sesión*/

BY ACCESS /*Una línea por cada acceso (elevado núm. registros)*/

WHENEVER SUCCESSFUL /*Sólo las órdenes que han tenido éxito*/

WHENEVER NOT SUCCESSFUL /*Sólo órdenes fallidas*/

• Ejemplos:

SQL> AUDIT SESSION; /*colecciones de sentencias SQL*/Auditoría terminada con éxito.

SQL> AUDIT CREATE TABLE BY SESSION;

Auditoría terminada con éxito.

SQL> AUDIT TABLE WHENEVER NOT SUCCESSFUL;

Auditoría terminada con éxito.

Auditoría de Bases de Datos

Page 75: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

75

Tipos de niveles en la Auditoría de privilegios de sistema (privilege auditing)

• Podemos auditar un privilegio de sistema:

AUDIT CREATE ANY INDEX | SELECT ANY TABLE|...;

• Ejemplos:

SQL> AUDIT CREATE ANY INDEX;

Auditoría terminada con éxito.

SQL> AUDIT CREATE ANY INDEX WHENEVER NOT

SUCCESSFUL;

Auditoría terminada con éxito.

Auditoría de Bases de Datos

Page 76: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Auditoría de Bases de Datos

76

Tipos de niveles en la Auditoría sobre los objetos (schema object auditing)

• Podemos auditar procesos sobre un determinado objeto:

AUDIT SELECT[, CREATE]|DEFAULT... ON objeto;

• Para todos los usuarios de la BD.

• Objeto del propio esquema o usuario con privilegio AUDIT ANY.

• Podemos establecer opciones por defecto, para los objetos que aún

no se han creado.

AUDIT DELETE ON DEFAULT BY ACCESS

WHENEVER NOT SUCCESFUL;

Page 77: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Auditoría de Bases de Datos

77

Objeto

Opción

ALTER

AUDIT

COMMENT

DELETE

EXECUTE

GRANT

INDEX

INSERT

LOCK

READ

RENAME

SELECT

UPDATE

Table

X

X

X

X

X

X

X

X

X

X

X

View

X

X

X

X

X

X

X

X

X

Seq-

uence

X

X

X

X

Snap-

shot

X

X

X

X

X

X

X

X

X

X

X

Stored

Pro-

gram

X

X

X

X

Opciones disponibles para auditar cada tipo de objeto:

Page 78: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Auditoría de Bases de Datos

78

Desactivar opciones de Auditoría Permite parar una determinada auditoría ejecutada.

NOAUDIT { statement | system_priv } [, {statement | system_priv }...]

[ BY usuario [, usuario ]...]

[ WHENEVER [NOT] SUCCESSFUL

NOAUDIT statement [,statement] ...

ON {[schema.] object | DEFAULT }

[ WHENEVER [NOT ] SUCCESSFUL

Page 79: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Auditoría de Bases de Datos

79

Obtener información de AuditoríaVistas sobre la tabla SYS.AUD$:

− AUDIT_ACTIONS: Tabla con tipos de acción de la auditoría (acción,nombre)

− ALL_DEF_AUDIT_OPTS: Opciones por defecto de la auditoría (ALT, AUD,

COM, DEL, GRA, IND, INS, LOC, REN, SEL, UPD, REF, EXE)

− DBA_AUDIT_EXISTS: Registros de auditoría del sistema (AUDIT EXISTS)

− DBA_AUDIT_OBJECT: Todos los objetos auditables del sistema

− DBA_AUDIT_SESSION: CONNECT y DISCONNECT

− DBA_AUDIT_TRAIL: Todo el sistema

− DBA_STMT_AUDIT_OPTS: Opciones actuales sobre el sistema y por el

usuario

− DBA_OBJ_AUDIT_OPTS: Opciones sobre las tablas y vistas

− USER_AUDIT_EXISTS: Reg. auditoría del usuario (AUDIT EXISTS)

− USER_AUDIT_OBJECTS: Los objetos del usuario

− USER_AUDIT_SESSION: CONNECT y DISCONNECT usuario

− USER_AUDIT_TRAIL: Reg. Auditoría por usuario

− USER_OBJ_AUDIT_OPTS: Tablas y vistas del usuario

Page 80: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Auditoría de Bases de Datos

80

• Ejemplo: Controlar los intentos de conexión fallidos

SQL> select count(*),username,terminal,to_char(timestamp,'DD-MON-YYYY')

2 from dba_audit_session

3 where returncode<>0 -- 0 indica que la conexión fue exitosa

4 group by username,terminal,to_char(timestamp,'DD-MON-YYYY');

COUNT(*) USERNAME TERMINAL TO_CHAR(TIMESTAMP)

---------- --------------- ---------- ----------------------

1 BILL pts/3 09-APR-2003

3 FRED pts/3 09-APR-2003

4 ZULIA pts/1 09-APR-2003

Intentos fallidos

Page 81: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Auditoría de Bases de Datos

81

Guías para realizar auditorías

Sólo lo imprescindible

Mejor sobre objetos

Si se necesita a nivel de sentencia, restringir usuarios

Por sesión mejor que por usuario

Sucessful o Unsuccesful (por defecto ambas)

Mantenimiento del espacio para la auditoría

Controlar el tamaño de la tabla

Protegerla de accesos no deseados

AUDIT delete ON SYS.AUD$ BY ACCESS;

Page 82: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

82

Page 83: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Gestión de Segmentos de Rollback

83

CONCEPTOS PREVIOS:¿Qué es una transacción?

Secuencia de operaciones que han de ejecutarse de forma

atómica.

Propiedades de una transacción (ACID)− Atomicidad: se ejecutan todas las operaciones o ninguna.

− Preservación de la consistencia: la ejecución de una

transacción debe dejar la BD en un estado consistente.

− Aislamiento: una transacción no muestra los cambios que

produce hasta que finaliza.

− Persistencia: puesto que una vez la transacción finaliza con

éxito, sus efectos perduran en la BD.

Una transacción puede finalizar de dos maneras distintas:

• Con éxito (commit) Actualizaciones se hacen persistentes

• Con fracaso (rollback) Actualizaciones se deshacen

Page 84: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Gestión de Segmentos de Rollback

84

READ ONLY - - No permite sentencias DML

READ WRITE - - Opción por defecto

SERIALIZABLE

SET TRANSACTION ISOLATION LEVEL

READ COMMIT

USE ROLLBACK SEGMENT rbs

COMMIT;

ROLLBACK;

;

Para finalizar la transacción

FALLA si se intenta modificar

algo que está siendo modificado

por una transacción no validada

Espera a que la

transacción acabe

A nivel de transacción:

una transacción sólo se ve

los datos validados antes de

iniciar la transacción

A nivel de sentencia: cada

sentencia (de la transacción) sólo

se ve los cambios validados

cuando se inicia la sentencia

Page 85: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Gestión de Segmentos de Rollback

85

Las consultas repetidas obtienen el mismo

conjunto de datos, aunque otras

transacciones hayan cambiado los datos de

las tablas mientras se realizaba ésta.

Si intenta modificar datos que ya ha

modificado otra transacción que se ha

comprometido (commit) después de que

empezará esta, la transacción falla.

Devuelve un error:

“ORA-08177: Cannot serialize access for this

transaction

Sólo es adecuado cuando las transacciones

sean muy cortas.

Page 86: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Gestión de Segmentos de Rollback

86

Segmentos de Rollback • Almacena las transacciones que no se han validado.

• Varios Segmentos de Rollback por BD.

• Una transacción sólo puede utilizar un Segmento de Rollback.

• Varias transacciones concurrentes en un Segmento de Rollback.

Valor Antiguo Nuevo

Valor

Tabla

Update

Page 87: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Gestión de Segmentos de Rollback

87

Segmentos de Rollback: Propósitos

Recuperación de una transacción

Rollbacksegment

Consistencia en Lectura

Rollback de una transaccción

Page 88: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Gestión de Segmentos de Rollback

88

SCN: System Change Number

Consistencia en Lectura

Page 89: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Gestión de Segmentos de Rollback

89

Tipos de Segmentos de Rollback:

• SYSTEM Rollback Segment:

- Creación de BD

- Modificaciones sobre objetos del tablespace SYSTEM

• Non-SYSTEM:

- Privado (INIT.ORA o explícitamente mediante comando)

- Público (Procesamiento paralelo)

Page 90: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

Índice

1. Introducción

2. Administrador de la Base de Datos

3. Arquitectura de ORACLE

4. Arranque y Parada de una Base de Datos

5. Creación de una Base de Datos

6. Gestión de Espacios de Tabla (Tablespaces)

7. Gestión de Seguridad

8. Auditoría de Bases de Datos

9. Gestión de Segmentos de Rollback

10.Copias de Seguridad y Recuperación

11.Bibliografía

90

Page 91: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

91

Copias de Seguridad y Recuperación

Modo de trabajo ARCHIVELOG Permite guardar una copia de los ficheros redolog utilizados (antes de

ser reutilizados).

Proceso cíclico (fichero redolog del último al primero).

En caso de pérdida podemos recuperar hasta la última transacción.

•Para activar este modo de trabajo:

Tiramos la BD: shutdown;

Arrancamos la instancia y montamos la BD con: startup mount BD;

Tecleamos la siguiente orden: alter database [dbname] archivelog;

Abrimos la BD con: alter database [dbname] open;

Guardamos (de forma manual) todos los ficheros redo log pendientes

de archivar: alter system archive log all;

Page 92: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

92

Copias de Seguridad y Recuperación o Además, es necesario modificar los siguientes parámetros del fichero

INITSID.ORA: LOG_ARCHIVE_START: True o False

LOG_ARCHIVE_DUMP: lugar físico donde se almacenan los ficheros

LOG_ARCHIVE_FORMAT: formato de los ficheros (reol%s.arc)

o Para ver si la BD está operando en modo ARCHIVELOG y obtener el

número de secuencia más antiguo:SQL> archive log list

Database log mode ARCHIVELOG | NOARCHIVELOG

Automatic archivel DISABLED{manual}|ENABLED {automático}

Archive destination /disco0/Oracle/arch

Oldest online log sequence 75

Next log sequence to archive 76

Current log sequence 76

o Para parar el modo ARCHIVELOG: ALTER SYSTEM ARCHIVE LOG STOP;

Page 93: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

93

Copias de Seguridad y Recuperación

oVentajas y coste del modo ARCHIVELOG:

Permite realizar una recuperación completa y de un

determinado momento del tiempo.

Especialmente indicado para aplicaciones críticas donde no se

pueda tolerar una mínima pérdida de información.

Se requiere espacio adicional en disco.

Administrador tiene trabajo adicional (gestión de espacio y

seguimiento de los ficheros de log).

Si no hubiera espacio en el disco destino de los redolog

archivados, la BD se pararía de forma brusca.

Page 94: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

94

Copias de Seguridad En caso de error o pérdida por error físico permiten recuperar la información.

Si estamos en modo ARCHIVELOG podremos recuperar hasta la última

transacción efectuada, si no hasta la última copia de seguridad.

Existen tres tipos de copias de seguridad en Oracle: Backup lógico: EXPORT

Este comando genera un fichero (FILE= …) con todos o parte de los datos que en

este momento haya en la BD abierta. Existen los siguientes modos:

• Copia de la BD completa (FULL=Y)

• Copia de los objetos de un usuario (OWNER=(usuario1, usuario2,…))

• Copia de tablas específicas (TABLES=(usuario1.tabla1, tabla2,…))

También podemos hacer distintos tipos de copia de seguridad lógica

(INCTYPE):− Completa: Copia todos los datos de la BD (p.e. domingos). Resetea la

información sobre export incremental de cada tabla.

− Acumulativa: Copia sólo las tablas modificadas o creadas desde la última copia

completa o acumulativa.

− Incremental: Copia todos los datos modificados desde la última copia

incremental, acumulativa o completa (Lunes-Sábado). Registra detalles de export

para tabla exportada.

Copias de Seguridad y Recuperación

Page 95: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

95

Backup físico off-line• Este tipo de copias de seguridad se realizan con la BD parada.

• Se realiza una copia de los ficheros físicos que la componen: ficheros de

datos, ficheros de control y ficheros de redolog.

• Es indiferente que la BD esté en modo ARCHIVELOG o no.

Copias de Seguridad y Recuperación

Page 96: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

96

Backup físico on-line (BD 24 horas y full-tolerant)• Este tipo de copias de seguridad se realizan mientras los usuarios están trabajando.

• Para realizarla se necesita estar en modo ARCHIVELOG.

• Con ella podemos copiar uno o varios tablespaces.

• Para ello tecleamos las siguientes órdenes:

ALTER TABLESPACE „Nombre‟ BEGIN BACKUP;

Comando del SO para copiar los ficheros que pertenecen al Tablespace: cp

ALTER TABLESPACE „Nombre‟ END BACKUP;

• Debemos copiar también los ficheros redo log y los ficheros de control.

• Podemos realizar la copia con el tablespace OFF-LINE:

ALTER TABLESPACE „Nombre‟ OFFLINE;

• Podemos copiar el fichero de control con:

ALTER DATABASE BACKUP CONTROLFILE TO „Fichero‟;

• Ejecutar archive log list para obtener el número de secuencia actual. Será el último

archivo redo log que se debe mantener como parte del backup online.

• Se debe forzar un cambio de log de forma que se cree un archivo de log archivado:

ALTER SYSTEM SWITCH LOGFILE;

• Copiar los archivos de redo log archivados mediante un comando del SO.

Copias de Seguridad y Recuperación

Page 97: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

97

Recuperación La recuperación depende en gran medida del tipo de copia de seguridad que se

haya hecho.

Será de gran importancia si se ha realizado en modo ARCHIVELOG o no.

Existen cuatro tipos de recuperación en Oracle:

Recuperación completa

Se recupera la última copia de seguridad completa que existe. Este método

se utilizará si estamos en modo NOARCHIVELOG (recuperación no

completa).

Debemos recuperar todos los ficheros de datos, de control y de redo log.

La recuperación será física o con un IMPORT Pero: se recrea la BD.

Recuperación on-line

Permite recuperar / arreglar una BD mientras se está trabajando (NO en los

Tablespaces implicados en la recuperación).

Recuperación off-line

Este tipo de recuperación se dará en el caso de que los ficheros implicados

se encuentren en el tablespace SYSTEM o bien no podamos poner los

tablespaces implicados on-line.

Copias de Seguridad y Recuperación

Page 98: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

98

Recuperación incompleta

Con ella podemos recuperar pérdidas de ficheros redolog, de

control o de datos.

Recuperación manual

Se realiza hasta la hora en la que un fichero redolog se

estropeó. Se utiliza sobre todo para pérdidas de ficheros

redolog o de control.

Recuperación en un punto del tiempo

Se recupera hasta una fecha y hora determinada. Se

puede utilizar para ficheros de redolog o de datos. Hay dos

tipos:

− Automática: usa el fichero de control para saber que

fichero de redolog debe utilizar.

− Manual: el operador decide que ficheros de redolog

utiliza.

Copias de Seguridad y Recuperación

Page 99: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

99

Comando RECOVER

RECOVER DATABASE /MANUAL /UNTIL fecha

TABLESPACE nombre

DATAFILE fichero

−DATABASE: recuperar una BD (todos los ficheros). Sólo off-line.

−TABLESPACE: recuperar un Tablespace. Sólo on-line.

Recover tablespace Nombre_TB;

−DATAFILE: recuperar un fichero de datos. On-line y off-line.

Recover datafile Nombre_fichero;

−MANUAL: recuperación manual.

−UNTIL fecha: recuperar hasta un determinado punto del tiempo de la

BD.

Copias de Seguridad y Recuperación

Page 100: Administración de Bases de Datos - KybeleDBD-2009-10... · Administrador de la Base de Datos 8 Comunicación con los usuarios. Un SBD suele estar compuesto por tres componentes:

100

http://www.oracle.com/technology/dba/

Tutoriales, Ejemplos de código, etc.

http://otn.oracle.com/pls/db92/

Acceso a todos los libros a cerca de Oracle9i, versión

electrónica (pdf, HTML)

Oracle9i DBA Handbook

Kevin Loney, Marlene L. Theriault

Ed.: Osborne/McGraw-Hill 2001

Bibliografía