SISTEMAS DE
RECUPERACIÓN
Facultad Politécnica Base de Datos II 1
• Dada la complejidad de los sistemas actuales y
la necesidad cada vez más crítica de alta
disponibilidad de los sistemas, donde una caída
de la base de datos puede causar pérdidas
millonarias, es necesario implementar una
política adecuada para el resguardo y la
recuperación de los mismos.
• Hablar de Backup y Recuperación es hacer
referencia a las estrategias y procedimientos
involucrados en proteger la BD de pérdida de
datos y reconstruir la BD luego de cualquier tipo
de pérdida de datos.
Facultad Politécnica Base de Datos II 2
TIPOS DE BACKUP EN ORACLE
• LÓGICOS: contienen datos lógicos (por ejemplo, tablas
o procedimientos almacenados) exportados desde una
BD con alguna utilidad de exportación Oracle, guardados
en un archivo binario, para su posterior re-importación
mediante la utilidad de importación Oracle
correspondiente.
• FÍSICOS: son copias de los archivos físicos usados para
almacenar y recuperar la BD, tales como datafiles,
control files y archived redo logs, en una ubicación
distinta a la original.
• Los backups físicos son la base de cualquier estrategia
de backup y recuperación. Los backups lógicos son
complementos útiles de los backups físicos en muchas
circustancias, pero no son suficientes para proteger de
pérdida de datos sin backups físicos.
Facultad Politécnica Base de Datos II 3
BACKUPS LÓGICOS
Utilidades para Exportación/Importación
EXPORT
• Esta utilidad provee una forma simple de transferir
objetos entre BD Oracle, independientemente de las
plataformas de hardware y las configuraciones de
software. Export extrae de la BD los objetos (como
tablas) y sus dependendencias (como índices,
comentarios y grants), si existen.
• Los datos se escriben en un archivo Export, que
consiste en un archivo dump con formato binario de
Oracle, el cual puede ser transferido físicamente a
otras ubicaciones para su utilización.
Facultad Politécnica Base de Datos II 4
BACKUPS LÓGICOS - EXPORT
REQUISITOS PARA LA UTILIZACION
DEL EXPORT
• Correr el script catexp.sql luego de la creación de la base
de datos: Este script se encarga de:
- Crear en el diccionario de datos las vistas necesarias para
el export
- Crear el rol EXP_FULL_DATABASE
- Asignar los privilegios necesarios al rol
EXP_FULL_DATABASE
- Asignar el rol EXP_FULL_DATABASE al rol DBA
- Guardar la version del catexp.sql que ha sido instalado
• Verificar que exista suficiente espacio en disco: Esto se
puede estimar mediante el tamaño de las tablas
• Verificar que se poseen los privilegios de acceso
requeridos: se debe tener los privilegios:
- CREATE SESSION
- EXP_FULL_DATABASE, si se exportaran datos de otro
esquema
Facultad Politécnica Base de Datos II 5
BACKUPS LÓGICOS - EXPORT
EXP puede invocarse:
- Desde línea de comandos
-En modo de prompts interactivos
-Mediante archivos de parámetros
SINTAXIS
exp [ HELP = Y | usuario/password [@instancia] [AS SYSDBA]
ExpModes ExpOpts ]
Modos de Exportación (ExpModes)
Determinan que objetos van a exportarse. Pueden ser:
FULL = Y exporta la BD completa
OWNER = nombre_usuario exporta el esquema del OWNER
TABLES = esquema.tabla [: particion] exporta las tablas
TABLESPACES = nombre_tablespace exporta el tablespace
Facultad Politécnica Base de Datos II 6
BACKUPS LÓGICOS - EXPORT
Algunos parámetros de Exportación
(ExpOpts)
• ROWS = { Y | N } especifica si se exportan las filas de
las tablas
• QUERY = SQL_string query para exportar subset en
modo tabla
• STATISTICS = { COMPUTE | ESTIMATE | NONE }
• INDEXES = { Y | N } especifica si se exportan indices de
las tablas
• CONSTRAINTS = { Y | N } especifica si se exportan
constraints
• GRANTS = { Y | N } especifica si se exportan grants
• TRIGGERS = { Y | N } especifica si se exportan triggers
• PARFILE = nombre_archivo parametros para el export
• FILE = nombre_archivo nombre del dmp a generar
• FILESIZE = tamaño_bytes del archivo a generar
• VOLSIZE = tamaño_bytes del archivo a generar
• LOG = nombre_archivo_log almacena mensajes de error
e información
Facultad Politécnica Base de Datos II 7
BACKUPS LÓGICOS - EXPORT
EJEMPLOS
exp system/manager@orcl FULL=y
FILE=/tmp/export.dmp LOG=/tmp/log-1.log
exp scott/tiger FILE = dat1.dmp, dat2.dmp,
dat3.dmp FILESIZE=2048
exp scott/tiger TABLES=emp,bonus
QUERY=\"WHERE job=\'SALESMAN\' and
sal\<1600\"
exp SYSTEM/password FILE=expdat.dmp
TABLES=(scott.emp,blake.dept) GRANTS=y
INDEXES=y
Facultad Politécnica Base de Datos II 8
BACKUPS LÓGICOS
IMPORT
Esta utilidad lee las definiciones de objetos y los datos de
tablas de un archivo dmp del Export, e inserta estos objetos
y datos en una BD Oracle
Los archivos dump del Export solo pueden ser leídos por la
utilidad Oracle Import. La versión de Import no puede ser
anterior a la version de Export utilizada en la creación del
archivo dump.
Los objetos se importan en el orden en que aparecen en el
archivo Export, esto es:
1. Definiciones de Tipos (Type)
2. Definiciones de Tablas
3. Datos de Tablas
4. Indices de Tablas
5. Constraints, vistas, procedimientos y triggers
6. Indices bitmap, functional y de domain
Base de Datos II Facultad Politécnica 9
BACKUPS LÓGICOS - IMPORT
PRIVILEGIOS REQUERIDOS
- Privilegios CREATE/ALTER para todos los
tipos de objeto a importar, o bien
- El rol IMP_FULL_DATABASE, que posee todos
los privilegios necesarios, con la opción WITH
ADMIN
IMPORT PUEDE INVOCARSE:
-Desde línea de comandos
-En modo de prompts interactivos
-Mediante archivos de parámetros
Facultad Politécnica Base de Datos II 10
BACKUPS LÓGICOS - IMPORT
SINTAXIS
imp usuario/pass@instancia PARAMETROS
ALGUNOS PARAMETROS
Parametros para especificar MODO
•FULL: importa la BD completa, solo es posible para
usuarios con el rol IMP_FULL_DATABASE
•TRANSPORT_TABLESPACE: mueve tablespaces de una
BD Oracle a otra (parametro
•FROMUSER: importa los objetos que pertenecen a un
usuario
•TABLES: importa tables y particiones especificas
Facultad Politécnica Base de Datos II 11
BACKUPS LÓGICOS - IMPORT
Otros Parámetros
• FILE: especifica el nombre del archivo a importar
• IGNORE: especifica como se manejaran errores en la
creación de objetos
• TOUSER: permite restaurar en un esquema al que se
van a importar
• LOG: especifica un archivo para guardar mensajes de
información o error
• ROWS: permite importar o no las filas de las tablas
•STATISTICS: especifica lo que realiza el optimizador de
estadísticas al realizar la importación
•TABLES: especifica los nombres de las tablas a importar
•TOUSER: permite importar objetos a un esquema
distinto al original
BACKUPS LÓGICOS - IMPORT
EJEMPLOS
imp SYSTEM/password FILE=dba.dmp
LOG=log-imp.log FROMUSER=scott
TOUSER=black TABLES=(dept,emp)
SHOW=n IGNORE=n GRANTS=y
imp scott/tiger
TABLES=(emp:p1_sp2,emp:p1_sp3,emp:p2)
FILE=exmpexp.dat ROWS=y
imp SYSTEM/password FILE=scott.dmp
FROMUSER=scott TOUSER=blake
TABLES=(*)
imp SYSTEM/password PARFILE=params.dat
Facultad Politécnica Base de Datos II 13
BACKUPS LÓGICOS - EXPORT
ALGUNOS ERRORES COMUNES DE
EXPORT/IMPORT
ORA-00001: Unique constraint (...) violated
Se están importando filas duplicadas. Para omitir las
tablas que ya existen, utilizar la opción IGNORE=YES
ORA-01555: Snapshot too old
Para resolverlo, agregar el parámetro exp
CONSISTENT=NO
ORA-01562: Failed to extend rollback segment
La solución es crear un segmento rollback mayor o setear
el parámetro COMMIT=Y al importar
IMP-00015: Statement failed ... object already
exists...
El parámetro IGNORE=Y ignorará este error y el import
continuará
Facultad Politécnica Base de Datos II 14
BACKUPS LÓGICOS
DATA PUMP
Oracle Database 10g introduce la tecnología Oracle
Data Pump, que permite aumentar la velocidad de
movimientode datos y metadatos entre una base y
otra.
DATA PUMP EXPORT
Es la utilidad que permite descargar datos y
metadatos a alta velocidad en un conjunto de
archivos binarios dump de sistema operativo, los
cuales pueden moverse a otros sistemas para su
importación
Aunque la funcionalidad del Data Pump Export
(invocada con el comando expdp ) es similar a la de
la utilidad Export original (exp), son utilidades
completamente separadas
Facultad Politécnica Base de Datos II 15
BACKUPS LÓGICOS - DATAPUMP
DATA PUMP IMPORT
Es la utilidad que permite recuperar datos y metadatos
almacenados en un archivo dump creado mediante la
utilidad Data Pump Export, en un sistema dado
Aunque la funcionalidad del Data Pump Import (invocada
con el comando impdp ) es similar a la de la utilidad
Import original (imp), son utilidades completamente
separadas
Los archivos dump contienen datos de tablas, metadatos
de objetos de BD e información de control. Estos archivos
se escriben en un formato binario propietario. Durante un
import, Data Pump Import usa estos archivos para ubicar
cada objeto de BD en el archivo dump
Facultad Politécnica Base de Datos II 16
BACKUPS LÓGICOS - DATAPUMP
SINTAXIS/EJEMPLO
Es imprescindible contar con un directorio de base de datos
y los permisos sobre el mismo, asignados al usuario del
export
SQL> CREATE DIRECTORY dmpdir AS
'C:\oradata\datapump';
SQL> GRANT EXP_FULL_DATABASE to scott;
SQL> GRANT READ, WRITE ON DIRECTORY dmpdir to scott;
EXPORT
expdp scott/manager@orcl DUMPFILE=export.dmp
DIRECTORY=dmpdir SCHEMAS=smith
LOGFILE=dmp.log
FLASHBACK_TIME="TO_TIMESTAMP(to_char(sysdate,'YY
YY-MM-DD HH24:MI:SS'))"
Facultad Politécnica Base de Datos II 17
BACKUPS LÓGICOS - DATAPUMP
IMPORT
impdp scott/manager@desarrollo DIRECTORY=dmpdir
DUMPFILE=export.dmp SCHEMAS=smith
LOGFILE=dmpimp.log
PARAMETROS UTILIZADOS
DUMPFILE: nombre del archivo dump
DIRECTORY: ubicación por default en la cual Export escribirá
los archivos dump y log
SCHEMA: especifica que el modo de export/Import sera
Esquema
LOGFILE: nombre del archivo de log
FLASHBACK_TIME: habilita la utilidad Flashback Query
Facultad Politécnica Base de Datos II 18
BACKUPS FÍSICOS
Son aquellos que copian físicamente los archivos de la BD
ESTRUCTURAS USADAS PARA EL BACKUP
Datafiles
Son archivos físicos en los cuales el Sistema Operativo
contendrá los datos almacenados en un tablespace. Los
datos nuevos o modificados no se escriben directamente en
los datafiles
Redo Logs
Almacenan todos los cambios realizados a los datafiles de la
BD. Cada cambio realizado en la BD se almacena primero en
los archivos redo online, antes de ser aplicados a los
datafiles.
Los Redo pueden preservarse a través de un proceso
llamado "Archiving", esto es, copiar los datos de un redo
que no está en uso, a un archivo denominado Archived
Redolog.
Facultad Politécnica Base de Datos II 19
BACKUPS FÍSICOS
ESTRUCTURAS USADAS PARA EL BACKUP
Control files
Contienen el registro de las estructuras físicas de la BD y su
estado. Información almacenada en los controlfiles está
relacionada con el Backup/Recovery:
- Informacion de la BD
- Registro de Tablespaces y datafiles
- Informacion acerca de tareas de redo
- Registros de Log
- Un registro de backups RMAN anteriores
- Informacion sobre bloques corruptos de datafiles
Segmentos Undo
Almacenan información previa a la actualización de Datafiles.
Permiten restaurar el contenido original del datafile luego de
un rollback
En una restauración, la información del Undo puede utilizarse
para revertir los efectos de transacciones no confirmadas
mediante un commit, luego de que se apliquen los cambios de
los Redo.
Facultad Politécnica Base de Datos II 20
BACKUPS FÍSICOS
RECOVERY MANAGER (RMAN)
Es una utilidad que brinda variadas técnicas y características
de backup y recovery que no están normalmente disponibles
en backups hechos por el usuario. Algunas son:
Backups Incrementales: proveen backups mas compactos,
pues almacenan solo los bloques cambiados y garantizan una
recuperación mas rápida al reducir la necesidad de aplicación
de redos
Recuperación de bloques: permite reparar un datafile con
un numero pequeño de bloques corruptos, sin necesidad de
ponerlos offline o restaurarlos del backup
Compresión de bloques sin uso: hace que Rman salte
durante el backup bloques no usados
Compresión Binaria: utiliza un mecanismo de compresión
integrado en el servidor Oracle para reducir el tamaño de los
backups
Backups Encriptados: utiliza las capacidades de encriptación
del Oracle para guardar los backups en formato encriptado
Facultad Politécnica Base de Datos II 21
BACKUPS FÍSICOS
TIPOS DE BACKUP CON RMAN
CONSISTENTES / INCONSISTENTES
Un backup consistentes es el creado con la BD en estado
consistente, esto es, cuando todos los cambios en los
Redo fueron aplicados a los datafiles. Solo puede crearse
despues de una bajada consistente de la BD, es decir, no
despues de un crash o un Shutdown Abort
Un backup inconsistente es el que ha sido tomado con la
base de datos abierta. Antes de volver a abrir una BD
restaurada de un backup inconsistente, deben aplicarse
todos los cambios the los archived redo logs. Esto
requiere que la BD este corriendo en modo ARCHIVELOG
Facultad Politécnica Base de Datos II 22
BACKUPS FÍSICOS
TIPOS DE BACKUP CON RMAN
FULL / INCREMENTALS
Los backups full incluyen los datafiles completos
Los backups incrementales realizan copias solo de los
bloques que cambiaron dentro de un datafile
OTROS CONCEPTOS DE R-MAN
IMAGE COPIES, BACKUP SETS Y BACKUP PIECES
Una Imagen (image copy) es una copia idéntica de
un datafile
Un Backup Set es el formato especifico en que RMan
guarda sus backups
Backup Pieces es una colección de backup-sets o de
archivos, el cual contiene el backup de uno o varios
datafiles.
Facultad Politécnica Base de Datos II 23
BACKUPS FÍSICOS
BACKUPS CON RMAN
INGRESO AL RMAN
c:\rman
Backup de BD completa
RMAN> BACKUP DATABASE;
Backup de Tablespaces individuales
RMAN> BACKUP TABLESPACE users, tools;
Backup de Datafiles
RMAN> BACKUP DEVICE TYPE sbt
DATAFILE 1,2,3,4
DATAFILECOPY '/tmp/system01.dbf';
Facultad Politécnica Base de Datos II 24
BACKUPS FÍSICOS
BACKUPS CON RMAN
Backup de ControlFiles y Archivos de configuración
RMAN> BACKUP DEVICE TYPE sbt TABLESPACE users INCLUDE
CURRENT CONTROLFILE;
RMAN> BACKUP DEVICE TYPE sbt SPFILE;
Backup de Archivelogs
# Todos los archives
RMAN> BACKUP ARCHIVELOG ALL;
# Todos los archives y luego los borra de su ubicación original
RMAN> BACKUP DEVICE TYPE sbt ARCHIVELOG ALL DELETE
ALL INPUT;
# BD completa mas archivelog
RMAN> BACKUP DEVICE TYPE sbt DATABASE PLUS
ARCHIVELOG;
Facultad Politécnica Base de Datos II 25
BACKUPS FÍSICOS
BACKUPS CON RMAN
Backups Incrementales
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
Uso de RMAN para validar datafiles
La opción VALIDATE del comando BACKUP puede
utilizarse para verificar que los datafiles existen, se
encuentran en la ubicación correcta y no tienen
corrupción física o lógica que evite que RMAN cree
backups de ellos
RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL;
Facultad Politécnica Base de Datos II 26
BACKUPS FÍSICOS
RESTAURACION DE BACKUPS CON RMAN
Restaurar Controlfiles y Archivos de
parámetros
RMAN> RESTORE CONTROLFILE;
RMAN> RESTORE SPFILE TO PFILE
'/tmp/initTEMP.ora';
Recuperar la BD, Tablespaces y Datafiles
RMAN> RECOVER DATABASE;
RMAN> RECOVER TABLESPACE users, tools;
RMAN> RECOVER DATAFILE 4;
Restaurar Archived logs
RMAN> RESTORE ARCHIVELOG ALL;
Facultad Politécnica Base de Datos II 27
BACKUPS FÍSICOS
TAREAS DE MANTENIMIENTO CON RMAN
Verificar el estado y la disponibilidad de backups
RMAN> CROSSCHECK BACKUP;
RMAN> CROSSCHECK BACKUP OF ARCHIVELOG ALL
SPFILE;
Borrar Backups
RMAN> DELETE BACKUP;
RMAN> DELETE BACKUP OF TABLESPACE users DEVICE
TYPE sbt;
RMAN> DELETE ARCHIVELOG ALL;
Borrar backups expirados luego de correr el
Crosschek
RMAN> CROSSCHECK BACKUP;
RMAN> DELETE EXPIRED BACKUP;
Facultad Politécnica Base de Datos II 28
BACKUPS FÍSICOS
BACKUPS MANUALES
Es una técnica manejada directamente por el usuario,
combinando comandos de sistema operativo y
características de backup y recuperación del SQL Plus
Tareas Previas
# Identificar los archivos a incluir
SQL> SELECT NAME FROM V$DATAFILE;
# Identificar los redolog
SQL> SELECT MEMBER FROM V$LOGFILE;
# Identificar los controlfile
SQL> SELECT NAME FROM V$CONTROLFILE;
Facultad Politécnica Base de Datos II 29
BACKUPS FÍSICOS
BACKUP MANUAL DE TODA LA BD
Se puede realizar luego de un shutdown NORMAL,
IMMEDIATE, o TRANSACTIONAL de la BD. Si la BD trabaja en
modo NOARCHIVELOG debe hacerse una bajada de la base
en los modos citados. Si la BD trabaja en modo
ARCHIVELOG, se puede realizar un backup inconsistente,
pero será necesario aplicar operaciones de recovery para
restaurar la base de datos a un estado mas reciente
1. Para iniciar el backup
SQL> ALTER DATABASE BEGIN BACKUP;
2. Copiar todos los archivos, mediante utilidades del SO
3. Finalizar el backup
SQL> ALTER TABLESPACE users END BACKUP;
Facultad Politécnica Base de Datos II 30
BACKUPS FÍSICOS
BACKUP MANUAL CONSISTENTE
1. Realizar un shutdown de la base con alguna de estas
opciones: NORMAL, IMMEDIATE o TRANSACTIONAL
SQL> shutdown immediate
2. Mediante alguna utilidad de SO, copiar todos los
datafiles, controlfiles y el archivo de parametros de
inicializacion. Tambien copiar todos los archivos .ora que
se encuentren en $ORACLE_HOME
3. Reiniciar la BD
SQL> STARTUP
Facultad Politécnica Base de Datos II 31
BACKUPS FÍSICOS
BACKUP MANUAL DE TODA LA BD
1. Realizar un shutdown de la base con alguna de
estas opciones: NORMAL, IMMEDIATE o
TRANSACTIONAL
SQL> shutdown immediate
2. Mediante alguna utilidad de SO, copiar todos los
datafiles, controlfiles y el archivo de parametros de
inicializacion. Tambien copiar todos los archivos .ora
que se encuentren en $ORACLE_HOME
3. Reiniciar la BD
SQL> STARTUP
Facultad Politécnica Base de Datos II 32
BACKUPS FÍSICOS
BACKUP MANUAL DE TABLASPACES ONLINE
1. Marcar el inicio del backup del tablespace
SQL> ALTER TABLESPACE users BEGIN BACKUP;
2. Mediante alguna utilidad de SO, copiar los datafiles
correspondientes al tablespace
3. Marcar el final del backup
SQL> ALTER TABLESPACE users END BACKUP;
4. Realizar el archive de los redo que no hayan sido
archivados
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
Facultad Politécnica Base de Datos II 33
BACKUPS FÍSICOS
RESTAURAR UN BACKUP MANUAL
1. Mediante alguna utilidad de SO, copiar los datafiles
en la ubicación adecuada dentro del $ORACLE_HOME
2. Montar la BD
SQL> STARTUP MOUNT
3. Habilitar autorecovery
SQL> SET AUTORECOVERY ON
4. Realizar el recovery de la BD
SQL> RECOVER DATABASE
5. Montar la BD
SQL> ALTER DATABASE OPEN
Facultad Politécnica Base de Datos II 34