Está en la página 1de 87

Copia de Seguridad y

Recuperación

Ing. Alberto Galloso Gentille


Definiciones y Términos
• Un backup es una copia adicional de la información
que puede utilizarse con fines de recuperación y
restauración ante fallos.
 Su utilización se hace cuando la copia original está
inutilizada o corrupta.
 La copia puede ser:
 Copias de los ficheros en instantes de tiempo
determinados.
 Copias especulares de los datos originales completamente
sincronizados.
Tipologías de Backups

• Según necesidades:
 Copias para recuperación ante desastres: El objeto es disponer de
una copia que subsane la perdida potencial de datos valiosos para
el usuario.
 Copias operacionales: Se hacen para disponer de una instantánea
de los datos del sistema en un momento determinado, con la
intención de poder regresar a esa situación (sin necesidad de que
haya un desastre):
 E.g., versiones de un repositorio software.
 Copias reguladas: Se realizan para cumplir con normativas legales
que exigen el almacenado de datos históricos durante un periodo
de tiempo.
Requisitos de Usuario
• Plazos de recuperación • Temporizaciones:
• Instalaciones:  Cuándo se hacen los
backups.
 Original
 Cuánto tiempo dura la
 De recuperación
operación de copia.
• Elementos a recuperar:  Durante cuánto tiempo se
 Ficheros con poca variación. guarda copias.
 Ficheros con mucha
variación.
Plazos de Recuperación
• Recovery Point Objective (RPO): Periodo máximo de
tiempo en el cual se han podido ver afectados datos
antes de un incidente.
• Recovery Time Objective (RTO): Periodo máximo de
tiempo en el que es asumible tener los sistemas de
información parados después de un incidente.
Planificación de la Organización
Planificación de la Organización
• Plan de recuperación ante desastres (disaster recovery plan):
Determina los pasos a realizar para realizar las acciones de
recuperación ante un incidente.
• Incluye las prioridades de esas tareas, el entrenamiento de los
grupos participantes y los canales de comunicación.
• Debe realizarse un ensayo de recuperación de forma periódica
para verificar la integridad de datos y la agilidad de los
procedimientos.
• Lleva asociado acciones relativas al inventario sistemático de
equipos, las pólizas de seguro y garantías de los mismos y un
listado de números de emergencias y similares.
Tipologías de Backups
• Por Granularidad:
 “Cuándo y de qué se hace copia”.
 Se determinan diferentes tipos de backups de acuerdo a
cuáles son los ficheros copiados.
 Los diferentes tipos de backups se hacen en “ciclos de
backup”
• Por Operatividad del sistema:
 “En qué estado está el sistema cuando se realiza la copia”.
 Se determina si es necesario detener la operativa del
sistema (dejar de proporcionar servicio) para hacer el
backup.
Ganularidad
Recuperación de un Backup Incremental
Recuperación de un Backup Diferencial
Operatividad del Sistema Durante Copia
• Backup frio (cold) u off-line: La operativa del sistema se
detiene.
 Entre el comienzo de la fase de copia y el final de la misma no
se hace ninguna operación sobre los datos.
 Requiere ventanas de tiempo para realizar esas copias que
deben ser programadas y validadas.
 No válido para sistemas 24x7 (e.g., un comercio on-line).
• Backup caliente (hot) u on-line: La operativa del sistema no se
detiene y la copia se hace con el sistema en producción.
• Requiere fijar el instante de tiempo de referencia.
• Gestionar no sólo los datos estables sino las modificaciones (log
de operaciones) entre ese instante y el final de la copia.
Hot Backup
Arquitectura de un Sistema de Backup
Operación de Copia
Operación de Recuperación
Copia de Seguridad y
Recuperación de una Base
de Datos Oracle
Definición

• El enfoque en un Backup de una Base de Datos Oracle


es la recuperación física de los archivos de bases de
datos, lo que permite reconstruirla en casos especiales
como el daño de archivos, la eliminación accidental
de un archivo de datos, el fallo de una unidad de disco
o migración física de los datos a otro servidor
Tipos de Backups.

Los backups se pueden clasificar en físicos y lógicos.


