¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Copia de seguridad y restauración

Conceptos generales

1. Descripción general

Garantizar la seguridad de los datos es una de las tareas principales del administrador.

Esta seguridad se garantiza mediante:

  • la implementación de una protección de los archivos sensibles de la base de datos:

  • archivos de control;

  • archivos de traza.

  • la puesta en marcha de una estrategia de copia de seguridad/restauración:

  • adaptada a las restricciones de la empresa;

  • probada y documentada.

La protección de los archivos de control y de los archivos de traza se realiza por multiplexación (consulte el capítulo Archivos de control y de traza).

Las preguntas que nos debemos plantear para definir la estrategia son las siguientes:

  • ¿Es aceptable perder los datos?

  • ¿Es posible parar periódicamente la base de datos?

  • ¿Es posible realizar una copia de seguridad completa de la base de datos durante la parada?

La respuesta a la pregunta "¿es aceptable perder los datos?" raramente es "sí". Si excepcionalmente la respuesta es "sí", hay que determinar hasta qué límite: ¿1 día, 2 días, 1 semana?

También es necesario determinar la naturaleza de la actividad de la base de datos:

  • Los datos, ¿se actualizan diariamente por los usuarios? Este normalmente es el caso en una aplicación transaccional.

  • Los datos, ¿se actualizan periódicamente (todas las noches, todas las semanas) y simplemente se consultan durante el día? Este normalmente es el caso con una aplicación decisional.

2. El almacenamiento de los archivos de traza

Como ya hemos visto, los archivos de traza conforman un registro de las modificaciones realizadas en la base de datos. Se organizan en grupos escritos de manera circular: por tanto, la información guardada se eliminada por defecto periódicamente.

Estos archivos de traza se pueden aplicar a una copia de seguridad del archivo de datos para recrear todas las modificaciones que se hayan producido entre la copia de seguridad y una incidencia que haya dañado el archivo (restauración del soporte), con la premisa de haber conservado todos los archivos de traza; esto es posible haciendo funcionar la base de datos...

Almacenamiento de los archivos de traza

1. Descripción general

Es posible activar el almacenamiento de los archivos de traza poniendo la base de datos en modo ARCHIVELOG: este modo permite garantizar que un grupo de archivos de traza no se reutilizará mientras que no se haya almacenado.

Desde la versión 10, poner la base de datos en modo ARCHIVELOG permite iniciar automáticamente dos procesos de almacenamiento (ARC0 y ARC1) durante la apertura de la base de datos; en las versiones anteriores había que hacerlo explícitamente. Por el contrario, siempre es oportuno, incluso en la versión 10, dar valor a algunos argumentos de inicialización que afectan a los proceso de almacenamiento.

La base de datos se puede crear inmediatamente en modo ARCHIVELOG. Generalmente, la base de datos se crea en modo NOARCHIVELOG y después se pasa a ARCHIVELOG. Guardar los archivos de traza generados por la creación de la base de datos no tiene mucho interés (solo un volumen de archivos importante).

2. Modo de proceder

El modo de proceder es el siguiente:

  • Modificar, en el archivo de argumentos del servidor, los argumentos de inicialización que afectan a los procesos de almacenamiento:


  SQL> ALTER SYSTEM SET 
    2      log_archive_format='redo_%S_%R_%T.arc' 
    3  SCOPE=SPFILE; 
  SQL> ALTER SYSTEM SET 
    2      log_archive_dest_1='LOCATION=h:\oradata\arch\NUESTRABASE' 
    3  SCOPE=SPFILE;
 
  • Parar correctamente la base de datos (no ABORT):


SQL> SHUTDOWN IMMEDIATE
 
  • Montar la base de datos:


SQL> STARTUP MOUNT
 
  • Pasar la base de datos a modo ARCHIVELOG:


SQL> ALTER DATABASE ARCHIVELOG;
 
  • Realizar una copia de seguridad de la base de datos (permite tener una copia de seguridad T0 del nuevo modo de funcionamiento de la base de datos).

  • Abrir la base de datos:


SQL> ALTER DATABASE OPEN;
 

El modo ARCHIVELOG/NOARCHIVELOG es una propiedad de la base de datos que se modifica mediante la sentencia SQL ALTER DATABASE. Este modo de funcionamiento se memoriza en el archivo de control de la base de datos; no es necesario volver a indicarlo en cada inicio.

La sentencia SQL ALTER DATABASE NOARCHIVELOG permite, si es necesario, volver a pasar a modo NOARCHIVELOG.

3. Los argumentos del proceso de almacenamiento

LOG_ARCHIVE_FORMAT

