Está en la página 1de 26

Estrategias de Respaldo y Recuperación

Resumen

La necesidad de conocer y utilizar eficientemente los métodos de


backup y recuperación en la plataforma Oracle, se ha vuelto impostergable
con el actual desarrollo tecnológico del hardware y el software. Es muy
común encontrarnos escenarios donde no se le atribuye la importancia requerida a
este tema, y donde la asimilación de nuevas posibilidades y aprovechamiento de
recursos disponibles es nula o insuficiente.

Con este artículo pretendemos dar una panorámica elemental sobre las situaciones
que conllevan a la perdida de datos, y las posibilidades que tenemos en nuestras
manos para lograr mejores resultados en la Protección de la Información.

Introducción

Las estrategias de backup y recuperación no son más que los


mecanismos y procedimientos establecidos que nos permiten recuperarnos ante
cualquier tipo de pérdida de datos. Estas pérdidas pueden ser ocasionadas por
errores de usuarios o aplicaciones, fallos en el hardware o en el software, así como
ante situaciones de desastres.

Constituye la tarea mas importante dentro de los mecanismos establecidos para la


administración de una base de datos y debe
contemplar una eficiente
planificación, ejecución y control de la misma, con el objetivo de proteger lo que ha
pasado a ser uno de los recursos más valiosos de nuestra especie;
La información.
La pérdida de datos

La pérdida de datos constituye el mayor de los traumas asociados a los


sistemas informáticos, la disponibilidad, el desempeño, y otros fenómenos
relacionados con una eficiente prestación de servicios tienen solución a corto,
mediano, o largo plazo; en dependencia del conocimiento de especialistas o de la
disponibilidad de recursos materiales. Sin embargo, la información, además de
ser un recurso sensible y costoso pudiera en ocasiones hacerse irrecuperable
de no prestarse los cuidados necesarios en el entorno informático.

Los errores de usuarios y aplicaciones, asociados a descuidos, improvisaciones y


celeridad desmesurada, constituyen uno de los traumas más comunes que si bien
pueden ser evitables, existen mecanismos actuales (Flashback Features)
para rebobinar operaciones y recuperar estados anteriores a nivel de la base de
datos, objetos y transacciones.

Los fallos en el hardware y software, aunque existen soluciones a


nivel de hardware para mantener redundancia, pueden evitarse en
cierto grado si se mantienen las condiciones de
temperatura, humedad y protección eléctrica
requeridas. Es posible también utilizar opciones de menor costo (Automatic Storage
Management) para la implementación de esta redundancia y para la detección
de errores lógicos (Hardware Assisted Resilient Data) oportunamente.

Las situaciones de desastres, aunque ocurren en


raras ocasiones, son potencialmente las más
peligrosas, y pocas veces tomamos las medidas adecuadas para resarcir los
daños ocasionados por estas. Las estrategias de respaldo casi siempre se
implementan localmente y por consiguiente también se pierde el backup
ante situaciones de este tipo. Los respaldos hacia sitios remotos, hacia cintas
magnéticas y la implementación de copias transaccionales remotas (Data Guard)
son soluciones indispensables para mantener una completa estrategia de
respaldo.

Etapas de la tarea de respaldo

La planificación, constituye la etapa de organización de cada una de las reglas que


conforman la estrategia, y debe tener en cuenta aspectos tales como:
Días y horarios, tiempo disponible para el backup, tiempo disponible para la
recuperación, espacio disponible, tipos de backup, políticas de retención, etc.

La ejecución, constituye la realización del procedimiento planificado y


puede hacerse de forma
manual o automática, en cualquiera de los casos deben
chequearse previamente las condiciones de espacio requerido y la disponibilidad de
recursos para completar exitosamente el proceso iniciado.

El control, es el procedimiento mas importante, de el depende la posibilidad real de


recuperación de los datos y constituye la etapa mas subestimada dentro de la
estrategia, durante la misma se deben revisar los LOG de backup, la detección de
corrupciones y realizar validaciones de los niveles más importantes del respaldo.
Mecanismos Oracle para estrategia de respaldo y recuperación.

En Oracle contamos con mecanismos de backup físicos y lógicos que nos permiten
proteger la base de datos con un alto nivel de fiabilidad, y como se ha mencionado
anteriormente, en la actualidad se han incorporado funcionalidades para
la protección de ficheros de base de datos (ASM), corrección de errores humanos
(Flashback), prevención de corrupciones (HARD), backup automático (RMAN, FRA), y
protección ante desastres (DATA GUARD).

Backup Lógicos

Se realizan para resguardar la estructura lógica de la base de datos, y pueden


contener cualquiera de los objetos pertenecientes a un esquema Oracle.
Pueden realizarse con la utilidad export (exp) que genera un fichero binario (dump
file), que posteriormente puede restaurarse con la utilidad import (imp) para
realizar la recuperación de los datos en cualquier plataforma Oracle.

Tablas Índices Constraints Triggers …

Oracle
<export>

Para usar esta utilidad debe poseerse el privilegio CREATE SESSION y el


role EXP_FULL_DATABASE en caso de que los objetos a exportar
pertenezcan al esquema de otro usuario. Algunos esquemas como CTXSYS
pertenecen al grupo de esquemas reservados de la base de datos y por tanto no
podrán ser procesados por export.

