9.3 Mantenimiento del almacén de datos de ZENworks en Oracle

Las siguientes secciones proporcionan instrucciones para realizar copias de seguridad del almacén de datos de ZENworks y restaurarlo mediante Oracle:

9.3.1 Soluciones de copia de seguridad y recuperación

Oracle proporciona dos métodos de copia de seguridad y recuperación:

  • Recovery Manager (RMAN)

  • Copia de seguridad y recuperación gestionadas por el usuario

La utilidad RMAN se instala automáticamente con la base de datos. Se puede utilizar para realizar copias de seguridad de bases de datos de Oracle8 y de todas las versiones posteriores de Oracle*. RMAN emplea sesiones de servidor de la base de datos para llevar a cabo las copias de seguridad y las recuperaciones. La utilidad RMAN cuenta con su propia sintaxis y se puede acceder a ella desde una interfaz de la línea de comandos o a través de la interfaz gráfica del usuario de Oracle Enterprise Manager. RMAN proporciona también distintas API para permitir la comunicación con administradores de medios de otros fabricantes.

La ventaja de RMAN consiste en que obtiene y almacena metadatos acerca de sus operaciones en el archivo de control de la base de datos. Se puede configurar un catálogo de recuperación independiente, que constituye un esquema integrado por metadatos importados desde el archivo de control, en una base de datos de catálogo de recuperación independiente. RMAN mantiene todos los registros necesarios para las copias de seguridad, registros archivados, etc. utilizando los metadatos, por lo que la restauración y la recuperación se simplifican enormemente.

Como método alternativo para realizar la recuperación se pueden utilizar comandos del sistema operativo para las copias de seguridad y SQL*Plus para la recuperación. Este método se conoce como copia de seguridad y recuperación gestionadas por el usuario.

Mientras que RMAN automatiza la copia de seguridad y la recuperación, el método gestionado por el usuario requiere que se mantenga un registro de todos los archivos y copias de seguridad de la base de datos. Por tanto, dado su fiabilidad y su capacidad de administrar bases de datos de forma simplificada, RMAN es una herramienta muy recomendable para las operaciones de copia de seguridad. En las secciones siguientes de este documento se exponen los pasos necesarios para utilizar RMAN con el fin de realizar un proceso completo de copia de seguridad y recuperación de una base de datos.

9.3.2 Definición de variables de entorno

  1. Defina las siguientes variables de entorno con los valores adecuados antes de usar RMAN:

    • ORACLE_HOME: directorio en el que está instalado el software de Oracle.

      Para Oracle 9i R2: defina la variable como ORACLE_HOME=/opt/oracle/product/9ir2

      Para Oracle 10g R2: defina la variable como ORACLE_HOME=/opt/oracle/product/10.2/db_1

    • CLASSPATH: vías a las bibliotecas instaladas por Oracle.

      Para Oracle 9i R2: defina la variable como CLASSPATH=$CLASSPATH:/opt/oracle/product/9ir2/JRE:/oracle/opt/oracle/product/9ir2/jlib:/oracle/opt/oracle/product/9ir2/rdbms/jlib:/oracle/opt/oracle/product/9ir2/network/jlib

      Para Oracle 10g R2: defina la variable como CLASSPATH=$CLASSPATH:/opt/oracle/product/10.2/db_1/JRE:/opt/oracle/product/10.2/db_1/jlib:/opt/oracle/product/10.2/db_1/rdbms/jlib:/opt/oracle/product/10.2/db_1/network/jlib

    • PATH: directorio bin de la instalación de Oracle.

      Para Oracle 9i R2: defina la variable como PATH=$PATH:/opt/oracle/product/9ir2/bin

      Para Oracle 10g R2: defina la variable como PATH=$PATH:/opt/oracle/product/10.2/db_1/bin

Las variables de entorno se pueden definir de un modo similar para la base de datos Oracle 11g.

9.3.3 Conexión a la base de datos

