
La semana pasada estábamos realizando una prueba de carga en uno de nuestro servidores internos de test de Alfresco para evaluar el comportamiento del sistema con un millón de documentos en una instalación Community 5.1.
No obstante, no tuvimos en cuenta que nuestro CentOS 6 estaba configurado para almacenar únicamente 1 millón de inodos, por lo que a mitad de carga nos quedamos sin espacio.
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/vzfs 1000000 997947 2053 100% / none 1572864 154 1572710 1% /dev
Dado que era un servidor de prueba, pensamos que la manera más rápida de devolverlo a la vida era restaurar la copia de seguridad semanal que habíamos programado en nuestro /etc/cron.weekly
Comenzamos generando un poco de espacio en el sistema, para poder trabajar sin problemas, eliminando del sistema de ficheros el repositorio de Alfresco.
$ service alfresco stop $ cd /opt/alfresco $ rm -rf alf_data
A continuación, descomprimimos la copia de seguridad para extraer el DUMP de PostgreSQL.
$ cd /opt/alfresco-backup $ cp alfresco-backup-03_14_2016.tar.gz /tmp $ cd /tmp $ tar xvf alfresco-backup-03_14_2016.tar.gz $ cd tmp/03_14_2016 $ ls alf_data.tar.gz pgdump_alfresco.sql
Después eliminamos la base de datos actual y restauramos el DUMP.
$ su - postgres postgres=# drop database alfresco; DROP DATABASE postgres=# CREATE DATABASE alfresco postgres-# WITH OWNER = postgres postgres-# ENCODING = 'UTF8' postgres-# TABLESPACE = pg_default postgres-# LC_COLLATE = 'es_ES.utf8' postgres-# LC_CTYPE = 'es_ES.utf8' postgres-# CONNECTION LIMIT = -1 postgres-# TEMPLATE template0; CREATE DATABASE postgres=# GRANT ALL ON DATABASE alfresco TO public; GRANT postgres=# GRANT ALL ON DATABASE alfresco TO postgres; GRANT postgres=# GRANT ALL ON DATABASE alfresco TO alfresco; GRANT postgres=# \q $ psql alfresco < /tmp/tmp/03_14_2016/pgdump_alfresco.sql $ exit
Una vez que la base de datos se encuentra operativa, restauramos el contenido del sistema de ficheros y arrancamos Alfresco.
$ cd /tmp/tmp/03_14_2016 $ tar xvf alf_data.tar.gz $ cd opt/alfresco $ mv alf_data /opt/alfresco $ service alfresco start
Tras verificar que el sistema funciona correctamente, podemos eliminar los recursos temporales y comprobar el uso de recursos tras la actuación.
$ cd /tmp $ rm -rf tmp $ rm -rf alfresco-backup-03_14_2016.tar.gz $ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/vzfs 1000000 135588 864412 14% / none 1572864 154 1572710 1% /dev
Si los backups de Alfresco se realizan correctamente, almacenando junto el DUMP de base de datos y el sistema de ficheros del repositorio, bastan 10 minutos para devolver el sistema a la vida.
El método descrito es aplicable a entornos de desarrollo, ya que hemos omitido algunas precauciones que serían esenciales para la realización de esta operación en entornos productivos. No obstante, los pasos de esta operativa son en esencia equivalentes en ambos escenarios.