Luego de la invocación de la utilidad ‘exp’ pueden especificarse parámetros, que


pueden ser introducidos a través de la línea de comandos, de forma interactiva o
utilizando un fichero de parámetros.

exp username/password PARAMETER=valor


exp username/password PARAMETER=(valor1,valor2,...,valorn)
exp username/password PARFILE=filename

Parámetros export:

Entre los parámetros que son posibles definir para esta utilidad encontramos:

FILE (expdat.dmp), especifica el nombre para el dump file de export.


Pueden especificarse múltiples nombres.

COMPRESS (Y), realiza la compresión de la tabla a un único extend en caso de


fragmentación.

FLASHBACK_TIME, realiza el export hasta un punto en el tiempo utilizando


el snapshop habilitado por flashback.

FEEDBACK (0), muestra el progreso de export cada n filas.

INDEXES (Y), realiza el export de los índices.

TABLES, realiza el export de las tablas especificadas.

GRANTS (Y), realiza el export de los permisos asociados a las tablas.

CONSTRAINS (Y), realiza el export de los constraints asociados a las tablas.

TABLESPACES (ninguno), especifica los tablespaces que serán exportados.

TRANSPORT_TABLESPACES (N), especifica que los tablespaces definidos con el


parámetro TABLESPACES serán transportados a otra base de datos.

QUERY, realiza el export de un subconjunto de datos para el objeto especificado


con el parámetro TABLES.

STATISTICS (estimate), especifica el modo de recolección para las estadísticas de


optimizador.
<import>

Para usar esta utilidad debe poseerse el privilegio CREATE SESSION y el


role IMP_FULL_DATABASE en caso de que los objetos a importar
pertenezcan al esquema de otro usuario.

Luego de la invocación de la utilidad ‘imp’ pueden especificarse parámetros, que


pueden ser introducidos a través de la línea de comandos, de forma interactiva o
utilizando un fichero de parámetros.

imp username/password PARAMETER=valor


imp username/password PARAMETER=(valor1,valor2,...,valorn)
imp username/password PARFILE=filename

Parámetros import:

Entre los parámetros que son posibles definir para esta utilidad encontramos:

FILE (expdat.dmp), especifica el nombre para el dump file hecho con export.
Pueden especificarse múltiples nombres.

SHOW (N), lista el contenido del dump file.

IGNORE (N), ignora los errores de creación de objetos.

COMMIT (N), realiza un commit cada n filas importadas, evita el


crecimiento excesivo del UNDO TABLESPACES.

BUFFER, determina el # de filas que van a ser importadas, es usado


con el parámetro COMMIT para redefinir el tamaño del arreglo.

FROMUSER, realiza el import del esquema asociado al usuario en caso de que el


dump file contenga múltiples esquemas y es usado generalmente con el parámetro
TOUSER para importar hacia otro esquema.

TOUSER, lista de usuarios hacia los cuales se realizara la importación del esquema
especificado con el parámetro FROMUSER.

STATISTICS (ALWAYS), especifica si serán importadas o no las


estadísticas asociadas a los objetos almacenadas en el dump file.

INDEXES (Y), realiza el import de los índices.

TABLES, realiza el import de las tablas especificadas.

INDEXFILE, especifica un fichero para almacenar las sentencias de creación


de índices que fueron exportados.
Backup Físicos

Se realizan para resguardar la estructura física de la base de datos, abarcando por


consiguiente los ficheros de datos, ficheros de control y ficheros de redolog. Pueden
realizarse con las utilidades propias del sistema operativo o para mayor seguridad
con la utilidad RMAN que provee Oracle.

Recovery Manager (RMAN)

Utilidad de Oracle que permite realizar las operaciones de respaldo, restaura y


recuperación de información de la Base de Datos de
forma fácil y segura.

Es un producto incluido en la distributiva del servidor,


por lo que no requiere de instalaciones independientes.
Para su ejecución puede usarse la línea de comandos a través de una
sesión del Sistema Operativo o mediante la página Web del Enterprise
Manager.

Las ventajas son muchas, con relación a los mecanismos tradicionales de copias
consistentes a través de comandos del sistema operativo. Los
administradores disponen ahora de una interfase que les permite hacer más
placentera la tarea de respaldo y recuperación de información.
Entre sus múltiples ventajas, resaltan la posibilidad que tiene el DBA para:

¾ Realizar Backup y Restaura de forma fácil.

Los comandos y las estructuras sintácticas de la herramienta, así como


las ayudas en línea permiten agrupar y facilitar procesos que se tornan
engorrosos cuando se realizan por las utilidades propias del sistema operativo.

¾ Minimizar la posibilidad de errores humanos.

La posibilidad de errores durante el respaldo o recuperación tiende a cero,


debido a la propia semántica de la herramienta que se
encuentra
estrechamente ligada a la estructura de la base de datos y a las condiciones
que en cada momento son necesarias para realizar estas operaciones de forma
completa y eficiente.

¾ Realizar Backup escalable.

RMAN cuenta con un poderoso y flexible mecanismo para realizar backup