Este argumento define el formato deseado para...

Presentación del Recovery Manager

1. Introducción

RMAN es una herramienta por línea de comandos que permite realizar copias de seguridad y restauraciones de una base de datos llamada base de datos de destino (target database).

RMAN utiliza un repositorio (repository) para almacenar la información de su configuración, las copias de seguridad realizadas, la estructura de la base de datos de destino, los archivos de traza almacenados, etc.

Este repositorio siempre se almacena en el archivo de control de la base de datos de destino. La duración de conservación de la información en el archivo de control se determina mediante el argumento de inicialización CONTROL_FILE_RECORD_KEEP_TIME (7 días, por defecto).

El repositorio también se puede almacenar en un catálogo de recuperación (recovery catalog) que se materializa por un esquema en otra base de datos. Es posible utilizar un único catálogo de recuperación para centralizar los repositorios RMAN de varias bases de datos de destino. Emplear un catálogo de recuperación separado resulta interesante porque la información de copia de seguridad se conserva si todos los archivos de control de la base de datos de destino se pierden.

Por tanto, los archivos de control todavía son más importantes cuando utilice RMAN sin catálogo de recuperación. Si pierde todos los archivos de control de la base de datos de destino, RMAN no tiene más información de las copias de seguridad disponibles. Si parte de una copia de seguridad de un archivo de control, RMAN no tendrá información de las copias de seguridad realizadas después de la copia de seguridad del archivo de control. Si no usa catálogo de recuperación, también tiene interés aumentar el valor del argumento CONTROL_FILE_RECORD_KEEP_TIME (al menos entre 10 y 15 días).

Si define una zona de recuperación rápida (flash recovery area) con ayuda de los argumentos DB_RECOVERY_FILE_DEST y DB_RECOVERY_FILE_DEST_SIZE, puede aprovechar las funcionalidades de copia de seguridad y restauración automática en disco propuestas por RMAN. Adicionalmente, puede definir una política de conservación (retention policy) indicando cuanto tiempo se debe conservar una copia de seguridad. RMAN se encarga de gestionar el espacio...

Copia de seguridad

1. Conceptos generales

El comando BACKUP permite realizar una copia de seguridad. Para que este comando funcione la base de datos debe estar montada o abierta, porque RMAN necesita acceder al archivo de control de la base de datos de destino fundamentalmente para registrar en él la existencia de la copia de seguridad. Las copias de seguridad de base de datos abierta de la totalidad de la base de datos, de los archivos de datos o de los tablespaces, solo son posibles si la base de datos funciona en modo ARCHIVELOG. Si la base de datos funciona en modo NOARCHIVELOG, para realizar una copia de seguridad de este tipo inicialmente es necesario parar la base de datos (correctamente) y después montarla.


SHUTDOWN IMMEDIATES  
STARTUP MOUNT  
BACKUP ...;
 

RMAN puede hacer una copia de seguridad de los archivos de datos, los archivos de control, los archivos de traza almacenados, el archivo de argumentos del servidor o los elementos de copia de seguridad (de una copia de seguridad anterior). Como se ha indicado anteriormente, una copia de seguridad RMAN se puede realizar como una copia de imagen (image copy) o como un juego de copias de seguridad (backup set). Por defecto, la copia de seguridad se realiza como un juego de copias de seguridad.

Cuando RMAN realiza una copia de seguridad de archivos de datos como un juego de copias de seguridad, no copia los bloques nunca utilizados de los archivos, lo que permite ganar espacio. Adicionalmente, es posible comprimir el juego de copias de seguridad; esto ralentiza ligeramente la copia de seguridad y consume un poco de CPU, pero disminuye el tamaño de la copia de seguridad de manera importante (normalmente se divide entre 5). Estas dos funcionalidades no están disponibles en el caso de copia de imagen (copia bit a bit del archivo de origen).

La sintaxis general del comando BACKUP es la siguiente:


BACKUP [cómo] qué [opción]
 

El comando BACKUP ofrece muchas opciones. En este libro solo presentaremos las opciones que se usan más habitualmente.

La cláusula cómo puede tomar uno o varios de los siguientes valores:


INCREMENTAL LEVEL n [CUMULATIVE]
 

Indica que la copia de seguridad es una copia de seguridad incremental.


VALIDATE
 

Indica simplemente comprobar que la copia de seguridad se puede realizar (comprueba la presencia de los archivos y que no están corruptos). Esta opción es equivalente al uso del comando...

El repositorio RMAN

1. Encontrar información de las copias de seguridad

a. El comando LIST

El comando LIST permite consultar el repositorio RMAN para mostrar información relativa a las copias de seguridad y los archivos de traza almacenados.

