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:
El directorio de configuración
El directorio de datos
La base de datos
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.