incremental, que se encarga de detectar y resguardar solo los bloques de datos
que han sido actualizados a partir de un backup anterior.

¾ Realizar Backup online.

Las operaciones de backup pueden realizarse con la base de datos abierta


y prestando servicio, sin necesidad de implementar los mecanismos
tradicionales de backup online (alter tablespace… begin backup, alter
tablespace… end backup) que resultan más engorrosos y costosos.

¾ Resguardar solamente bloques Oracle que contienen datos.

Utilización eficiente de los recursos


involucrados en las operaciones de
Entrada/Salida, ya que sólo se salvan los bloques Oracle que
contienen información y se excluye la copia de redolog y ficheros temporales.

¾ Implementar políticas de retención y depuración.

Con la implementación de políticas de retención pueden mantenerse


salvas redundantes y salvas actualizadas hasta un punto en el tiempo,
pudiéndose además establecer estrategias de depuración automatizada.

¾ Realizar chequeo de errores y validación de backup.

Es posible realizar durante el backup la detección de bloques corruptos que


son almacenados en vistas de desempeño dinámico para una posterior toma de
decisiones, también es posible correr validaciones de los respaldos realizados
para verificar la integridad de los mismos.
¾ Realizar recuperaciones a nivel de bloque.

Es posible realizar recuperaciones de bloques que han sido detectados


con corrupciones físicas y/o lógicas, evitando de esta forma el uso de
mecanismos más complejos para realizar este tipo de operación.

¾ Realizar backup encriptado.

Pueden aplicarse técnicas de encriptado al backup de la base de datos o


a tablespace individuales, lo cual aporta un nivel de seguridad en los ficheros
de respaldo que sólo podrán ser abiertos y leídos por su creador.

¾ Aplicar técnicas de compresión.

Las técnicas de compresión en las operaciones de backup, pueden reducir el


espacio ocupado por los ficheros de respaldo, entre un 50% y un 70%
del tamaño original.

¾ Aplicar procesamiento paralelo.

La utilización de varios canales para la configuración de


procesamiento paralelo, acelera el proceso de respaldo y recuperación,
que ahora puede desempeñarse de forma más eficiente y aprovechar al
máximo los recursos en un ambiente RAC.

¾ Contar con un repositorio local o centralizado.

Todas las operaciones con RMAN almacenan información (metadatos) en el


control file de la Base de Datos, y opcionalmente puede
usarse la
configuración de un catálogo de recuperación. Esta información resulta muy
útil tanto para los propios procedimientos que se encargaran de realizar una
recuperación eficiente, como para el control y administración de la estrategia
de respaldo, pudiéndose obtener listados y reportes asociados a periodos de
backup ejecutados y a necesidades de backup pendientes u obsoletas.

Componentes fundamentales de la arquitectura RMAN:

La base de datos objetivo.

El RMAN cliente, que interpreta los comandos utilizados, los redirecciona a


través de una sesión para que sean ejecutados en el servidor y actualiza
el control file con toda la actividad realizada.

Opcionalmente, un área de recuperación (flash recovery area) en


la cual pueden almacenarse los ficheros resultados de la estrategia de
respaldo.

Opcionalmente, un catálogo de recuperación (recovery catalog database) que


se construye en un esquema de base de datos, y es usado para almacenar la
actividad realizada durante las operaciones de una o más bases de datos.
Iniciando RMAN:

El RMAN cliente puede iniciarse desde el sistema operativo y los comandos


que provee pueden ser utilizados a través de: ficheros de comandos,
de forma interactiva o mediante scripts almacenados en el catálogo de recuperación.

<Fichero CMD>

rman TARGET user/password@db CATALOG user/password@catdb CMDFILE


file.cmd LOG file.log

<Interactivo>

rman TARGET user/password@db CATALOG user/password@catdb LOG file.log

RMAN> configure controlfile autobackup on;

RMAN> backup database;

RMAN> list backup;

RMAN> validate backupset;

<Script almacenado>

Es un bloque de comandos almacenado en el catálogo de recuperación, que


se encuentra disponible para cualquier cliente que se conecte al mismo y a la base
de datos objetivo. Pueden ser asociados con una instancia especifica o pueden
ser almacenados globalmente, en cuyo caso pueden ser ejecutados para cualquier
base de datos objetivo en el catalogo.

El catálogo de recuperación:

Los metadatos asociados a las operaciones realizadas con RMAN se almacenan por
defecto hacia el fichero de control de la base de datos, la implementación
del catálogo tiene como objetivo flexibilizar estas operaciones de forma que el backup
y la restaura puedan hacerse hacia y desde cualquier base de datos registrada en el
mismo, y evitar las limitaciones de almacenamiento de información histórica que
pudiera existir con la utilización del fichero de control. No obstante, la utilización
del catálogo, debe realizarse si para su implementación contamos con una base de
datos que pueda contenerlo, y que la misma no forme parte de la estructura
de información que desea respaldarse, de lo contrario cualquier perdida asociada
con la base de datos, incluirá la perdida de la información para recuperarla.
Configurando RMAN:

Antes de comenzar a usar RMAN, podemos especificar (si es necesario)


