Saltar al contenido

← Documentación

Bases de datos y aplicaciones

Un archivo de base de datos abierto no es una copia: en medio de una escritura, la copia sale inconsistente. El plan ejecuta el volcado antes y se lleva el archivo del volcado. En Zimbra, el propio agente exporta cada cuenta.

PostgreSQL, MySQL, MariaDB y MongoDB

En Planes → Nuevo plan, en un servidor Linux, la sección Comandos antes y después de la copia trae recetas listas. Elige la base y haz clic en Rellenar los comandos: el panel rellena el comando que genera el volcado antes de la copia, el que lo borra después, y agrega la carpeta del volcado al plan. Revisa lo escrito antes de guardar.

  • PostgreSQL: pg_dumpall como el usuario postgres, todas las bases en un archivo, en /var/backups/arkame/postgres.
  • MySQL y MariaDB: mariadb-dump o mysqldump, el que haya, con --single-transaction, en /var/backups/arkame/mysql.
  • MongoDB: mongodump comprimido, en /var/backups/arkame/mongodb.

Las recetas no ponen contraseña en el comando. Si tu base pide una, ponla en el archivo de credenciales de la propia base (.pgpass, /root/.my.cnf), con permiso 600. Guardar comandos exige ser propietario o administrador de la organización y el código de la verificación en dos pasos, y no vale para el agente en Docker.

SQL Server (Windows)

Con el agente Arkame 0.5.0 o más nuevo, la receta de SQL Server hace una copia de solo copia (COPY_ONLY), que no interfiere con las copias del propio SQL Server, en C:\ProgramData\Arkame\dumps\sqlserver. Pide el nombre de la base y, si la hay, de la instancia (SQLEXPRESS).

El agente se ejecuta como Sistema Local: en SQL Server, da al inicio de sesión NT AUTHORITY\SYSTEM el rol db_backupoperator en la base. Necesita sqlcmd en el servidor.

Zimbra

Con el agente Arkame 0.5.0 o más nuevo en un servidor con Zimbra, la receta Zimbra aparece en el plan. El agente habla con la API del propio Zimbra, en localhost, y exporta cuenta por cuenta, sin zmmailbox y sin detener el servicio.

Lo que va a la copia, por cuenta

  • El correo de todas las carpetas, Papelera y Spam incluidas, en un archivo por mes: el mes cerrado no cambia y no se sube de nuevo.
  • Los contactos, la agenda, las tareas y los documentos.
  • La configuración de la cuenta (nombre, cuota, preferencias, alias, clase de servicio), los filtros de entrada y de salida y las firmas.
  • La lista de cuentas protegidas, para que el panel muestre cuáles están en la copia, cuántos meses tiene cada una y cuáles fallaron.

Lo que no va

  • La contraseña: la API de Zimbra no la entrega, y una copia con el hash de la contraseña de todos sería un lugar más por donde se filtre. La cuenta recreada recibe una contraseña aleatoria; define otra en la consola de Zimbra.
  • El asunto y el remitente de los mensajes no llegan al panel: solo ve los nombres de las cuentas, los meses y los tamaños.

Cómo configurarlo

  1. En Planes → Nuevo plan, elige el servidor de Zimbra y, en Comandos antes y después de la copia, la receta Zimbra.
  2. Elige todo el correo o el de los últimos 1, 2, 3, 5 o 10 años, y las cuentas que quedan fuera (las del sistema ya quedan).
  3. Haz clic en Rellenar los comandos, revisa y guarda. El plan se lleva la carpeta /var/backups/arkame/zimbra.

La primera exportación de un servidor grande puede tardar algunas sesiones: el comando se detiene antes del plazo (hasta 2 horas) y la sesión siguiente sigue donde quedó, empezando por las cuentas que llevan más tiempo sin copia. De vez en cuando el agente revisa un mes ya cerrado y lo reenvía si cambió: un mensaje antiguo migrado al buzón entra en la copia.

En la pantalla del plan, la tarjeta Cuentas de Zimbra muestra cada cuenta de la última copia, los meses, el tamaño, y las que fallaron o salieron de la copia.

Probado en Zimbra 8.8.15, 9 y 10.1. La carpeta guarda una copia de los buzones en el disco del servidor: revisa el espacio libre antes de activarlo.

Más de un servidor de buzones: instala el agente y crea el plan en cada servidor de buzones. Cada agente exporta solo las cuentas cuyo buzón está en él (el atributo zimbraMailHost); las otras aparecen en el resumen como omitidas, con el servidor donde están, y no como falla. Para restaurar, usa el servidor donde está hoy el buzón de la cuenta: una cuenta borrada puede ser recreada por Zimbra en otro servidor de buzones, y entonces la importación de los mensajes no está garantizada. Este montaje todavía no se probó en una instalación real; habla con soporte antes de activarlo.

Restaurar una cuenta de Zimbra

  1. En el panel, en Restaurar, restaura la carpeta contas/ de la cuenta (su nombre es la dirección) en una carpeta del servidor, por ejemplo /restauracao.
  2. En el servidor, ejecuta:
sudo arkame-agent zimbra restore --from /restauracao/contas/maria@empresa.com.br
  • Una cuenta que existe recibe solo el correo, los contactos y la agenda. --settings vuelve a aplicar también la configuración, los filtros y las firmas (la contraseña nunca).
  • Una cuenta que ya no existe se recrea con la configuración, la clase de servicio, los alias, los filtros y las firmas de antes, y una contraseña aleatoria.
  • Lo que envía correo hacia fuera (reenvío, respuesta automática, filtro que redirige) solo vuelve con --with-forwarding: restaurar no puede empezar a mandar el buzón de alguien a otro lugar sin que lo pidas.
  • En otra cuenta: --to lleva el correo a una cuenta que ya existe, sin tocar su configuración.
sudo arkame-agent zimbra restore --from /restauracao/contas/maria@empresa.com.br --settings
sudo arkame-agent zimbra restore --from /restauracao/contas/maria@empresa.com.br --to arquivo@empresa.com.br

Para ver las cuentas que la copia protege en este servidor:

sudo arkame-agent zimbra list

En la nube o en una copia local

El volcado y la exportación de Zimbra van al almacenamiento del plan como cualquier otra carpeta: tu bucket en la nube. Para tener también una copia en el propio servidor, la restauración más rápida, crea un segundo plan con Copiar también a otro almacenamiento y elige la copia local (agente 0.5.0 o más nuevo).

¿Listo para proteger la base de datos?

Las recetas están en el plan del servidor. Guardar comandos exige ser propietario o administrador y el código de la verificación en dos pasos.

Crear un plan →