Restaurar una copia de seguridad

Resumen

Esta página explica cómo restaurar una instalación de APS Conecta Gestión desde una copia de seguridad: las carpetas, la eliminación y recreación de la base de datos, la importación del volcado según el motor y la sincronización con los clientes tras recuperar los datos. Está dirigida a quienes administran el servidor.

Fuente: documentación de Nextcloud, «admin_manual/maintenance/restore», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.

Para restaurar una instalación de APS Conecta Gestión hay cuatro elementos principales que restaurar:

  1. El directorio de configuración

  2. El directorio de datos

  3. La base de datos

  4. El directorio del tema

Nota

Se necesitan la base de datos, el directorio de datos y los archivos de configuración. La restauración no puede completarse sin los tres.

Restaurar las carpetas

Nota

Esta guía supone que la copia de seguridad anterior se llama «nextcloud-dirbkp»

Basta con copiar la carpeta de configuración y la de datos (o incluso toda la instalación de APS Conecta Gestión y la carpeta de datos) al entorno de APS Conecta Gestión. Puede usarse este comando:

rsync -Aax nextcloud-dirbkp/ nextcloud/

Restaurar la base de datos

Advertencia

Antes de restaurar una copia de seguridad hay que asegurarse de eliminar todas las tablas existentes de la base de datos.

La forma más sencilla de hacerlo es eliminar la base de datos y volver a crearla. SQLite lo hace automáticamente.

MariaDB

MariaDB es el motor de base de datos recomendado. Para restaurar MariaDB con el cliente mariadb:

mariadb -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mariadb -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud"

Si se usa UTF8 con compatibilidad multibyte (p. ej., para emojis en los nombres de archivo), usar:

mariadb -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mariadb -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"

MySQL

Para restaurar MySQL:

mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud"

Si se usa UTF8 con compatibilidad multibyte (p. ej., para emojis en los nombres de archivo), usar:

mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"

PostgreSQL

PGPASSWORD="password" psql -h [server] -U [username] -d template1 -c "DROP DATABASE \"nextcloud\";"
PGPASSWORD="password" psql -h [server] -U [username] -d template1 -c "CREATE DATABASE \"nextcloud\";"

Restauración

Nota

Esta guía supone que la copia de seguridad anterior se llama «nextcloud-sqlbkp.bak»

MariaDB

MariaDB es el motor de base de datos recomendado. Para restaurar MariaDB con el cliente mariadb:

mariadb -h [server] -u [username] -p[password] [db_name] < nextcloud-sqlbkp.bak

MySQL

Para restaurar MySQL:

mysql -h [server] -u [username] -p[password] [db_name] < nextcloud-sqlbkp.bak

SQLite

rm data/owncloud.db
sqlite3 data/owncloud.db < nextcloud-sqlbkp.bak

PostgreSQL

PGPASSWORD="password" psql -h [server] -U [username] -d nextcloud -f nextcloud-sqlbkp.bak

Sincronizar con los clientes tras recuperar los datos

De forma predeterminada, el servidor APS Conecta Gestión se considera la fuente autorizada de los datos. Si los datos del servidor y los del cliente difieren, los clientes obtendrán de forma predeterminada los datos del servidor.

Si la copia de seguridad recuperada está desactualizada, el estado de los clientes puede estar más actualizado que el del servidor. En este caso, asegurarse también de ejecutar después el comando maintenance:data-fingerprint. Este comando cambia la lógica del algoritmo de sincronización para intentar recuperar tantos datos como sea posible. Por tanto, los archivos que faltan en el servidor se recuperan de los clientes y, en caso de contenido distinto, se pregunta a los usuarios.

Esto también puede ayudar en casos poco frecuentes en que la base de datos es más reciente que el directorio de datos. El servidor restaurará los datos desde los clientes y conservará los elementos compartidos. Hasta entonces, los archivos serían visibles pero no accesibles. Después se necesita un files:scan para actualizar la base de datos.

Nota

El uso de maintenance:data-fingerprint puede provocar diálogos de conflicto y dificultades para eliminar archivos en el cliente. Por eso solo se recomienda para evitar la pérdida de datos si la copia de seguridad estaba desactualizada. Este comando no requiere que el servidor esté en modo de mantenimiento.

Si se ejecutan varios servidores de aplicaciones, hay que asegurarse de que los archivos de configuración estén sincronizados entre ellos para que el data-fingerprint actualizado se aplique en todas las instancias.