algunos parámetros que quedarán de forma persistente durante toda la vida
del actual control file sino son modificados.

RMAN> configure retention policy to redundancy 2;

Definir política de retención para mantener siempre 2 copias por datafile en el


backup de la base de datos.

RMAN> configure retention policy to recovery window of 7 days;

Definir política de retención para mantener cualquier backup almacenado que me


permita realizar una recuperación hasta un punto dentro de los últimos 7 días.

RMAN>configure controlfile autobackup on;

Realizar siempre backup del control file y spfile después del backup de los datos y
de operaciones que modifiquen la estructura física de la base de datos.

RMAN>configure default device type to disk;

Definir el disco como dispositivo de backup por defecto.

RMAN>configure channel device type disk format ‘/salvas/Backup%d_DB_%s’;

Definir dispositivo y PATH para los ficheros de backup.

RMAN>configure maxsetsize to unlimited;

Definir un tamaño máximo para los ficheros de backup;

RMAN>configure backup optimization on;

Sólo se realiza el backup de los data files que hayan cambiado después del último
backup.

RMAN>configure device type disk parallelism 2;

Definir # de procesos servidores que escribirán el backup a disco.

RMAN>show all;

Visualizar la configuración general actual.


Utilizando RMAN:

Backup

Comando utilizado para realizar las operaciones de respaldo.

BACKUP [AS COMPRESSED BACKUPSET]


FULL | INCREMENTAL LEVEL [=] integer | AS (COPY | BACKUPSET)
backupOperand backupSpec
PLUS ARCHIVELOG backupSpecOperand

backupOperand:

FORMAT [=] 'format_string'


CHANNEL ['] channel_id [']
CUMULATIVE
FILESPERSET = integer
MAXSETSIZE [=] integer [ K | M | G ]
TAG [=] ['] tag_name [']
SKIP { OFFLINE | READONLY | INACCESSIBLE }
VALIDATE | NOT BACKED UP [SINCE TIME [=] 'date_string']
COPIES [=] integer |
DEVICE TYPE deviceSpecifier

Los parámetros de operación para el backup definen la forma en que se realizará el


mismo, especificando opciones tales como:

FORMAT, path para la ubicación de los ficheros de backup.

CHANNEL, definición del canal de comunicación con la base de datos para


la operación de backup.

CUMULATIVE, define el backup como acumulativo si se especifica INCREMENTAL.

FILESPERSET, cantidad de data file por cada contenedor de backup. MAXSETSIZE,

tamaño máximo para el contenedor de backup.

TAG, etiqueta asociada al backup que permite referenciarlo


posteriormente en operaciones de reportes, restauras, etc.

SKIP, obvia data files durante la operación de backup.

VALIDATE, sólo realiza una validación de la operación de backup, recomendado


para detección de corrupciones físicas y lógicas.

COPIES, define cantidad de copias para los data files.

DEVICE TYPE, especifica dispositivo de salida para los ficheros de backup.


backupSpec:

DATAFILE datafileSpec
DATAFILECOPY 'filename'
TABLESPACE ['] tablespace_name [']
DATABASE
CURRENT CONTROLFILE [FOR STANDBY]
CONTROLFILECOPY 'filename'
SPFILE

Las especificaciones de backup definen el alcance de la operación, y por tanto las


estructuras que serán respaldadas:

DATAFILE, define el conjunto de data files que serán respaldados.

DATAFILECOPY, define las copias de data file que serán respaldados.

TABLESPACE, define los tablespaces que serán respaldados.

DATABASE, especifica un respaldo completo de la base de datos.

CURRENT CONTROLFILE [FOR STANDBY], especifica un respaldo del fichero de


control actual en modo normal o en modo dataguard para sitio standby.

CONTROLFILECOPY, define las copias de ficheros de control que


serán respaldados.

SPFILE, especifica un respaldo del fichero de parámetros actual.

backupSpecOperand:

FORMAT [=] 'format_string'


CHANNEL ['] channel_id [']
FILESPERSET = integer
MAXSETSIZE [=] integer [ K | M | G ]
TAG [=] ['] tag_name [']
SKIP {OFFLINE | READONLY | INACCESSIBLE}
NOT BACKED UP [SINCE TIME [=] 'date_string' | integer TIMES]
DELETE [ALL] INPUT

Las especificaciones asociadas a operaciones del conjunto de backup,


definen opciones adicionales en dependencia de la estructura que se respalda.
Tienen el mismo significado descrito anteriormente y están muy asociadas a las
copias y a los log archivados:

NOT BACKED UP, define el backup para estructuras que no han sido respaldadas
desde un tiempo especificado.

DELETE [ALL] INPUT, elimina copias y log archivados que han sido respaldados.
Utilizando BACKUP:

<Backup Full>

9 Ejemplo 1

RMAN> run
{
allocate channel c1 device type disk format '/salvas/%d_%u_%t.bak';
backup database include current controlfile plus archivelog delete input;
}

Especificación de un canal, dispositivo y path para los ficheros de backup desde un


bloque de ejecuciones, donde posteriormente se realiza un backup completo de la
base de datos junto con el control file actual y los log archivados; estos últimos son
eliminados de su ubicación original después de concluido el backup.

