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.
Índice
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_dumpallcomo el usuario postgres, todas las bases en un archivo, en/var/backups/arkame/postgres. - MySQL y MariaDB:
mariadb-dumpomysqldump, el que haya, con--single-transaction, en/var/backups/arkame/mysql. - MongoDB:
mongodumpcomprimido, 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
- En Planes → Nuevo plan, elige el servidor de Zimbra y, en Comandos antes y después de la copia, la receta Zimbra.
- 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).
- 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
- 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. - 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.
--settingsvuelve 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:
--tolleva 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.brPara ver las cuentas que la copia protege en este servidor:
sudo arkame-agent zimbra listEn 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 →