> Manuales > Manual Oracle Application Express

Partiendo de la base de que en informática todo puede fallar, las copias de seguridad son un aspecto muy importante a tener en cuenta, ya que una copia de seguridad nos puede sacar de más de un apuro en caso de fallo o avería.

Disponer de un buen respaldo de datos es fundamental, ya que nos ofrece ventajas que nos pueden ahorrar muchos problemas y quebraderos de cabeza.

Una buena copia de seguridad debe proteger sobre cualquier eventualidad, como por ejemplo:

Para que la copia de seguridad solucione cualquier tipo de problemas, es necesario realizar copias periódicas. También es muy necesario guardar el historial de copias y los archivos copiados en una localización distinta a la de los datos originales.

Para asegurarse que se copia toda la información, es importante definir bien al principio lo que se va a copiar, al igual que hacer revisiones periódicas de la información copiada.

Obviamente no sirve de nada tener una copia de seguridad que no se puede restaurar. Por ello, una buena práctica y algo muy recomendable, es realizar un simulacro, restaurando la copia de seguridad de forma periódica.

La base de datos Oracle proporciona una serie de comandos muy útiles que facilitan el proceso de copias de seguridad. Para la ejecución de estos comandos es necesario disponer de los permisos necesarios.

Se parte desde el punto que se tiene la base de datos Oracle 11.2G XE y Oracle Apex instalado sobre un servidor Centos. Ver el artículo Instalación de Oracle Apex sobre un Servidor Linux.

Lo primero que se debe hacer es comprobar que tenemos instalado Java en nuestro sistema, para ello, desde una consola del sistema, se ejecuta:

# java –jar

Lo recomendable es estar siempre actualizado a la última versión de Java.

Posteriormente se establece la variable de entorno ejecutando:

# export CLASSPATH=.:${ORACLE_HOME}/jdbc/lib/ojdbc6.jar

Creación de un script de Bash para automatización del proceso de copias de seguridad.

Para automatizar el proceso de copia de seguridad se va a crear un script de Bash que permite la ejecución de los comandos para copia de seguridad de aplicaciones y base de datos.

Los archivos de copia de seguridad se almacenarán en un directorio denominado "backup", que se va a ubicar directamente en la raíz del sistema.

#  mkdir /backup
# chmod 777 /backup

Se le asignan todos los permisos a la carpeta creada, ya que en el script de copia de seguridad se ejecutarán comandos con cambio de usuario y es necesario que el usuario Oracle pueda acceder a la carpeta "backup".

A continuación se crean dos ficheros de log.

#  touch /backup/log-aplicacion.log
#  touch /backup/log-backup.log
# chmod 777 /backup/log-backup.log

El usuario Oracle debe escribir en el fichero log-backup.log, por lo que es necesario asignarle los permisos necesarios.

Por último, se crea el script y se le asignan permisos de ejecución.

#  touch /backup/backup.sh
#  chmod +x /backup/backup.sh

El contenido del script de "backup" es el mostrado a continuación:

#!/bin/bash
export CLASSPATH=.:${ORACLE_HOME}/jdbc/lib/ojdbc6.jar
cd /u01/app/oracle/product/11.2.0/xe/apex/utilities
## ejecuta backup de la App 100, configurar usuario y clave  del Workspace donde está la app
java oracle/apex/APEXExport -db localhost:1521:xe -user usuario -password clave 
-applicationid 100 >> /backup/log-aplicacion.log
##  copia el archivo generado de la aplicación a la carpeta backup
cp /u01/app/oracle/product/11.2.0/xe/apex/utilities/f*.sql /backup/
## Backup completo de la BD, configurar clave de usuario system de la BD Oracle
su - oracle -c 'exp system/system file=/backup/backup.dmp log=/backup/log-backup.log  OWNER=GEXTIC'
## Se crea una carpeta con la fecha actual y se copian los ficheros dentro de ella
carpeta=$(date +"%d_%m_%y")
mkdir /backup/$carpeta
cp /backup/f*.sql  /backup/$carpeta
cp /backup/backup.dmp /backup/$carpeta

Para finalizar, se crea una tarea programada dentro de "Crontab" para que el script se ejecute diariamente de forma automática. La programación se establece a las 23 horas, 0 minutos, por ser una hora donde usualmente no suele haber actividad.

La ejecución del script "backup.sh" genera copias de cada aplicación (en este caso f100) y copia de la base de datos. Posteriormente, crea una carpeta con la fecha de ejecución y guarda los ficheros creados en esa ejecución dentro de esta carpeta. Con esto se consigue tener una copia completa cada día de aplicaciones y base de datos.

Es muy recomendable disponer de un buen historial de copias de seguridad, cuantas más copias mejor.

Conclusión:
No se pueden predecir las averías o incidentes, pero sí estar preparados para cuando ocurran.

Manual