El bloque de ejecuciones (run { }) nos permite ejecutar un grupo de instrucciones en


serie, evitando la intervención del usuario entre una instrucción y otra.

9 Ejemplo 2

RMAN> backup as compressed backupset check logical format


'/salvas/%d_%u_%t.bak' TAG "RMAN_LV0" database;

El canal y el dispositivo ya se encuentran preconfigurados y ahora se realiza


un backup completo de la base de datos, especificando desde la
propia línea de comandos la ubicación de los ficheros de respaldo, que son
dejados en forma compactada y se realiza un chequeo de errores lógicos para los
bloques que han sido leídos desde el disco.

Si la ubicación de los ficheros de respaldo no ha sido configurada


de forma persistente, o no se especifica con la cláusula format,
entonces la salida será realizada hacia $ORACLE_HOME/dbs.

<Backup Parcial>

9 Ejemplo 1

RMAN> backup tablespace system format '/salvas/%d_%u_%t.bak';

Se realiza el respaldo del tablespace system hacia el camino indicado por la


cláusula ‘format’.
9 Ejemplo 2

RMAN> configure device type disk parallelism 3;

RMAN> run
{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
backup datafile 5, 6, 7;
}

Se realiza la configuración para utilizar paralelismo, desde un


bloque de ejecuciones se definen los canales necesarios para esta operación y
se realiza el backup de 3 datafile de forma paralela.

<Backup de log archivado>

9 Ejemplo 1

RMAN> backup as compressed backupset check logical TAG "RMAN_ARC"


archivelog all delete input format '/salvas/Archive_%s';

Se realiza el backup de los log archivados, especificando desde la propia línea de


comandos la ubicación de los ficheros de respaldo, que son dejados en
forma compactada y se realiza un chequeo de errores lógicos para los bloques que
han sido leídos desde el disco. Al finalizar se eliminan los log archivados que
fueron respaldados.

<Backup de control file>

9 Ejemplo 1

RMAN> backup current controlfile format '/salvas/Control_%s';

Se realiza el backup del control file actual, especificando desde la propia línea de
comandos la ubicación del fichero de respaldo.

<Backup Incremental>

La definición de estrategias basadas en backup incremental, permiten resguardar


solamente los bloques de datos que han sido actualizados desde un
Backup anterior. El entorno para utilizarlos es dependiente de
ciertas condiciones, relacionadas con la base de datos y el consumo de recursos
en horarios críticos de explotación.

El Nivel 0 es el Backup base para realizar este tipo de respaldo y a partir de


este pueden realizarse otros de Nivel 1 o Nivel 2, que pueden ser
a su vez DIFERENCIAL o CUMULATIVE en dependencia de lo que se desea
implementar.
Razones para implementar Backup Incremental:

¾ Establecer estrategias de respaldo basadas en las actualizaciones. Retroceder


hasta un punto en el tiempo la actividad realizada sobre la base de datos.

¾ Reducir el tiempo necesitado para realizar las operaciones de backup diarias.

¾ Reducir el tráfico cuando el dispositivo de backup está soportado


en una infraestructura de red.

¾ Elevar el rendimiento para operaciones de escritura, sobre todo cuando


el dispositivo de backup está soportado en discos lentos o cintas magnéticas.

¾ Realizar recuperaciones de datos para objetos que han sido definidos


con
NOLOGGING u operaciones Direct Load Inserts.

¾ Reducir el tamaño de los backup file.

Diferencial:

El Nivel 1 INCREMENTAL DIFERENCIAL resguarda los bloques de datos


que han sido actualizados desde un backup anterior de su mismo nivel o inferior.
(1 ó
0)

El Nivel 2 INCREMENTAL DIFERENCIAL resguarda los bloques de datos


que han sido actualizados desde un backup anterior de su mismo nivel o inferior. (2
ó 1 ó 0)
Cumulative:

El Nivel 1 INCREMENTAL CUMULATIVE resguarda los bloques de datos


que han sido actualizados desde un backup anterior de nivel inferior a este. (0)

El Nivel 2 INCREMENTAL CUMULATIVE resguarda los bloques de datos


que han sido actualizados desde un backup anterior de nivel inferior a este. (1 ó 0)

9 Ejemplo 1

RMAN> backup incremental level 0 check logical format '/salvas/backup_%s'


TAG "RMAN_LV0" database plus archivelog delete input;

Se realiza el backup incremental de nivel 0 para la base de datos (backup base)


con chequeo de corrupciones lógicas de bloques y adicionando el respaldo de los log
archivados con la depuración final de los mismos.

9 Ejemplo 2

RMAN> backup incremental level 1 check logical format '/salvas/backup_%s'


TAG "RMAN_LV0" database plus archivelog delete input;

Se realiza el backup incremental de nivel 1 diferencial para la base de datos, con


chequeo de corrupciones lógicas de bloques, y adicionando el respaldo de los log
archivados con la depuración final de los mismos.

9 Ejemplo 3

RMAN> backup incremental cumulative level 1 check logical format


'/salvas/backup_%s' TAG "RMAN_LV0" database
plus archivelog delete input;

Se realiza el backup incremental de nivel 1 acumulativo para la base de datos, con


