Escolar Documentos
Profissional Documentos
Cultura Documentos
Tema 6:
Tcnicas de Backup y Recuperacin de
Bases de Datos
Pedro P. Alarcn Cavero
pedrop.alarcon@eui.upm.es
Febrero 2011
Contenido
Introduccin
y Operaciones de lectura/escritura
y Tcnicas de Recuperacin
y Backups
y Procedimientos de recuperacin
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Introduccin
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Fallos de instancia
Proc. Recup.
Desastres
Guerras, terrorismo, terremotos, inundaciones, incendios, robos
Interrupcin prolongada de suministro elctrico
Contenido
Introduccin
Operaciones
Tc. Recup.
y
y
Backups
Proc. Recup.
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Tipos de almacenamiento
Almacenamiento voltil
x No
N sobrevive
b i a llas cadas
d d
dell sistema
i t
Almacenamiento no voltil
x Disco, cinta, etc
x Se producen accidentes
U
Unidad
id d d
de ttransferencia
f
i d
de d
datos
t entre
t di
disco y
memoria principal
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
output (X)
x Transfiere el bloque de registro intermedio (buffer) donde est X
al disco, sustituyendo el bloque fsico
2011 Pedro P. Alarcn
Read (X)
Write (X)
Contenido
Introduccin
Operaciones
input(X)
Contenido
Introduccin
X
Buffer local
transaccin T1
Operaciones
Memoria
Tc. Recup.
Backups
Proc. Recup.
Base de datos
output(Y)
t t(Y)
write(X)
Y
Buffer local
transaccin T2
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
10
Tcnicas de recuperacin
y
Objetivos
Devolver a la BD a un estado consistente, con la menor
prdida de informacin y tiempo posible, incluyendo
x Acciones durante el proceso normal de transacciones
x Acciones despus de un fallo
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Tcnicas
Diarios basados en actualizaciones diferidas e inmediatas
Doble paginacin
11
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
y
y
Se almacena en disco
Registros posibles a reflejar
Proc. Recup.
Ti, start
_ j , valor_nuevo
_
Ti, write,, X,, valor_viejo,
Ti, read, X
opcional
Ti, commit
Ti, abort
Memoria
(SGBD)
Diario
Base de
datos
12
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
13
Esquema de ejecucin
SGBD en ejecucin
(memoria principal)
Contenido
W it X
Write
Insert [Ti,write,X]
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Forzar escritura
(commit)
Output X
Diario
Buffer de la BD
(memoria principal)
Output X
Forzar escritura
(checkpoint)
Basedede
Base
datos
datos
14
y
y
15
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
La operacin
p
redo debe ser idemponente,
p
es decir,
ejecutarla varias veces debe producir el mismo
resultado que ejecutarla una sola vez
16
Ejemplo
Transaccin T1
UPDATE tabla1
SET A = 5000
WHERE cond_a;
Contenido
Introduccin
Operaciones
Tc. Recup.
Transaccin T2
UPDATE tabla2
SET C = 9000
WHERE cond_c;
UPDATE tabla1
SET B = 25000
WHERE cond_b;
Backups
Proc. Recup.
17
Ejemplo de recuperacin
Valores iniciales en BD: A=10000; B=20000; C=7000
Transacciones
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
T1 UPDATE tabla1
SET A=5000
WHERE cond_a;
UPDATE tabla1
SET B=25000
WHERE cond_b;
COMMIT;
Proc. Recup.
bl 2
T2 UPDATE tabla2
Diario
Base de Datos
<T1 start>
<T1, A, 5000>
<T1, B, 25000>
<T1 commit>
<T2 start>
<T2, C, 9000>
<T2 commit>
A = 5000
B = 25000
C = 9000
SET C=9000
WHERE cond_c;
COMMIT;
Ejemplo de recuperacin
<T1 start>
<T1,, A,, 5000>
<T1, B, 25000>
------ cada ------
Contenido
Introduccin
<T1 start>
<T1,
T1, A, 5000
5000>
<T1, B, 25000>
<T1 commit>
<T2 start>
<T2, C, 9000>
------ cada ------
Operaciones
Tc. Recup.
Backups
A=10000;B=20000
Proc. Recup.
A=5000;B=25000;C=7000
<T1 start>
<T1 A
<T1,
A, 5000>
<T1, B, 25000>
<T1 commit>
<T2 start>
<T2, C, 9000>
<T2 commit>
------ cada -----A=5000;B=25000;C=9000
Redo (T1)
Redo (T1)
Redo (T2)
A = 10000
B = 20000
C = 7000
A = 5000
B = 25000
C = 7000
A = 5000
B = 25000
C = 9000
19
Operaciones
Tc. Recup.
Backups
Proc. Recup.
20
10
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
21
Ejemplo de recuperacin
Valores iniciales en BD: A=10000; B=20000; C=7000
Transacciones
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
T1 UPDATE tabla1
SET A=5000
WHERE cond_a;
UPDATE tabla1
SET B=25000
WHERE cond_b;
COMMIT;
Proc. Recup.
bl 2
T2 UPDATE tabla2
Diario
Base de Datos
<T1 start>
<T1, A, 10000, 5000>
<T1, B, 20000, 25000>
<T1 commit>
<T2 start>
<T2, C, 7000, 9000>
<T2 commit>
A = 5000
B = 25000
C = 9000
SET C=9000
WHERE cond_c;
COMMIT;
11
Ejemplo de recuperacin
Contenido
Introduccin
<T1 start>
<T1,, A,10000,5000>
,
,
<T1, B, 20000,25000>
------ cada ------
<T1 start>
<T1,
T1, A,10000,5000
A,10000,5000>
<T1, B,20000,25000>
<T1 commit>
<T2 start>
<T2, C,7000,9000>
------ cada ------
<T1 start>
<T1 A
<T1,
A,10000,5000>
10000 5000>
<T1, B,20000,25000>
<T1 commit>
<T2 start>
<T2, C,7000,9000>
<T2 commit>
------ cada ------
A=5000;B=25000
A=5000;B=25000;C=9000
A=5000;B=25000;C=9000
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Undo (T1)
Undo (T2)
Redo (T1)
Redo (T1)
Redo (T2)
A = 10000
B = 20000
C = 7000
A = 5000
B = 25000
C = 7000
A = 5000
B = 25000
C = 9000
23
Punto de validacin
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
24
12
Utilizacin de diarios
y
Contenido
Introduccin
x Nmero de recuperaciones
x Nivel de concurrencia y granuralidad
Operaciones
Tc. Recup.
Backups
Proc. Recup.
25
Retrocesos en cascada
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
26
13
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
27
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
pgina 5 (vieja)
Tabla de
paginacin
doble
pgina 5 (nueva)
Tabla de
paginacin
actual
Pginas de disco
2011 Pedro P. Alarcn
28
14
1.
2.
3.
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Si ocurre una cada antes del paso 3 no hay que deshacer nada
Si ocurre una cada despus del paso 3, no hay que rehacer
nada
29
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Desventajas
Fragmentacin de los datos
Recoleccin
R l i d
de basura
b
La doble paginacin es ms difcil de adaptar que un
diario a los sistemas que permiten ejecucin
concurrente de transacciones
30
15
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
31
Contenido
Introduccin
Operaciones
Backups
Proc. Recup.
Tc. Recup.
32
16
Backup Fsico
Ficheros de datos
Ficheros de control
Ficheros log
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
33
Backup Lgico
Se obtiene copia solo de los datos y no de los ficheros
fsicos enteros
y Utilidades
y
export/import
/i
: ficheros
fi h
binarios
bi i
unload/load: ficheros asciid
Contenido
Introduccin
Operaciones
Tc. Recup.
y
y
Backups
Proc. Recup.
34
17
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
35
El ABD debe
Mantener backups con copias actualizadas y exactas de los
d t
datos
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
36
18
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
37
Procedimientos de recuperacin
La recuperacin puede ser una tarea compleja
Las operaciones de copia y recuperacin de la BD deben
planificarse conjuntamente
y Deseable
D
bl aplicar
li
medidas
did preventivas
i
para minimizar
i i i
recuperaciones ante fallos
y
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
Tipos
Recuperacin normal
Recuperacin en caliente
Recuperacin en fro
38
19
Proceso de recuperacin
y
Pasos habituales
Identificar el fallo
Analizar la situacin
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
39
Recuperacin normal
y
Este tipo
p de recuperacin
p
tambin tiene lugar
g cuando
aborta una transaccin, debido a la razn que sea
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
40
20
Recuperacin en caliente
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
41
Recuperacin en caliente
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
Proc. Recup.
42
21
Recuperacin en fro
y
y
Contenido
Introduccin
Operaciones
Tc. Recup.
Backups
y
y
Proc. Recup.
43
Recuperacin en fro
viernes
BD
sbado
BD
Log
log
domingo
log
BD
log
1
Backup
BD
BD
paso1
log
BD
log
paso2
Prdida BD
2011 Pedro P. Alarcn
Backup
log
BD
paso3
log
lunes
BD
martes
log
BD
paso1
log
Qu sucede si la
BD se queda sin
espacio disponible?
y los ficheros log?
Backup
log
log
BD
jueves
incidente
Backup
log
BD
mircoles
log
paso2
BD
log
paso3
Prdida BD y diarios
Administracin de Bases de Datos EU Informtica (UPM)
44
22