Backup Físicos
Backup Lógicos
Backus Físicos

Backup de SO: El mas sencillo de ejecutar, aunque


consume mucho tiempo y hace inaccesible al sistema
mientras se lleva a cabo.

Backup en frío: Los backups en frío implican parar la BD
en modo normal y copiar todos los ficheros sobre los
que se asienta. Antes de parar la BD hay que parar
también todas las aplicaciones que estén trabajando
con la BD.
Backus Físicos

Backup en caliente: El backup en caliente se realiza


mientras la BD está abierta y funcionando en
modo ARCHIVELOG Habrá que tener cuidado de
realizarlo cuando la carga de la BD sea pequeña. Este
tipo de backup consiste en copiar todos los ficheros
correspondientes a un tablespace determinado, los
ficheros REDO LOG archivados y los ficheros de control.
Backus Lógicos
Los backups lógicos sólo extraen los datos de las tablas
utilizando comandos SQL y se realizan con la
utilidad export/import.

Backup con Export/Import: Estas utilidades permiten al


DBA hacer copias de determinados objetos de la BD, así
como restaurarlos o moverlos de una BD a otra. Estas
herramientas utilizan comandos del SQL para obtener el
contenido de los objetos y escribirlos en/leerlos de
ficheros
Presentación de la recuperación

• Una de las mayores responsabilidades del DBA consiste


en tener la BD a punto, y prepararla ante la posibilidad
de que se produzca un fallo. Así, ante un fallo el DBA
podrá recuperar la BD en el menor tiempo posible. Los
procesos de recuperación dependen del tipo de error y
de las estructuras afectadas.
Tipos de errores en la recuperación de BD
en Oracle.
Errores de Usuario: Pueden ocurrir cuando el usuario borra
una fila o elimina una tabla. Estos errores se solucionan
importando una tabla de una copia lógica anterior.
También se puede recuperar la BD en una instancia
auxiliar, ya sea importando o exportando la tabla.
Fallos de Sentencias: Se definen como la imposibilidad
del SGBD Oracle de ejecutar alguna sentencia SQL. Estos
fallos se recuperan automáticamente mediante
un rollback de la transacción que contenía la sentencia
fallida.
Tipos de errores en la recuperación de BD
en Oracle.
Fallos de Procesos: Terminación anormal de un proceso.
Si el proceso era un proceso de usuario, del servidor o de
una aplicación el PMON efectuará la recuperación del
proceso. Si el proceso era alguno de los de background,
la instancia debe de ser parada y arrancada de nuevo.
Fallos de la Red: Algunas veces los fallos en la red
producen fallos de proceso, que son tratados por
el PMON. Si en el error de red se ve envuelta una
transacción distribuida, una vez que se reestablece la
conexión, el proceso RECO resuelve los conflictos
automáticamente.
Tipos de errores en la recuperación de BD
en Oracle.
Fallos de Instancia: Pueden deberse a fallos físicos o de
diseño del software que hacen que algún
proceso background caiga y la instancia con él. La
recuperación es automática cuando se levanta la BD.
Fallos del Sistema: Son los fallos más peligrosos, no sólo
porque se pueden perder datos, sino porque se tarda
más tiempo en recuperar que los otros fallos.
Niveles de Recuperación en Oracle.

Recuperación de bloques: Es el mecanismo de


recuperación más simple, y se realiza
automáticamente. Se produce cuando un proceso
muere justo cuando está cambiando un bloque, y se
utilizan los registros redo log en línea para reconstruir el
bloque y escribirlo en disco.
Niveles de Recuperación en Oracle.

Recuperación de threads. Se realiza automáticamente


cuando Oracle descubre que una instancia muere
dejando abierto un thread, entonces se restauran los
bloques de datos modificados que estaban en
el cache de la instancia muerta, y cerrando
el thread que estaba abierto. Automática al levantar la
BD.
Niveles de Recuperación en Oracle.

Recuperación física: Se realiza como respuesta a un