chequeo de corrupciones lógicas de bloques, y adicionando el respaldo de los log
archivados con la depuración final de los mismos.
Restore y Recover

Comandos utilizados para hacer la restaura y recuperación de


información respectivamente.

RESTORE restoreObject restoreSpecOperand [ restoreSpecGeneral ]

restoreObject:

CONTROLFILE TO ‘filename’
DATABASE SKIP FOREVER TABLESPACE ‘tablespacename’
DATAFILE ‘datafilespec’
SPFILE TO PFILE ‘filename’
STANDBY CONTROLFILE TO ‘filename’
TABLESPACE ‘tablespacename’

Las especificaciones de objetos definen el alcance de la operación y por tanto


las estructuras que serán restauradas:

CONTROLFILE, especifica la restaura del fichero de control, que puede hacerse


hacia la ubicación original definida en spfile o hacia una nueva.

DATABASE, especifica la restaura de la base de datos completa,


permitiendo ignorar determinados tablespaces.

DATAFILE, especifica la restaura de los datafiles relacionados.

SPFILE, especifica la restaura del fichero de parámetros, que puede hacerse hacia
la ubicación original definida en el contenedor de backup o hacia una nueva a
través de la creación de un PFILE.

STANDBY CONTROLFILE, especifica la restaura del fichero de control configurado


para una base de datos STANDBY en un ambiente DATA GUARD, que
puede hacerse hacia la ubicación original definida en spfile o hacia una nueva.

TABLESPACE, especifica la restaura de los tablespaces relacionados.


restoreSpecOperand:

CHANNEL = ‘channel id’


FROM AUTOBACKUP
FROM ‘media_handle’
FROM TAG = ‘tag_name’

Los operandos de restore especifican fundamentalmente, determinadas


opciones asociadas a los ficheros de control y al fichero de parámetros, entre
las que se encuentran: la definición de un canal individual para la operación y la
ubicación y tipo de contenedor que contiene el backup.

CHANNEL, define la utilización de un canal para la restaura en caso de no usarse


otras configuraciones predeterminadas.

FROM AUTOBACKUP, especifica que la restaura del fichero de control o SPFILE se


realizará a partir de un contenedor construido con una operación ‘autobackup’

FROM ‘media_handle’, especifica que la restaura del fichero de control o SPFILE se


realizará a partir de un contenedor ubicado en alguna localización específica y no
desde un ’autobackup’.

FROM TAG, especifica que la restaura se realizará a partir de una etiqueta definida
para el contenedor en el momento del backup.

restoreSpecGeneral:

DEVICE TYPE = ‘deviceSpecifier’


FROM Backupset | DataFileCopy
CHECK LOGICAL
VALIDATE

Las especificaciones generales de ‘restore’, definen determinadas opciones


que pueden especificarse para cualquier operación de restaura, entre
las más importantes relacionamos:

DEVICE TYPE, especifica dispositivo y ubicación para el contenedor de backup. FROM


Backupset, especifica que la restaura de los datafile se realizara a partir de un
contenedor construido con una operación de ‘backupset’.

FROM DataFileCopy, especifica que la restaura de los datafile se realizara a partir


de copias construidas con una operación ‘backup copy’.

CHECK LOGICAL, especifica la realización del proceso de restaura invocando un


chequeo de errores para detectar corrupciones lógicas de bloques.

VALIDATE, especifica la realización de un test de restaura para validar todas las


estructuras que van a ser restauradas.
Utilizando Restore y Recover:

<Restaura y recuperación completa>

9 Ejemplo 1

RMAN> run
{
startup mount;
restore database;
recover database;
alter database open;
}

Si los control files y los redo logs están en buen estado, se realiza la restaura de
todos los data files, se ordena una recuperación y se abre la base de datos.

<Restaura y recuperación incompleta>

9 Ejemplo 1

RMAN> run
{
startup mount;
set until time 'Nov 15 2000 09:00:00';
# set until scn 1000; # alternativa
# set until sequence 9923; # alternativa
restore database;
recover database;
alter database open resetlogs;
}

Si los control files y los redo logs están en buen estado, se realiza la restaura de
todos los data files, se ordena una recuperación hasta un punto en el tiempo y se
abre la base de datos. Las alternativas asociadas a la clausula ‘until’
pueden especificarse a partir de una secuencia o del Número de Cambio del Sistema
(SCN). Las diversas formas para obtener esos valores pueden consultarse mas
adelante en la sección de Conclusiones y Recomendaciones.
<Restaura y recuperación parcial>

9 Ejemplo 1

RMAN> sql 'ALTER TABLESPACE users OFFLINE IMMEDIATE';


RMAN> restore tablespace users;
RMAN> recover tablespace users;
RMAN> sql 'ALTER TABLESPACE users ONLINE';

Durante la restaura de los data files (dañados o eliminados por


error) que pertenecen a un tablespace de la base de datos, se pone el
tablespace en estado offline con la sentencia SQL ‘ALTER’ que puede ejecutarse
desde la propia línea de comandos, se restaura, se recupera y se vuelve a
poner en su estado original
(online).

<Restaura y recuperación ante desastre>

9 Ejemplo 1