Puede utilizar cualquiera de los métodos siguientes para conectar con la base de datos de Oracle que se esté utilizando como almacén de datos:

  • Iniciar RMAN en la línea de comandos del sistema operativo sin conectar a una base de datos emitiendo el comando RMAN sin ninguna opción de conexión:

    $ rman

    RMAN> CONNECT TARGET /

  • Iniciar el ejecutable de RMAN en la línea de comandos del sistema operativo a la vez que se conecta a la base de datos:

    $ rman TARGET /

    IMPORTANTE:si ha instalado una base de datos Oracle 10g u Oracle 11g en un dispositivo SLES 10, asegúrese de ejecutar rman desde el directorio $ORACLE_HOME/bin/rman.

Si la base de datos está ya montada o abierta, RMAN muestra un resultado similar a lo siguiente:

Recovery Manager: Release 9.2.0.0.0  
connected to target database: RMAN (DBID=1237603294)

El valor DBID que se muestra es el identificador de la base de datos de destino.

Si la base de datos no se ha iniciado, RMAN muestra el mensaje siguiente:

connected to target database (not started)  
RMAN>   # the RMAN prompt is displayed

9.3.4 Inicio de la base de datos

  1. Inicie la base de datos con el comando siguiente:

    RMAN> startup mount

    Este comando inicia una copia de Oracle si no se ha iniciado ya y monta la base de datos sin abrirla.

    Si se monta correctamente, se muestra el siguiente resultado:

    Oracle instance started
    database mounted
    

    Si no, se muestran los mensajes de error oportunos indicando la causa del fallo y las soluciones adecuadas.

9.3.5 Copia de seguridad de la base de datos

Se puede crear una copia de seguridad de la base de datos en la ubicación por defecto del disco, que es específica de cada sistema operativo. En Linux, la vía por defecto donde se almacenan los archivos de copia de seguridad es $ORACLE_HOME/dbs.

Para crear una copia de seguridad completa de los archivos de datos, los archivos de control y el archivo de parámetros del servidor en uso en el tipo de dispositivo por defecto (el disco), use el siguiente comando de copia de seguridad en el indicador de RMAN:

RMAN> BACKUP DATABASE;

En el comando anterior, el parámetro FORMAT no se especifica, por lo que RMAN asigna automáticamente a cada elemento de la copia de seguridad un nombre exclusivo y lo almacena en la ubicación por defecto específica del sistema operativo ($ORACLE_HOME/dbs en Linux).

Para especificar un nombre de archivo para cada elemento de copia de seguridad, utilice el comando backup con el parámetro FORMAT:

RMAN> BACKUP DATABASE FORMAT’/tmp/%U’;

%U genera un nombre de archivo exclusivo.

El comando backup de RMAN crea un conjunto de copia de seguridad, que constituye un objeto lógico que incluye uno o varios elementos de copia de seguridad.

El resultado del comando backup contiene la información esencial acerca de la copia de seguridad, como se muestra en el ejemplo siguiente:

Starting backup at JULY 12 2009 19:09:48
using target database controlfile instead of recovery catalogal
located channel: ORA_DISK_1
channel ORA_DISK_1: sid=10 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
including current controlfile in backupset
input datafile fno=00001 name=/oracle/oradata/zenworks/system01.dbf
input datafile fno=00002 name=/oracle/oradata/zenworks/undotbs01.dbf
input datafile fno=00003 name=/oracle/oradata/zenworks/cwmlite01.dbf
input datafile fno=00004 name=/oracle/oradata/zenworks/drsys01.dbf
input datafile fno=00005 name=/oracle/oradata/zenworks/example01.dbf
input datafile fno=00006 name=/oracle/oradata/zenworks /indx01.dbf
input datafile fno=00007 name=/oracle/oradata/zenworks/tools01.dbf
input datafile fno=00008 name=/oracle/oradata/zenworks/users01.dbf
channel ORA_DISK_1: starting piece 1 at  JULY 12 2009  19:09:56
channel ORA_DISK_1: finished piece 1 at  JULY 12 2009 19:10:31
piece handle=/oracle/dbs/lvd6dtk1_1_1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:39
Finished backup at JULY 12 2009 19:10:33

