Backup: Copia de seguridad de Athento ECM

AthentoECM permite realizar copias de seguridad mientras el sistema continĆŗa funcionando. Para realizar las copias es necesario tener en cuenta algunos aspectos:

  • Hora de la copia: escoger una hora en la que el sistema registre poca actividad con el fin de evitar pĆ©rdidas de informaciĆ³n parciales.
  • Tipo de copia de seguridad: puede ser completa o incremental. Normalmente se realiza una completa y a partir de ese momento, incrementales cada dĆ­a, semana o mes.
  • Software a copiar: decidir quĆ© elementos de software se desean almacenar:
    • Software y configuraciĆ³n: son los elementos que convierten al sistema en la herramienta que es. No son elementos que cambien con frecuencia (quizĆ” la configuraciĆ³n pueda cambiar), pero conviene disponer de una copia del momento de instalaciĆ³n y de todos los cambios de configuraciĆ³n o software que se realicen.
    • Datos: los datos que procesa, crea, modifica y elimina el sistema en su funcionamiento. En AthentoECM, los datos se almacenan en 2 almacenes, base de datos y sistema de ficheros.
  • UbicaciĆ³n de las copias. Es recomendable almacenar las copias de seguridad en lugares diferentes para evitar accidentes y pĆ©rdida de informaciĆ³n.

Para poder restaurar un sistema completamente, es necesario disponer de copias de seguridad del software, la configuraciĆ³n y los datos.

Instalar software requerido

Para realizar copias de seguridad de una instalaciĆ³n standard de AthentoECM es necesario instalar en el servidor los siguientes paquetes:

  • rdiff-backup
  • pigz
apt-get install -qq -y pigz rdiff-backup

Realizar copia de seguridad

Copias semanales

Se recomienda almacenar copia semanalmente de los elementos que conforman el sistema (software + configuraciĆ³n) ya que no son elementos que cambien a diario:Ā 

rdiff-backup --print-statistics /etc /mnt/backupstorage/incremental/etc

rdiff-backup --print-statistics /var/lib/nuxeo/server/ /mnt/backupstorage/incremental/var/lib/nuxeo/server

Copias diarias

Se recomienda almacenar copia diaria incremental de los datos con los que trabaja el sistema. Esto es: base de datos + repositorio.

Volcado de las base de datos mediante la herramienta adecuada para ello (por defecto, postgresql y mondodb):

pg_dump -p 5433 -Z0 -Fc nuxeo | pigz --rsyncable > /mnt/backupstorage/db/nuxeo.pigz.dump.gz

mongodump -h localhost --gzip --db nuxeo --archive=/mnt/backupstorage/db/mongodb.nuxeo.archive.gz

Esto genera ficheros que se sobreescriben diariamente. Antes de ser sobreescritos, se copian incrementalmente a la ubicaciĆ³n definida para ello.

Copia incremental de datos:

rdiff-backup --print-statistics /mnt/backupstorage/db/ /mnt/backupstorage/incremental/db

rdiff-backup --print-statistics /var/lib/nuxeo/repo/ /mnt/backupstorage/incremental/var/lib/nuxeo/repo

ADVERTENCIA: la copia del repositorio de binarios puede ser pesada y ocupar mucho espacio dependiendo del volumen de datos de la instancia. Es recomendable asegurarse de que va a caber en el destino y lanzarla en momentos de poca carga del sistema.

Restaurar la copia de seguridad

Es importante tener en cuenta algunos puntos:

  • La restauraciĆ³n debe hacerse con AthentoECM parado.
  • Es necesario cambiar de nombre o eliminar (previo backup) las bases de datos de postgresql y mongodb ANTES de comenzar el proceso y con AthentoECM parado.
  • Es necesario asegurar que se dispone de espacio suficiente en el servidor para albergar los archivos restaurados.
  • Si alguno de los servidores de base de datos (mongodb o postrgresql) se ha vuelto inestable, estabilizarlo antes de continuar.

RestauraciĆ³n de datos

Normalmente la restauraciĆ³n de datos es suficiente. Supongamos que queremos restaurar el estado del sistema de 10 dĆ­as atrĆ”s.

  • Restaurar los datos binarios y de base de datos.

rdiff-backup -r 10D /mnt/backupstorage/incremental/var/lib/nuxeo/repo /tmp/repo
rdiff-backup -r 10D /mnt/backupstorage/incremental/db /tmp/db

ADVERTENCIA: Asegurar que la restauraciĆ³n se realiza sobre un directorio con capacidad para albergar el volumen de datos del repositorio. En el ejemplo se utiliza /tmp.

  • Cargar las bases de datos con los datos restaurados.
su - postgres -c "gzip -d -c /tmp/db/nuxeo.pgiz.dump.gz | pg_restore -p 5433 --disable-triggers  --clean -d nuxeo -v
mongorestore --gzip --archive=/tmp/db/mongodb.nuxeo.archive.gz --db nuxeo