RMAN> startup nomount;


RMAN> restore controlfile;
RMAN> alter database mount;

RMAN> run
{
set until scn 1000;
# set until sequence 9923; # alternativa
restore database;
recover database;
alter database open resetlogs;
}

En un 1er paso se realiza el startup de la instancia sin montar la base de datos,


pues no se dispone del control file, se restaura el control file desde el ultimo
backup current controlfile realizado y se distribuye este automáticamente porque se
asume que el Spfile está correcto en $ORACLE_HOME/dbs, por ultimo en este paso
se monta la base de datos a partir del control file restaurado.

En un 2do paso se define el punto hasta el cual se hará la recuperación, que no es


más que la secuencia o SCN del último cambio realizado en la base de datos que
está disponible en los log archivados, los cuales serán restaurados y
aplicados durante la etapa de ‘recover’; se realiza la restaura de todos los
data files y se ordena una recuperación total.
9 Ejemplo 2

RMAN> set DBID #;


RMAN> startup nomount;
RMAN> set controlfile autobackup format for device type disk to '/PATH/CTL_%F';
RMAN> restore spfile to '/PATH/spfileSID.ora' from autobackup;
RMAN> shutdown immediate;
RMAN> startup nomount;
RMAN> restore controlfile from autobackup;
RMAN> alter database mount;

RMAN> run
{
set until scn 1000;
# set until sequence 9923; # alternativa
restore database;
recover database;
alter database open resetlogs;
}

En esta 2da variante se restaura el Spfile y el controlfile a


partir de un
‘autobackup’, lo cual implica que deba especificarse el identificador único de BD
con el comando ‘set’, después del ‘startup nomount’ debe especificarse el PATH
a partir del cual se buscará el fichero que contiene este ‘autobackup’ y se restauran el
Spfile y el controlfile, luego puede montarse la BD y proseguir con la secuencia de
comandos para una restaura y recuperación incompleta.

El reinicio de la instancia debe ejecutarse para levantar la misma


con los parámetros definidos en el Spfile restaurado, y de esta forma realizar la
distribución correcta de los ficheros de control en el momento del ‘restore’ y los log
archivados durante la operación de ‘recover’.
Mantenimiento y Monitorización

Los comandos de mantenimiento y monitorización permiten realizar


diversas operaciones que facilitan: mantener el estado correcto del
repositorio RMAN, obtener reportes y realizar validaciones que garanticen la
consistencia de los datos respaldados.

<Sincronización>

Crosscheck, permite realizar una sincronización de la información almacenada en el


repositorio RMAN con los ficheros disponibles en el dispositivo de
backup, marcando como expirados los metadatos almacenados cuyos backup no
han sido localizados o su formato está corrupto. Después de esta
operación es posible realizar la depuración de esta información.

9 Ejemplo 1

RMAN> crosscheck backup;

Realizar un chequeo cruzado para todos los backup realizados.

9 Ejemplo 2

RMAN> crosscheck backup completed between '01-FEB-01' AND '01-JUN-01';

Realizar un chequeo cruzado para los backup realizados en un intervalo de tiempo


determinado.

<Depuración>

Delete, permite eliminar la información almacenada en el repositorio RMAN y los


ficheros existentes en el dispositivo de backup.

9 Ejemplo 1

RMAN> delete expired backup

Se realiza la eliminación de todos los backup que hayan sido marcados


como expirados después de una operación ‘crosscheck’.

9 Ejemplo 2

RMAN> delete noprompt force obsolete recovery window of 7 days;

Se realiza la eliminación de los backup que han pasado a ser obsoletos por no ser
necesarios para realizar una recuperación hasta un punto dentro de los últimos 7
días. Se utiliza la opción ‘noprompt’ para evitar la confirmación de la operación y
‘force’ para ejecutar de cualquier forma esta acción.
<Validación>

Validate, permite realizar la validación del backup para detectar corrupciones


y determinar si se encuentra disponible para ser restaurado. Usado en
conjunción con los comandos ‘backup’ y ‘restore’, realiza una simulación de estas
operaciones con el mismo propósito.

9 Ejemplo 1

RMAN> validate backupset 100;

Se realiza la validación de una pieza de backup para detectar


corrupciones y determinar si se encuentra disponible para ser restaurado.

9 Ejemplo 2

RMAN> backup validate check logical database;

Se realiza la simulación de un backup, detectando corrupciones físicas y lógicas


para los bloques de datos.

<Reportes>

Report, permite generar reportes a partir de la información almacenada


en el repositorio RMAN y de esta forma obtener información sobre: los
ficheros que necesitan backup de acuerdo con la política de retención
definida, ficheros de backup que pueden ser eliminados, ficheros que conforman
la estructura física de la base de datos, etc.

9 Ejemplo 1

RMAN> report obsolete recovery window of 7 days;

Se construye un reporte sobre los backup que han quedado obsoletos de acuerdo
con la política de retención definida, que en este caso son 7 días.

De no especificarse la política en la línea de comandos, se asumirá la definida de


forma persistente con el comando configure.

9 Ejemplo 2

RMAN> report schema;

Se construye un reporte que contendrá la estructura física de la base de datos, los