9.3.6 Recuperación de la base de datos

Se puede recuperar un archivo de datos restaurado aplicando registros de rehacer archivados y en línea, es decir, registros de los cambios realizados en la base de datos después de que se realizara la copia de seguridad. Las siguientes secciones proporcionan instrucciones acerca de los dos métodos que se pueden utilizar para recuperar la base de datos:

Recuperación completa

La recuperación completa implica el uso de datos de rehacer o copias de seguridad incrementales combinado con una copia de seguridad de una base de datos, espacio de tablas o archivo de datos, para recuperar el estado más reciente en el tiempo. Este proceso se conoce como recuperación completa porque Oracle aplica todos los cambios de rehacer incluidos en los registros archivados y en línea a la copia de seguridad. Normalmente una recuperación de medios completa se lleva a cabo después de que se dañen los archivos de datos o el archivo de control tras un fallo en los medios.

  1. Utilice la siguiente secuencia de comandos para realizar una recuperación completa de la base de datos.

    RMAN> connect target /

    RMAN> run {

    2> startup mount ;

    3> restore database ;

    4> recover database ;

    5> alter database open ;

    6> }

    Esta secuencia de comandos tiene como resultado la restauración y recuperación de todos los archivos de datos. RMAN aplica registros archivados como es necesario hasta que se completa la recuperación.

  2. Una vez que se completa la restauración, debe asegurarse de que el almacén de datos esté sincronizado con el almacén de objetos. Para obtener instrucciones al respecto, consulte la Sección 9.4, Sincronización del almacén de objetos y el almacén de datos.

Recuperación incompleta

RMAN puede llevar a cabo la recuperación de toda la base de datos a un momento, un SCN o un número de secuencia de registro concretos. Este tipo de recuperación se conoce como recuperación incompleta porque no se utilizan en ella todos los registros de rehacer disponibles. La recuperación incompleta de toda la base de datos se denomina también recuperación en un punto en el tiempo.

Se debe realizar una recuperación incompleta de la base de datos en las situaciones siguientes:

  • Un fallo en los medios ha destruido todos los registros de rehacer en línea o parte de ellos.

  • Un error de un usuario ha originado la pérdida de datos. Por ejemplo, un usuario ha borrado una tabla por accidente.

  • No se puede realizar una recuperación completa porque falta un registro de rehacer archivado.

Para realizar una recuperación incompleta, restaure todos los archivos de datos a partir de copias de seguridad creadas antes del momento en que se necesite la recuperación y, a continuación, abra la base de datos con la opción RESETLOGS después de que se complete la recuperación. La operación RESETLOGS crea una nueva copia de la base de datos: en otras palabras, una base de datos con una nueva lista de números de secuencia de registro que comienza con la secuencia de registro 1.

La base de datos debe estar cerrada para llevar a cabo una recuperación incompleta.

Para realizar una recuperación incompleta:

  1. Defina la variable de entorno de formato de hora:

    $ NLS_DATE_FORMAT="Mon DD YYYY HH24:MI:SS"

  2. Use la siguiente secuencia de comandos:

    $ rman target /

    RMAN> startup mount;

    RMAN> run {

    2> set until time "to_date('Jul 12 2009 10:24:00', 'MM DD YYYY HH24:MI:SS')";

    3> restore database ;

    4> recover database ;

    5> }

    RMAN utiliza la última copia de seguridad creada antes del momento especificado en el comando set until para restaurar los archivos en sus ubicaciones por defecto. A continuación, utiliza los registros de rehacer archivados (si son necesarios) para recuperar la base de datos.

    Se pueden emplear otros dos parámetros con el comando set until: SCN y el número de secuencia de registro. Los SCN se obtienen de los registros de alerta. Busque el SCN de un evento y realice la recuperación a un SCN anterior. Por ejemplo:

    SET UNTIL SCN 1000
    
  3. Si la recuperación se lleva a cabo correctamente, abra la base de datos y restablezca los registros en línea:

    ALTER DATABASE OPEN RESETLOGS;

  4. Una vez que se completa la restauración, debe asegurarse de que el almacén de datos esté sincronizado con el almacén de objetos. Para obtener instrucciones al respecto, consulte la Sección 9.4, Sincronización del almacén de objetos y el almacén de datos.