Sintaxis 1


LIST destino [ BY FILE | SUMMARY ] [ filtro_copia_de_seguridad ]; 
       - destino 
{ BACKUP | COPY } [ OF objetos ] 
BACKUPSET 
       - objetos 
DATABASE 
DATAFILE lista_números_o_nombres 
TABLESPACE lista_nombres 
CONTROLFILE 
SPFILE 
ARCHIVELOG { ALL | filtro_archivo } 
       - filtro_archivo  
FROM TIME 'fecha'  
UNTIL TIME ' fecha '  
TIME BETWEEN ' fecha 1' AND ' fecha 2'  
       - filtro_copia_de_seguridad  
TAG [=] 'nombre'  
COMPLETED {  AFTER ' fecha 1'  
           | BEFORE ' fecha 2'  
           | BETWEEN ' fecha 1' AND ' fecha 2' }
 

Sintaxis 2


LIST { BACKUPSET | BACKUPPIECE } { lista_claves | TAG [=] 'nombre' };
 

Sintaxis 3


LIST ARCHIVELOG { ALL | filtro_archivo } [info_copia_de_seguridad]; 
       - info_copia_de_seguridad  
BACKED UP n TIMES TO DEVICE TYPE [DISK | 'media']
 

Aquí no se presentan todas las opciones posibles.

Primera sintaxis

La primera sintaxis permite mostrar información relativa a las copias de seguridad guardadas en el repositorio RMAN.

Por defecto, los comandos LIST BACKUP, LIST COPY y LIST BACKUPSET permiten enumerar todos los elementos guardados en el repositorio RMAN.

En el caso de los comandos LIST BACKUP y LIST COPY es posible especificar uno o varios objetos para mostrar solo las copias de seguridad de los objetos en cuestión.

Ejemplo:


LIST BACKUP OF DATABASE; # cualquier archivo de la base de datos 
LIST BACKUP OF DATAFILE 1,'E:\ORADATA\NUESTRABASE\DATA01.DBF'; 
LIST BACKUP OF TABLESPACE system,sysaux; 
LIST BACKUP OF CONTROLFILE SPFILE; 
LIST BACKUP OF ARCHIVELOG ALL; 
LIST BACKUP OF ARCHIVELOG UNTIL TIME 'SYSDATE-1';
 

El último ejemplo enumera las copias de seguridad de los archivos de traza almacenados hace más de un día...

Restauración

1. Descripción general

La estrategia de recuperación depende de varios factores:

  • De la naturaleza del o de los archivos dañados o perdidos:

  • archivo de datos;

  • archivo de control;

  • archivo de argumentos del servidor;

  • archivo de traza.

  • Del modo de funcionamiento de la base de datos:

  • ARCHIVELOG

  • NOARCHIVELOG.

  • De las copias de seguridad disponibles.

¿Qué hacer en caso de problema?

1. identificar la naturaleza del problema;

2. definir el modo de proceder teniendo en cuenta el modo de funcionamiento de la base de datos y de las copias de seguridad disponibles.

Sobre todo, no se precipite y no dude en solicitar ayuda al soporte de Oracle.

Desde la versión 11, Oracle ofrece un asesor para la recuperación de los datos (el Data Recovery Advisor), que permite diagnosticar y resolver fácilmente las incidencias (pérdida o corrupción) relacionadas con los datos en disco. Esta nueva herramienta se presenta en la sección Data Recovery Advisor.

A lo largo del texto, los términos "perdido" y "dañado" se utilizan indistintamente, haciendo referencia a una incidencia; en la práctica, aunque el archivo se haya perdido o simplemente dañado, los procedimientos de recuperación son los mismos.

Se realiza una operación de recuperación, principalmente con RMAN. Para algunas etapas puede ser necesario SQL*Plus, principalmente para consultar algunas vistas del diccionario de datos (aunque ya no es necesario en la versión 12, porque las sentencias SELECT se pueden ejecutar directamente en RMAN); será necesaria una conexión AS SYSDBA si la base de datos no está abierta.

Un consejo antes de empezar cualquier operación de recuperación es realizar, si es posible, una copia de seguridad completa de la base de datos dañada. Esto puede proporcionar un punto de retorno si se agrava la situación, provocada por una manipulación incorrecta. Como mínimo, realice una copia de seguridad del archivo de control y de los archivos de traza en línea (a través de una simple copia a nivel del sistema operativo).

En una operación de "recuperación" o de "restauración" hay dos etapas bien definidas e independientes:

  • La etapa de restauración (restore) consiste en extraer de una copia de seguridad los archivos necesarios....