comando RECOVER. Se utiliza para convertir los ficheros
de backup en actuales. Restaura cambios perdidos al
poner un fichero offline sin checkpoint.
Métodos de Recuperación.
• Existen varios métodos de recuperación, pero todos
ellos se basan en la aplicación de los registros de redo
log. Cuando una BD se arranca con el comando
startup, la BD pasa por los
estados nomount, mount y open. En este tercer estado,
se verifica que se pueden abrir todos los ficheros
de log y de datos. Si la BD se arranca por primera vez
después de una caída, se necesitará efectuar una
recuperación que consiste en dos pasos: avanzar la BD
hacia adelante aplicando los registros redo log y
deshacer las transacciones no confirmadas.
Métodos de Recuperación.
Recuperación lógica: Oracle dispone de la
herramienta import para restaurar los datos de una BD a
partir de los ficheros resultados de un export. Import lee
los datos de los ficheros de exportación y ejecuta las
sentencias que almacenan creando las tablas y
llenándolas de datos.
Importación y Exportación o Métodos de Export puede
ser: Modo Tabla, Modo Usuario, Modo tablespace,
Modo BD Entera o por DataPump.
Métodos de Recuperación.

Recuperación física: La utilización de una copia de


backup de ficheros de datos siempre necesita de una
recuperación física. También es así cuando un fichero
de datos se pone offline sin un checkpoint.
Requisito para utilizar recuperación física

1. Que utilice ARCHIVELOG.


2. Recuperación de la BD: La BD debe estar montada
pero no abierta.
3. Recuperación de un tablespace: La BD debe estar
abierta, pero con el tablespace a recuperar offline.
Requisito para utilizar recuperación física

4. Recuperación de un fichero de control: La BD debe


estar abierta o cerrada, dependiendo del fichero a
recuperar. Si el fichero a recuperar es de
un tablespace de usuario la BD puede estar abierta,
pero con el fichero a recuperar offline. Si el fichero es
del tablespace SYSTEM la BD debe estar cerrada, ya
que no puede estar abierta con los ficheros del
SYSTEM offline.
BACKUPS FÍSICOS
• Un backup es una copia de estructuras y datos de la
base de datos que tiene como finalidad el poder llegar
a recuperar en el tiempo nuestra base de datos en el
caso de un fallo en el sistema. Para establecer la
estrategia de backup a utilizar se debe tomar en
cuenta la naturaleza de los datos, en que momento se
modifica esa información y que crítica es esa
información en nuestro negocio.
BACKUPS EN FRIO
• Se debe tener en cuenta que para realizar un backup
en frio la base de datos debe ser desmontada, eso
significa que no se puede realizar en bases de datos
que funcionan 24/7 (las 24 horas los 7 días de la
semana), es decir siempre.
• ¿Cómo hacerlo?
 Backup:

En primer lugar detendremos la base de datos para ello abrimos