Es conveniente realizar una copia de seguridad de la base de datos inmediatamente, si es posible con la base de datos montada (para evitar la pérdida de datos en la base de datos abierta). Dado que la base de datos es una nueva copia, las copias de seguridad realizadas antes de RESETLOGS no son fácilmente utilizables.

9.3.7 Cierre de la base de datos alterna

  1. Utilice el comando siguiente para cerrar la base de datos:

    RMAN> SHUTDOWN NORMAL;

    De esta forma se desmonta la base de datos y se detiene la ejecución de la copia de Oracle.

9.3.8 Copia de seguridad y recuperación gestionadas por el usuario

  1. En todos los servidores de ZENworks 7.3 Linux Management configurados con la base de datos de origen, detenga todos los servicios de ZENworks mediante el siguiente comando:

    zlm-config --stop

  2. En la base de datos de origen que tiene una instancia de base de datos en ejecución, realice una copia de seguridad lógica del esquema de objetos de la base de datos de ZENworks. Para ello, ejecute las utilidades de exportación como usuario de la base de datos de Oracle del modo descrito a continuación:

    exp zenadmin/novell@ORCL FILE=NOVELL-ZENWORKS-ORAZLM.DMP LOG=NOVELL-ZENWORKS-ORAZLM.LOG OWNER=ZENADMIN

    Donde ORCL es el identificador de sistema de Oracle por defecto y novell es la contraseña por defecto para el usuario zenadmin.

    Esta acción crea el archivo de copia de seguridad NOVELL-ZENWORKS-ORAZLM.DMP y el archivo de registro ZENWORKS-ORAZLM.LOG en el servidor de la base de datos de Oracle.

  3. Para importar los datos y objetos, ejecute la utilidad de importación como usuario de la base de datos de Oracle del modo descrito a continuación:

    imp zenadmin/novell@ORCL FILE=NOVELL-ZENWORKS-ORAZLM.DMP LOG=NOVELL-ZENWORKS-ORAZLM.LOG IGNORE=Y FROMUSER=ZENADMIN TOUSER=ZENADMIN

    Donde ORCL es el identificador de sistema de Oracle por defecto y novell es la contraseña por defecto para el usuario zenadmin.

    IMPORTANTE:antes de ejecutar la utilidad de importación, realice una copia de seguridad fiable del directorio /opt/oracle/novell/zenworks/database en la base de datos de destino.

    Omita las advertencias de compilación que puedan producirse durante el proceso de creación de objetos.

  4. En la base de datos de destino, entre a la sesión como el usuario sysdba y detenga e inicie la instancia de Oracle empleando los siguientes comandos en el indicador de SQL:

    shutdown immediate

    startup

  5. En el servidor de la base de datos de destino, detenga e inicie el servicio de escucha empleando los siguientes comandos en el indicador de SQL:

    lsnrctl stop

    lsnrctl start

  6. En el servidor de ZENworks 7.3 Linux Management, inicie todos los servicios de ZENworks mediante el siguiente comando:

    zlm-config --start

  7. Sincronice el almacén de datos con el almacén de objetos. Para obtener más información acerca de cómo sincronizar el almacén de datos con el almacén de objetos, consulte la Sección 9.4, Sincronización del almacén de objetos y el almacén de datos.