Las técnicas de flashback

1. Descripción general

Las técnicas de flashback son un conjunto de funcionalidades propuestas por Oracle que permiten ver el estado pasado de los datos o bien obtener una tabla o toda la base de datos en un momento concreto del pasado.

Las funcionalidades propuestas son las siguientes:

  • Flashback Query: permite leer los datos tal y como eran en un instante del pasado (funcionalidad que apareció en la versión 9).

  • Flashback Version Query: permite ver todas las versiones de un registro en un determinado intervalo de tiempo (funcionalidad que apareció en la versión 10).

  • Flashback Transaction Query: permite ver las modificaciones realizadas por una o varias transacciones en un determinado intervalo de tiempo (funcionalidad que apareció en la versión 10).

  • Flashback Transaction: permite anular las modificaciones de una transacción y sus transacciones dependientes (funcionalidad que apareció en la versión 11).

  • Flashback Data Archive (Oracle Total Recall): permite conservar a largo plazo todas las modificaciones realizadas a una tabla (funcionalidad que apareció en la versión 11).

  • Flashback Table: permite devolver una tabla al estado en el que estaba en un determinado momento en el pasado (funcionalidad que apareció en la versión 10).

  • Flashback Drop: permite devolver la tabla al estado en el que estaba justo antes su eliminación (funcionalidad que apareció en la versión 10).

  • Flashback Database: permite devolver la totalidad de la base de datos al estado en el que estaba en un determinado momento del pasado (funcionalidad que apareció en la versión 11).

Solo la funcionalidad Flashback Query está disponible en todas las ediciones de la base de datos (particularmente en Standard Edition).

La funcionalidad Flashback Data Archive (Oracle Total Recall) es una opción de Enterprise Edition y, por tanto, necesita una licencia adicional. Esta funcionalidad no se presenta en este libro.

Las demás funcionalidades de flashback necesitan Enterprise Edition, pero sin opciones adicionales.

Estas funcionalidades utilizan técnicas diferentes, pero responden al mismo objetivo: recuperar un error de utilización.

Las funcionalidades de flashback de consulta (Flashback Query, Flashback Version Query y Flashback Transaction Query) y la funcionalidad de flashback de tabla utilizan...

Utilizar Oracle SQL Developer

EM Express no ofrece ninguna página para realizar copias de seguridad o restauraciones. Para ello es posible, a pesar de que presenta algunas limitaciones, utilizar Oracle SQL Developer.

1. Introducción

En el panel DBA, la carpeta Copia de Seguridad/Recuperación de RMAN da acceso a las diferentes funcionalidades que permiten utilizar RMAN:

images/14_603_1.png

Las diferentes funcionalidades se reparten en cinco subcarpetas:

Acciones de RMAN Programadas

Visualización de los trabajos RMAN ejecutados desde Oracle SQL Developer.

Copias de Imágenes

Gestión (visualización, eliminación, comprobación) de las copias de imagen.

Juegos de Copias de Seguridad

Gestión (visualización, eliminación, comprobación) de los juegos de copia de seguridad (backup set).

Configuración de RMAN

Configuración de RMAN.

Trabajos de Copia de Seguridad

Gestión (consulta, creación) de los trabajos de copia de seguridad y recuperación.

Los diferentes cuadros de diálogo propuestos por Oracle SQL Developer van a permitir generar los comandos RMAN que podrán copiarse o salvarse en un archivo para ejecutarse a continuación con la herramienta de línea de comandos. Adicionalmente, pero solo en plataformas Linux, es posible ejecutar los comandos RMAN directamente a partir de Oracle SQL Developer después de haberlo configurado adecuadamente.

Los cuadros de diálogo propuestos por Oracle SQL Developer tienen, por tanto, elementos comunes que van a permitir realizar la acción deseada.

Ejemplo:

images/14_604_1.png

Por defecto, si no se ha configurado Oracle SQL Developer para ejecutar los comandos RMAN, el cuadro de diálogo permite registrar los comandos en un script, por tanto puede elegir el nombre y la ubicación (zona Script para Guardar Archivo y botón Seleccionar…). La pestaña RMAN permite ver los comandos correspondientes:

images/14_605_1.png

En lugar de registrarlos en un archivo, puede copiar los comandos desde esta pestaña para utilizarlos como usted quiera por ejemplo para ejecutarlos en modo interactivo en la herramienta de línea de comandos. En este cuadro de diálogo también puede modificar el script como desee antes de guardarlo (botón Aplicar) o copiarlo.

Cuando guarda el script, Oracle SQL Developer muestra un cuadro de diálogo de confirmación que indica cómo...