Zx Backup Mysql Db Corruption/es

From ZeXtras Suite Wiki

Jump to: navigation, search
Idioma: English  • español • português
ZxBackup logo box.png
Available since version: 0.87
Latest Version: 2.14.0
Released on: February 11th, 2019
Compatibility List
Admin Guide
FAQ
Troubleshooting
Backup Initialization
ZspBackup logo box.png

Introducción

Esta guía paso a paso contiene información útil para restaurar información de la base de datos MariaDB corrupta. Se aplica tanto a infraestructuras compuestas por un servidor o por varios (multi-store), que tengan un solo servidor MariaDB.


Pérdida de la base de datos y volúmenes Zimbra

Ya que la información de los volúmenes está almacenada en la base de datos, la cual se ha perdido, los mismos no tendrán uso. Asegúrese de contar con suficiente espacio antes de continuar. Si no es así, borre o mueva los volúmenes hacia otro dispositivo de almacenamiento.

1º paso: reinicializar la base de datos

Este primer paso para recuperar la base de datos a un estado consistente requiere reinicializar la propia base de datos a su estado inicial.

Para ello haga lo siguiente:

  • Detenga todos los servicios en ejecución con el comando zmcontrol stop como usuario zimbra.
  • Renombre *o* vacíe la carpeta de la base de datos actual - por defecto /opt/zimbra/db/data/
    • Renombre: mv /opt/zimbra/db/data/ /opt/zimbra/db/data_old/
    • Vaciar: rm -rf /opt/zimbra/db/data/*
  • Después de vaciar la base de datos reinicialícela ejecutando como usuario zimbra: /opt/zimbra/libexec/zmmyinit
* Creating required directories
* Generating mysql config /opt/zimbra/conf/my.cnf
* Creating database in /opt/zimbra/db/data
* Starting mysql server
* Loading schema /opt/zimbra/db/db.sql
* Loading version from /opt/zimbra/db/versions-init.sql
* Loading version from /opt/zimbra/db/backup-version-init.sql
* Setting random passwd for mysql root user in zimbra localconfig
* Setting random passwd for mysql zimbra user in zimbra localconfig
* Changing mysql root user password
* Changing mysql zimbra user password
* Changed zimbra mysql user password

Las contraseñas y los IDs de las cuentas de correo no serán cambiados.

  • Después de reinicializar la base de datos inicie todos los servicios ejecutando el siguiente comando como usuario zimbra zmcontrol start

Si todo es correcto, después que los servicios sean inicializados deberían aparecer los grupos de buzones que han sido recreados:

ls -la /opt/zimbra/db/data/
total 1099868
drwxr-x--- 16 zimbra zimbra      4096 Aug 28 12:09 .
drwxrwxr-x  3 zimbra zimbra      4096 Aug 25 18:03 ..
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 chat
-rw-rw----  1 zimbra zimbra 524288000 Aug 28 12:11 ib_logfile0
-rw-rw----  1 zimbra zimbra 524288000 Aug 28 12:03 ib_logfile1
-rw-rw----  1 zimbra zimbra  77594624 Aug 28 12:11 ibdata1
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup1
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup2
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup3
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup4
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup5
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup6
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup7
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup8
drwx------  2 zimbra zimbra      4096 Aug 28 12:09 mboxgroup9
-rw-rw----  1 zimbra zimbra         0 Aug 28 12:03 multi-master.info
drwx------  2 zimbra zimbra      4096 Aug 28 12:03 mysql
drwx------  2 zimbra zimbra      4096 Aug 28 12:03 performance_schema
-rw-rw----  1 zimbra zimbra     24576 Aug 28 12:03 tc.log
drwx------  2 zimbra zimbra      4096 Aug 28 12:03 test
drwx------  2 zimbra zimbra      4096 Aug 28 12:03 zimbra

2º paso: Restauración de los datos

A este punto la base de datos fue levantada y está funcionando, pero se encuentra vacía. Se puede apreciar esto mirando el contenido de cualquier cuenta con zmprov:

zmmailbox -z -m rick@domain.local gaf
        Id  View      Unread   Msg Count  Path
----------  ----  ----------  ----------  ----------
         1  unkn           0           0  /
        16  docu           0           0  /Briefcase
        10  appo           0           0  /Calendar
        14  mess           0           0  /Chats
         7  cont           0           0  /Contacts
         6  mess           0           0  /Drafts
        13  cont           0           0  /Emailed Contacts
         2  mess           0           0  /Inbox
         4  mess           0           0  /Junk
         5  mess           0           0  /Sent
        15  task           0           0  /Tasks
         3  unkn           0           0  /Trash

Para restaurar la información se usará el comando doExternalRestore de Zextras Backup.

  • Para comenzar con la restauración solo inicie un External Restore ejecutando zxsuite backup doExternalRestore [/ruta del backup] como usuario zimbra.
    • Ej. si la ruta del backup fuese /opt/zimbra/backup/ entonces ejecute zxsuite backup doExternalRestore /opt/zimbra/backup/
  • Una vez que la restauración haya comenzado, encontrará la notificación "External Restore Started" en la sección "Notifications" del zimlet administrativo de Zextras Suite.
    • Dicha notificación junto con el resultado del comando incluirán el "Operation ID" de la restauración - asegúrese de tomar nota del mismo.
  • Para verificar el progreso de la restauración puede mirar en el log dedicado localizado en /opt/zimbra/logs/ llamado op_ExternalRestore_[operation ID].log
  • Luego que la Recuperación Externa haya finalizado recibirá una notificación "External Restore Completed".
    • Ahora podrá comprobar que la información ha sido restaurada verificando el contenido de una cuenta con zmprov:
zmmailbox -z -m rick@domain.local gaf
        Id  View      Unread   Msg Count  Path
----------  ----  ----------  ----------  ----------
         1  unkn           0           0  /
        16  docu           0           0  /Briefcase
        10  appo           0           0  /Calendar
        14  mess           0           0  /Chats
         7  cont           0           0  /Contacts
         6  mess           0           0  /Drafts
        13  cont           0           0  /Emailed Contacts
         2  mess        5159        6258  /Inbox
         4  mess           0           0  /Junk
         5  mess           0         118  /Sent
        15  task           0           0  /Tasks
         3  unkn          28          29  /Trash
  • En muchos casos una sola ejecución del External Restore no es suficiente para recuperar todos los elementos; si fuera el caso, ejecute los mismos comandos nuevamente (esto tendrá un nuevo ID de operación y un nuevo log).
  • Cuando la segunda restauración haya finalizado, todos los datos serán restaurados.

3º paso: desduplicación del volumen

Después que la restauración se haya completado todos los datos serán almacenados en el volumen primario Current del servidor. Este paso se refiere a algunas consideraciones útiles que pueden optimizar la configuración de los volúmenes (y ahorrar espacio también).

Desduplicación

Cuando los datos son restaurados mediante External Restore, existe una gran posibilidad de que la deduplicación basada en caché no atrape muchos duplicados: se puede arreglar esto ejecutando una deduplicación integral del volumen en el volumen primario mediante el comando zxsuite hsm doDeduplicate [volume ID], donde [Volume ID] es el ID del volumen en el que desea escanear elementos duplicados.

Creación de un volumen secundario y aplicación de política HSM

Si solían haber volúmenes secundarios en el sistema, los mismos se pueden crear nuevamente y aplicarsele una política HSM para mover la información. Para ejecutar HSM desde la interfá de línea de comando ejecute el comando zxsuite hsm doMoveBlobs como usuario zimbra.

Compresión de los datos

Si no tiene volúmenes secundarios pero de todas formas desea comprimir el volumen primario para ahorrar espacio, entonces necesitará:

  • Crear un nuevo volumen primario marcándolo como "Current" y "Comprimido".
  • Use el comando zxsuite hsm doVolumeToVolumeMove ejecutado como usuario zimbra para mover todo el contenido del volumen original hacia el nuevo. Esta acción comprimirá los elementos en el proceso, siempre que el nuevo volumenesté marcado como "Comprimido"
  • Una vez que la transferencia entre volúmenes haya concluido, borre el volumen original, el cual debería estar ahora vacío.
Personal tools