Zx Backup Mysql Db Corruption/pt
From ZeXtras Suite Wiki
Língua: | English • español • português |
---|
![]() |
Warning! This wiki is outdated and not maintained anymore, please refer to the new Zextras Documentation Hub at https://docs.zextras.com |
![]() |
This documentation is outdated. |
Please refer to https://docs.zextras.com |
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/*
- Renomeie:
- 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/
- Ex. se o caminho do backup fosse /opt/zimbra/backup/ então execute
- 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/
nomeadoop_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.