SQL*PLUS:
BACKUPS EN FRIO
BACKUPS EN FRIO
• Una vez detenida la base copiamos los ficheros q la
componen (datos, control, redolog) y ficheros de
configuración y contraseñas (SPFILE y PWDFIle) , suelen
esta ubicados en:
$oracle_home/dbhome_1/DATABASE
• Copiaremos también todos los ficheros de log archivado:
$flash_recovery_area
• Una vez copiados todos los ficheros a una ubicación de red
local volveremos a iniciar la base de datos con el comando:
sql> startup
Restauración BACKUPS en FRIO
• Primera opcion:
Se debe de apagar la base de la siguiente manera:
sql> shutdown IMMEDIATE;
• Copiamos lo que tenemos en:
$flash_recovery_area
y lo pegamos en
$oradata\orcl
• Y luego volvemos a iniciar la base con el comando:
sql> startup
Restauración BACKUPS EN FRIO
• Segunda opción:
Si se ha alterado la dirección de donde se puso el backup al
principio
sql> oradim -NEW -SID SAME_AS_BACKED_UP_DB -pfile
FULLPATH\init.ora -syspass contraseña
Copiar los oradata a la misma dirección de la que se desea
recuperar.
En el caso de que el datafile halla sido movido de la dirección, la
base de datos debe ser iniciada con startup mount:
C:\SET oracle_sid= mySID
C:\sqlplus
SQL> startup mount;
Restauración BACKUPS EN FRIO
• (si el data file no esta en la dirección se puede
especificar su dirección con
spfile=’LOCATION\SPFILESSID.ora’)
• (Para que se pueda ubicar de una manera mas sencilla
se puede renombrar)
SQL> ALTER DATABASE RENAME FILE
‘OLD_LOCATION\DATAFILE_1.ora’ TO
‘NEW_LOCATION\DATAFIE_1.ora’;
SQL>ALTER DATABASE datafile
‘NEW_LOCATION\DATAFILE1.ora’ ONLINE;
SQL>ALTER DATABASE OPEN;
Ventajas
La consistencia de datos está garantizada: No se da el
caso de que los datos a ser respaldados estén siendo
usados por algún usuario por que ellos no pueden
acceder a la base de datos.
Este tipo de respaldo incluye todos los Datafiles, los
Controlfiles, y los Logfiles; no hay posibilidad de que
alguna tabla o vista no quede en el backup.
El espacio que ocupa es conocido, además el tiempo
de respaldo y recuperación es predecible.
Desventaja
Nada excluido: esto se convierte en una desventaja
cuando no se desea restaurar toda la información. Aquí
no se permiten hacer respaldos ni restauraciones
parciales, es decir "se respalda todo o nada y se
restaura todo o nada"; Solo se puede hacer con la base
de datos cerrada: nadie puede estar trabajando.
BACKUPS LÓGICOS
Importación y Exportación.
 Es uno de los más usados por los clientes de Oracle por su
flexibilidad y portabilidad y solo se puede hacer si la Base
de Datos esta abierta.
Es una utilidad de Oracle para realizar backups lógicos (y
luego poderlos restaurar). Esto significa que copian el
contenido de la BD pero sin almacenar la posición física
de los datos. Para realizar esta operaciones la base de
datos tiene que estar abierta.
Para crear el fichero de backup se utiliza la
utilidad export y para importar el contenido o recuperar la
base de datos se realiza import.
Parámetros de Export
Parámetro Defecto Descripción

USERID indefinido El username/password del usuario que efectua el export.


BUFFER dependiente del SO El tamaño en bytes del buffer utilizado.

FILE expdat.dmp El nombre del fichero destino.

GRANTS Yes Indica si se exportan también los derechos.

INDEXES Yes Indica si se exportan también los índices.

ROWS Yes Indica si se exportan también las filas de las tablas, o sólo las definiciones de las tablas.

CONSTRAINTS Yes Indica si se exportan también las restricciones.

COMPRESS Yes Indica si se exporta en modo comprimido.

FULL No Indica si se exporta la BD entera.

OWNER usuario actual Una lista de usuarios cuyos objetos se quieren exportar.

TABLES indefinido La lista de tablas a exportar.

RECORDLENGTH dependiente del SO La longitud en bytes del registro del fichero.

INCTYPE indefinido El tipo de export incremental.

RECORD Yes Indica si se anota el export incremental en las tablas SYS.INCVID y en SYS.INCEXP.

PARFILE indefinido El fichero de parámetros.


Métodos de Export

Modo BD Entera
Modo Tabla.
Modo Usuario.
Export Modo Tabla

 Exporta las definiciones de tabla, los datos, los


derechos del propietario, los índices del propietario, las
restricciones de la tabla y los disparadores asociados a
la tabla.
Crear Usuario Export

 CREATE USER EXPDB IDENTIFIED BY expdb;


 Grant create session, exp_full_database to expdb;
Crear Ruta en Directorio

 Crear en Linux con usuario Oracle:


mkdir -p /u03/backup
chmod -R 7775 /u03/backup
Export Modo Tabla

 Exporta tablas departments y countries del esquema


HR :
exp expdb/expdb FILE=/u03/backup/hr_tab.dmp
LOG=/u03/backup/hr_tab.log
TABLES=hr.departments,hr.countries buffer=100000
Export Modo Tabla
Export Modo Usuario

 Exporta todo lo del modo de Tabla más los clusters,


