Zx Backup Mysql Db Corruption/pt

From ZeXtras Suite Wiki

Jump to: navigation, search
Língua: English  • español • português
ZxBackup logo box.png
Available since version: 0.87
Latest Version: 2.12.2
Released on: January 2nd, 2019
Compatibility List
Admin Guide
FAQ
Troubleshooting
Backup Initialization
ZspBackup logo box.png

Introdução

Este guia passo a passo contém informação útil para restaurar informação da base de dados MariaDB corrompida. Aplica-se tanto a infraestruturas compostas por um servidor quanto a multi-store, que tenham um só servidor MariaDB.


Perda da base de dados e volumes no Zimbra

Tendo em conta que a informação dos volumes está armazenada na base de dados, a qual tem sido perdida, os mesmos não terão uso. Certifique-se de contar com espaço suficiente antes de continuar. Se não for assim, exclua ou mova os volumes para outro dispositivo de armazenamento.

1º passo: reinicializar a base de dados

Este primeiro passo para recuperar a base de dados para um estado consistente, requer reinicializar a própria base de dados para seu estado inicial.

Para isso faça o seguinte:

  • Detenha todos os serviços em execução com o comando zmcontrol stop como usuário zimbra.
  • Renome *ou* esvazie a pasta da base de dados atual - por padrão /opt/zimbra/db/data/
    • Renomeie: mv /opt/zimbra/db/data/ /opt/zimbra/db/data_old/
    • Esvazie: rm -rf /opt/zimbra/db/data/*
  • depois de esvaziar a base de dados reinicialize-a executando como usuário 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

As senhas e os IDs das contas de correio não serão trocados.

  • depois de reinicializar a base de dados inicie todos os serviços executando o seguinte comando como usuário zimbra zmcontrol start

Se tudo der certo, depois que os serviços sejan inicializados deveriam aparecer os grupos de caixas que tem sido recriados:

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º passo: Restauração dos dados

Embora a base de dados foi levantada e está funcionando, encontra-se vazia. Pode-se apreciar isto olhando no conteúdo de qualquer conta com 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 a informação se utilizará o comando doExternalRestore de Zextras Backup.

  • Para começar com a restauração inicie um External Restore executando zxsuite backup doExternalRestore [/ruta del backup] como usuário zimbra.
    • Ex. se o caminho do backup fosse /opt/zimbra/backup/ então execute zxsuite backup doExternalRestore /opt/zimbra/backup/
  • Quando a restauração começar, encontrará a notificação "External Restore Started" na seção "Notifications" do zimlet administrativo Zextras Suite.
    • Essa notificação junto com o resultado do comando incluirão o "Operation ID" da restauração - certifique-se de tomar nota do mesmo.
  • Para verificar o progresso da restauração pode olhar o log dedicado localizado em /opt/zimbra/logs/ nomeado op_ExternalRestore_[operation ID].log
  • Quando a Recuperação Externa tenha finalizado você receberá uma notificação "External Restore Completed".
    • Agora poderá comprovar que a informação tem sido restaurada verificando o conteúdo de uma conta com 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
  • Em muitos casos uma só execução do External Restore não é suficiente para recuperar todos os elementos; se for o caso, execute os mesmos comandos novamente (isto terá um novo ID de operação e um novo log).
  • Quando a segunda restauração tenha finalizado, todos os dados serão restaurados.

3º paso: deduplicação do volume

Depois que a restauração tenha sido completada todos os dados serão armazenados no volume primário Current do servidor. Este passo refer-se a algumas considerações úteis que podem otimizar a configuração dos volumes (e poupar espaço também).

Deduplicação

Quando os dados são restaurados mediante External Restore, existe uma grande posibilidade que a deduplicação baseada em caché não obtenha muitos duplicados: isso se puede solucionar executando uma deduplicação integral do volume no volume primário mediante o comando zxsuite hsm doDeduplicate [volume ID], onde [Volume ID] é o ID do volume no qual deseja escanear elementos duplicados.

Criação de um volume secundário e aplicação de política HSM

Se costumava ter volumes secundários no sistema, os mesmos se podem criar novamente e aplicar uma política HSM para mover a informação. Para executar HSM desde a interface de linha de comando execute o comando zxsuite hsm doMoveBlobs como usuário zimbra.

Compressão dos dados

Se não tiver volumes secundários mas ainda quer comprimir o volume primário para ganhar espaço, nesse caso necessitará:

  • Criar um novo volume primário e estabelecé-lo como "Current" e "Comprimido".
  • Use o comando zxsuite hsm doVolumeToVolumeMove executado como usuário zimbra para mover todo o conteúdo do volume original para o novo. Esta ação comprimirá os elementos no processo, sempre que o novo volume esteja marcado como "Comprimido"
  • Uma vez que a transferência entre volumes tenha finalizado, apague o volume original, o qual devería estar agora vazio.
Personal tools