Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
Code Block
apt-get install -qq -y pigz rdiff-backup

Realizar copia de seguridad

Paso 0: copia inicial

Una vez instalado el sistema, se recomienda hacer una copia en el instante 0 para poder restaurar ese punto de desarrollo del software. Se recomienda repetir esta copia cuando haya cambios de software y/o de configuración. Ubicados en la ruta donde almacenemos los backups, ejecutar:

 

Code Block
tar cfvz athentoecm.tar.gz <path_to_athentoecm_base_dir> --exclude "data"

Paso 1: copia de datos

Incrementalmente y comenzando tras la copia inicial, se han de salvar los datos del sistema que, como hemos visto, requieren 2 almacenados:

...

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: 

Code Block
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 , en el caso de PostgreSQL(por defecto, postgresql y mondodb):

Code Block
pg_dump -Ft <database_name_here> > athentoecm.database.tar

Repositorio de binarios: es el lugar donde athentoecm almacena los binarios adjuntos a documentos. Los valores de source y destination son parte de la configuración de la instancia.

Code Block
rsync -avzh <source> <destination>

...

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:

Code Block
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. Para ello:

Restaurar el directorio de binarios. Para ello, se recomienda restaurar mediante copia el directorio de backup (destination en el paso anterior) sobre una nueva ruta y configurar athentoecm para apuntar a la nueva ruta.

Code Block
cp -r destination source

Restautar la base de datos. También para este caso se recomienda crear una nueva base de datos y restaurar sobre ella la última copia de seguridad disponible.

Code Block
su postgres <<'EOF'
psql -c "CREATE DATABASE athentoecm_1 WITH ENCODING 'UTF8';"
pg_restore -Ft athentoecm.database.tar
EOF

...

Supongamos que queremos restaurar el estado del sistema de 10 días atrás.

  • Restaurar los datos binarios y de base de datos.

Code Block
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.
Code Block
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