ficheros de datos y temporales se relacionan asociados al # de
identificación, tablespace y tamaño asignado.
Conclusiones y Recomendaciones

Por lo extenso del tema y la imposibilidad actual de abordarlo todo, se han quedado
temas de interés que pretendemos tratarlos en un próximo artículo. Con el objetivo
de profundizar en algunas cuestiones del utilitario RMAN y dar a
conocer las nuevas posibilidades para backup lógico con la utilidad ‘Data Pump’,
que optimiza y flexibiliza las operaciones tradicionales realizadas con ‘export’ e
‘import’ a través de métodos direct path y el uso de tablas externas, lográndose altas
velocidades en la transferencia de datos hacia y desde el dump file.

Recomendaciones relacionadas con ejemplos y operaciones descritas en el artículo

<Secuencia y Número de Cambio del Sistema>

Las secuencias de los log archivados y el SCN a nivel de bloque que se


actualiza después de cualquier operación de modificación del mismo, son
utilizados para efectuar recuperaciones hasta un punto deseado dentro de la
encarnación actual de la base de datos.

Las diferentes alternativas para la definición de este punto de recuperación a través


de la clausula ‘until’ pueden obtenerse de múltiples formas:

SCN

SQL> select archivelog_change#-1 from v$database

SQL> select max(next_change#)-1 from v$archived_log

SEQUENCE

SQL> select max(sequence#) from v$archived_log

SQL> archive log list (current log sequence)

También pueden obtenerse del LOG generado por el backup realizado con RMAN o
de la salida del comando ' list backup ' del conjunto de instrucciones de
este utilitario.
<ASM>

Automatic Storage Management, ha pasado a formar parte de las instalaciones de


nuestras bases de datos, como parte de las tecnologías actuales de Oracle a través
de la cual se flexibiliza la configuración, utilización y
administración del almacenamiento.

Si se esta utilizando esta posibilidad para el almacenamiento, y deseamos realizar


una restaura del fichero de parámetros Spfile, debe crearse
primeramente el diskgroup y el PATH para la restaura del mismo:

SQL> CREATE DISKGROUP dg_name


EXTERNAL REDUNDANCY
DISK ‘/dev/cciss/c0d0’, ’/dev/cciss/c0d1’
SIZE N

SQL> ALTER DISKGROUP dg_name ADD DIRECTORY ‘+/dg_name/sid’

Posteriormente debe actualizarse el puntero $ORACLE_HOME/dbs/initSID.ora con


SPFILE='+DG/SID/spfileSID.ora'. Después de la restaura del Spfile debe hacerse un
shutdown immediate y un nuevo startup nomount para leer correctamente el
fichero parámetro y distribuir adecuadamente el controlfile en el momento de
la restaura.

<OMF>

Oracle Managed File, ha pasado a formar parte de las instalaciones actuales


de nuestras bases de datos, como parte de las tecnologías Oracle a través de la cual
el gestor se encarga de la administración de los ficheros que componen la base
de datos.

Si se está utilizando esta posibilidad para nombrar los ficheros, y deseamos realizar
una restaura de los data files, debe eliminarse la especificación del directorio por
defecto para esta característica antes de hacer el ‘restore database’:

SQL> ALTER SYSTEM SET db_create_file_dest = ‘’ SCOPE = both;

Esto permitirá realizar la restaura de los data files hacia la ubicación original, que
de otra forma quedarían todos ubicados en el PATH referenciado
por este parámetro.
<Detección de Corrupciones>

La detección de corrupciones físicas y lógicas de bloques Oracle, es una de


las posibilidades actuales de la utilidad RMAN. En cualquiera
de los casos la información relacionada con la corrupción, es almacenada en
la vista de desempeño dinámico V$DATABASE_BLOCK_CORRUPTION y el
parámetro MAXCORRUPT permite definir el numero máximo de bloques corruptos
permitidos para un fichero.

Si durante una operación de backup con detección de corrupción se excede el valor


de este parámetro el backup termina y no se lee el resto del fichero. La información
relacionada con los bloques corruptos que excedieron este valor no es almacenada
en V$DATABASE_BLOCK_CORRUPTION, por lo que para registrar la
misma y emprender acciones de recuperación, debe incrementarse el valor de
MAXCORRUPT y relanzar la operación de backup de forma real o en modo validación.

RMAN> run
{
set MAXCORRUPT for datafile datafileSpec to integer;
backup validate check logical datafile datafileSpec;
}

Bibliografía:

Oracle Database Documentation Library 10g, Backup and Recovery Advanced User’s Guide,

http://download.oracle.com/docs/cd/B19306_01/backup_102/b14191/toc.htm

Oracle Database Documentation Library 10g, Backup and Recovery Basics,

http://download.oracle.com/docs/cd/B19306_01/backup_102/b14192/toc.htm

Oracle Database Documentation Library 10g, Backup and Recovery Quick Start Guide,

http://download.oracle.com/docs/cd/B19306_01/backup_102/b14193/toc.htm

Oracle Database Documentation Library 10g, Backup and Recovery Reference,

http://download.oracle.com/docs/cd/B19306_01/backup_102/b14194/toc.htm

También podría gustarte