enlaces de BD, vistas, sinónimos privados, secuencias,
procedimientos, etc. del usuario.
Export Modo Usuario

 exp expdb/expdb FILE=/u03/backup/hr_owner.dmp


LOG=/u03/backup/hr_owner.log owner=HR
buffer=100000
Export Modo Usuario
Export Base de Datos Entera

 Además de todo lo del modo Usuario, exporta los


roles, todos los sinónimos, los privilegios del sistema, las
definiciones de los tablespaces, las cuotas en
los tablespaces, las definiciones de los segmentos de
rollback, las opciones de auditoría del sistema, todos
los disparadores y los perfiles.
Export Base de Datos Entera

 Primero se de debe otorgar el siguiente privilegio:


 grant execute on SYS.DBMS_JVM_EXP_PERMS to expdb;

 A continuación se realiza el Export:


 exp expdb/expdb FILE=/u03/backup/full_db.dmp
full=yes LOG=/u03/backup/full_db.log buffer=100000
Export Base de Datos Entera
Export Base de Datos Entera

 El modo BD entera puede ser dividido en tres


casos: Completo, Acumulativo e Incremental. Estos
dos últimos se toman menos tiempo que el completo,
y permiten exportar sólo los cámbios en los datos y en
las definiciones.
Export Base de Datos Entera: Completo

 Exporta todas las tablas de la BD e inicializa la


información sobre la exportación incremental de
cada tabla. Después de una exportación completa,
no se necesitan los ficheros de exportaciones
acumulativas e incrementales de la BD anteriores.
Export Base de Datos Entera: Completo

 Primero se de debe otorgar el siguiente privilegio:


• Grant select any dictionary to expdb;
 A continuacion se ejecuta el Export:
• exp expdb/expdb
FILE=/u03/backup/full_db_completo.dmp full=yes
inctype=complete CONSTRAINTS=Y
LOG=/u03/backup/full_db_completo.log
Export Base de Datos Entera: Completo
Export Base de Datos Entera: Acumulativo

 Exporta solo las tablas que han sido modificadas o


creadas desde la última exportación Acumulativa o
Completa, y registra los detalles de exportación para
cada tabla exportada. Después de una exportación
acumulativa, no se necesitan los ficheros de
exportaciones incrementales de la BD anteriores.
Export Base de Datos Entera: Acumulativo

 exp expdb/expdb
FILE=/u03/backup/full_db_acumulativo.dmp full=yes
inctype=cumulative CONSTRAINTS=Y
LOG=/u03/backup/full_db_acumulativo.log
Export Base de Datos Entera: Acumulativo
Export Base de Datos Entera: Incremental

 Exporta todas las tablas modificadas o creadas desde


la última exportación Incremental, Acumulativa o
Completa, y registra los detalles de exportación para
cada tabla exportada. Son interesantes en entornos
en los que muchas tablas permanecen estáticas por
periodos largos de tiempo, mientras que otras varían y
necesitan ser copiadas. Este tipo de exportación es útil
cuando hay que recuperar rápidamente una tabla
borrada por accidente.
Export Base de Datos Entera: Incremental

 exp expdb/expdb
FILE=/u03/backup/full_db_incremental.dmp full=yes
inctype=incremental CONSTRAINTS=Y
LOG=/u03/backup/full_db_incremental.log
Export Base de Datos Entera: Incremental
La política de exportación

 La política de exportación puede ser la siguiente:


realizar una exportación completa el día 1 (por
ejemplo el domingo), y luego realizar exportaciones
incrementales el resto de la semana. De este modo de
lunes a sábado sólo se exportarán aquellas tablas
exportadas, ahorrando tiempo en el proceso.
Import Modo Tabla

 Primero creamos el usuario que realizara el Import


• create user impdb identified by impdb;
• Grant imp_full_database, create session to impdb;

 Ahora creamos el usuario donde se importara las


tablas
• create user hr2 identified by hr2;
• Grant create session, unlimited tablespace to hr2;
Import Modo Tabla

 Realizamos el import solo de las tablas del backup:

• imp impdb/impdb FILE=/u03/backup/hr_tab.dmp


