administración de bases de datos - kybeledbd-2009-10... · administrador de la base de datos 8...
TRANSCRIPT
Administración de Bases de
Datos
Diseño de Bases de Datos y Seguridad
de la Información
Curso 2009-2010
1
Í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
Í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
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
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
Í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
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.
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.
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.
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.
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.
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.
Administrador de la BD
13
Objetivo principal:
Mantener la integridad, la confidencialidad y la
disponibilidad de los datos del sistema.
Í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
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
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
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
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
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
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
…
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
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)
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
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
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
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’;
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
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
Arquitectura de Oracle
29
Log Writer (LGWR)Instancia
SGA Shared pool
Redo log
buffer
LGWR
Control
filesRedo log
files
Data files
Base de Datos
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
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.
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.
33
¿Cómo se almacena una BD?
TempSystem
Datos ÍndicesTools
Nivel Lógico:
Tablespaces Base de Datos
Rollback
Arquitectura de Oracle
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
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
36
Database
Lógico Físico
Tablespace Data file
O/S BlockOracle
block
Segment
Extent
ME/R de BD Oracle
Arquitectura de Oracle
Í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
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.
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
…
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
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;
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
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
Í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
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
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
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
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.
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
Í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
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
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;
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.
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.
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.
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
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 .
Í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
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
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.
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).
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
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;
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
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
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
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*/
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;
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
Í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
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
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
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.
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
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
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;
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:
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
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
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
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;
Í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
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
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
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.
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
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
Gestión de Segmentos de Rollback
88
SCN: System Change Number
Consistencia en Lectura
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)
Í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
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;
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;
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.
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
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
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
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
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
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
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