Backup y Restauración de OpenCms

Thu Jun 05 13:28:17 CEST 2014       Sergio Raposo Vargas       Administración, OpenCms

En un proyecto OpenCms, al igual que cualquier otro proyecto informático, debemos tener muy presente siempre la necesidad de realizar copias de seguridad de nuestro trabajo para, en caso de pérdida de información o de cualquier otro problema, ser capaz de restaurar nuestro sistema en el menor tiempo posible.

Esto que es una premisa fundamental en muchos casos se delega a un segundo plano, y solo nos acordamos de las copias cuando ya es demasiado tarde. Por ello intentaré en este artículo describir los distintos caminos que disponemos en OpenCms para realizar la tarea de backup y recuperación.

Backup BBDD, Tomcat y Apache

Al final de todo OpenCms no es más que una aplicación java ejecutándose sobre un servidor de aplicaciones, normalmente Tomcat, y que tiene una BBDD donde almacena toda la información necesaria. A partir de esta estructura, solamente necesitamos realizar una copia de seguridad tanto de la BBDD como de la carpeta opencms dentro del Tomcat.

Para la copia de la BBDD, dependerá de cual usemos y de las herramientas que disponga. Para MySql usaremos la herramienta mysqldump con el que realizaremos una exportación de todo el esquema de BBDD a un fichero comprimido. La sentencia a utilizar es:

mysqldump -v --flush-logs -u USERNAME --password=PASSWORD DATABASE_NAME | bzip2 >db_`date +%Y-%0m-%0d_%0H#%0M#%0S`.sql.bz2

Según nuestra política de copias de seguridad podremos hacer un script que se ejecute de forma periódica cada día, o cada semana o cada mes de forma que vayamos guardando (preferiblemente fuera del mismo servidor) las copias de seguridad realizadas.

En el caso del Tomcat, podemos realizar una copia total de la carpeta: $TOMCATHOME/webapps/opencms, de forma que usando algún sistema de compresión podamos comprimir la carpeta completa, y al igual que la BBDD mover dicho fichero a un sistema seguro dentro de nuestra red.

Para la configuración de Apache, podemos realizar también una copia de la configuración de nuestro Virtual Host. A diferencia que los otros dos casos, el virtual host no se modifica normalmente, por lo que no es necesario realizar copias de seguridad periódicas por lo que solo debemos guardar la última versión de la configuración que podemos hacer perfectamente a mano.

Backup OpenCms

OpenCms dispones de un sistema de backup propio con el que podemos realizar exportaciones tanto de nuestros módulos como de nuestros contenidos.

Para ello debemos guardar siempre una copia de seguridad de nuestros módulos, por tanto, cada vez que realicemos un cambio en nuestros templates, css, js, formatters, etc. es buena práctica realizar una exportación del módulo y guardarla en un lugar seguro para su futura recuperación. Para exportar un módulo debemos ir a la Vista de Administración / Gestión de módulos, una vez en esa pantalla, seleccionar nuestro módulo y usar la herramienta de exportar módulo. Una vez exportado el módulo estará en la carpeta de nuestro servidor: $OPENCMS_HOME/WEB-INF/package/modules/

Por otro lado, es importante que tengamos exportados nuestros contenidos, que es lo mismo que exportar todo nuestro Site. Para ello en OpenCms disponemos también de una herramienta en la Vista de Administración llamada Gestión de Base de Datos desde donde podemos realizar una exportación. Para ello seguiremos los siguientes pasos:

  1. Nos colocamos en el site que queremos exportar (select superior)
  2. Nos vamos a Administración / Gestión de Base de Datos / Exportar base de datos
  3. Indicamos el nombre del fichero .zip que queremos generar. Es recomendable indicar en el mismo fichero la fecha en la que se realiza la exportación
  4. Configurar el tipo de exportación que deseamos, por norma general las opciones por defecto son las más aconsejables.
  5. En el selector de recursos indicamos el site entero “/”
  6. Pulsamos en el botón Ok

Una vez que se ha exportado el site, el fichero lo tendremos en el servidor en: $OPENCMS_HOME/WEB-INF/package/

OpenCms dispone de una herramienta para crear tareas programadas que se ejecuten cada cierto tiempo. Sería una buena práctica añadir una tarea programada que realice una exportación de nuestros contenidos y así no tener que hacerlo a mano. Esto lo comentaremos en otro momento.

Restauración BBDD y Tomcat

La segunda parte del proceso de generación de copias de seguridad, y a la que esperamos no llegar nunca es la recuperación del sistema tras un fallo, ya sea porque hemos perdido el disco duro, o debido a un ataque informático o a un error humano que ha borrado información importante. En el caso de disponer de un backup de BBDD y Tomcat, debemos realizar los siguientes pasos:

  1. Instalar todo el sistema de nuevo si es necesario: BBDD, Java, Tomcat, etc.
  2. Crear schema de BBDD con el mismo nombre del anterior y con el mismo usuario que teníamos anteriormente
  3. Restaurar la exportación más reciente. Para ello podemos usar de nuevo la aplicación de mysqldump.
  4. Descomprimir dentro de la carpeta webapps del tomcat la versión más actual disponible.
  5. En el caso que las contraseñas de BBDD no sean las mismas debemos actualizar la configuración de OpenCms.

Comando mysqldump:

cat BACKUP-FILE.sql.bz2 | bunzip2 | mysql -u USERNAME --password=PASSWORD DATABASE_NAME

Restauración OpenCms

Como hemos visto anteriormente, también podemos realizar una exportación de módulos y site desde OpenCms. En este caso, OpenCms dispone de herramientas para importar esas exportaciones que hemos hecho previamente. En concreto dispone de dos herramientas:

  • Importador de módulos
  • Importador de BBDD

En este caso, si hemos perdido todo el sistema deberíamos empezar por instalarlo todo desde cero, incluso un OpenCms de la misma versión de la anterior, o al menos una compatible con los desarrollos realizados.

Los pasos a seguir son:

  1. Instalar OpenCms
  2. Instalar módulos necesarios
  3. Crear sites
  4. Reiniciar el servidor
  5. Situarnos en el site recién creado
  6. Importar fichero .zip exportando más recientemente
  7. Publicarlo todo

Con esto habremos conseguido volver a la última versión guardada.

 OpenCms, Backup, Restauracion, Copias de seguridad