fromuser=hr touser=hr2 LOG=/u03/backup/hr_tab_imp.log
TABLES=departments,countries buffer=100000
Import Modo Tabla
Import Modo Usuario

• imp impdb/impdb FILE=/u03/backup/hr_owner.dmp


fromuser=hr touser=hr2
LOG=/u03/backup/hr_owner_imp.log buffer=100000
Import Modo Usuario
DataPump

DataPump es una utilidad del lado de servidor.


Aunque el proceso de usuario es el encargado de
inicializar un trabajo de DataPump, son los procesos
de servidor los que se encargan de ejecutar el trabajo;
de esta manera los procesos de servidor tienen
acceso directo al SGA y a los Datafiles, sin necesidad
de ir por medio de una sesión.
Un trabajo de Data Pump involucra procesos, dos
colas de trabajo, 3 tipos de archivos y las tablas.
DataPump : Procesos

Hay 2 procesos: expdp e impdp que son procesos de


usuario para iniciar, controlar y monitorear los trabajos
de Data Pump. Estos procesos establecen sesión en la
base de datos a través de procesos de servidor
normales.
Cuando un trabajo Data Pump es lanzado, se inician
los siguientes procesos: Data Pump Master Process
(DMmn) y uno o más Worker Process (DWnm) que son
controlados por el Master Process. Por cada trabajo
Data Pump tendrá sus respectivos procesos Master y
Workers.
DataPump : Colas

Un trabajo Data Pump crea dos colas. Una de Control


y una de Estatus: La cola de Control almacena las
tareas individuales que tienen que hacer los procesos
Worker. El master process divide un trabajo en tareas
individuales que son ejecutadas por los procesos
Worker; esta cola almacena las tareas en forma FIFO.
DataPump : Archivos

Los archivos generados por Data Pump vienen en tres


formas: archivos SQL, archivos Dump y archivos de log.
Los archivos SQL incluyen sentencias DDL que
describen los objetos incluidos en el trabajo. Los
archivos Dump contienen los datos exportados en
formato XML. Para finalizar, los archivos de log incluyen
un historial de todo el trabajo.
Export DataPump

Primero conectarse como sys o system como sysdba


o Sqlplus / as sysdba
Crear un directorio o utilizar uno ya creado, por
cuestiones practicas crearemos uno:
o mkdir -p /u03/backup/datapump
o chmod -R 7775 /u03/backup/datapump
Con el SqlPlus ejecutar:
o CREATE OR REPLACE DIRECTORY BACKUPS_DP AS
'/u03/backup/datapump/';
Export DataPump
Export DataPump

Luego asignar permisos de lectura y escritura:


o GRANT create any directory to expdb;
o GRANT read, write ON DIRECTORY BACKUPS_DP TO
expdb;
Para ver los directories disponibles y sus permisos o
privilegios, consulté:
SELECT privilege,directory_name
FROM user_tab_privs t, all_directories d
WHERE t.table_name(+)=d.directory_name ORDER BY 2,1;
Export DataPump
Export DataPump : Tablas

Grant unlimited tablespace to expdb;

 expdp expdb/expdb TABLES=hr.departments,hr.countries


directory=BACKUPS_DP dumpfile=tab_dep_cou.dmp
logfile=tab_dep_cou.log
Export DataPump : Tablas
Import DataPump : Tablas

Grant unlimited tablespace to impdb;


impdp impdb/impdb TABLES=hr.departments,hr.countries
directory=BACKUPS_DP dumpfile=tab_dep_cou.dmp
logfile=imp_tab_dep_cou.log

impdp impdb/impdb TABLES=hr.departments,hr.countries


directory=BACKUPS_DP dumpfile=tab_dep_cou.dmp
logfile=imp_tab_dep_cou.log
table_exists_action=append
Import DataPump : Tablas
Export DataPump : Usuario

expdp expdb/expdb schemas=SH


directory=BACKUPS_DP dumpfile=SH.dmp
logfile=SH.log
Import DataPump : Usuario

impdp impdb/impdb schemas=sh


directory=BACKUPS_DP dumpfile=SH.dmp
logfile=impSH.log fromuser=sh touser=sh1

También podría gustarte