Zimbra: ошибки БД

Zimbra прекрасно работает, вот только Вам на почту приходят сообщения о непонятных ошибках в базе данных. Конечно же их можно игнорировать, ведь всё и так работает. А может пора навести порядок, «чтобы не было мучительно больно» потом.

Обычно сообщения об ошибках начинаются так:

Database errors found.
/opt/zimbra/mysql/bin/mysqlcheck --defaults-file=/opt/zimbra/conf/my.cnf -S /opt/zimbra/db/mysql.sock -A -C -s -u root --password=XXXXXXXX

В принципе вес понятно: у Вас в БД имеются ошибки и Вам может помочь вот эта длинная команда. Узнать пароль на БД MySQL можно выполнив еще одну команду от пользователя zimbra:

zmlocalconfig -s | grep mysql | grep password

Вот только не все ошибки лечатся такой командой. О них и поговорим…
Рассмотрим примеры самых распространенных сообщений об ошибках в БД zimbra:

1.

Database errors found.
/opt/zimbra/mysql/bin/mysqlcheck --defaults-file=/opt/zimbra/conf/my.cnf -S /opt/zimbra/db/mysql.sock -A -C -s -u root --password=XXXXXXXX
mboxgroup1.appointment
 error    : Table upgrade required. Please do "REPAIR TABLE `appointment`" or dump/reload to fix it!
 mboxgroup1.data_source_item
 error    : Table upgrade required. Please do "REPAIR TABLE `data_source_item`" or dump/reload to fix it!
 mboxgroup1.imap_folder
 error    : Table upgrade required. Please do "REPAIR TABLE `imap_folder`" or dump/reload to fix it!
 mboxgroup1.mail_item
 error    : Table upgrade required. Please do "REPAIR TABLE `mail_item`" or dump/reload to fix it!
 mboxgroup1.pop3_message
 error    : Table upgrade required. Please do "REPAIR TABLE `pop3_message`" or dump/reload to fix it!
...
и так далее еще очень много строк...
...

Наиболее вероятная причина ошибки — невнимательность при обновлении в прошлом с версии 6.x на 7.x. В release notes есть раздел «After the Upgrade is Complete» (после завершения обновления). После перехода с версии 6 на более старшую надо просто выполнить еще один скрипт (он уже есть на сервере):

1. Переключаемся на пользователя zimbra
su - zimbra
2. Останавливаем сервис mailboxd
zmmailboxdctl stop
3. Запускаем скрипт perl для обновления таблиц
/opt/zimbra/libexec/scripts/migrate20100913-Mysql51.pl
4. Запускаем сервис mailboxd
zmmailboxdctl start
5. Проверяем БД на ошибки
/opt/zimbra/libexec/zmdbintegrityreport -r

2.

Database errors found.
/opt/zimbra/mysql/bin/mysqlcheck --defaults-file=/opt/zimbra/conf/my.cnf -S /opt/zimbra/db/mysql.sock -A -C -s -u root --password=XXXXXXXX
 mysql.general_log
 Error    : You can't use locks with log tables.
 mysql.slow_log
 Error    : You can't use locks with log tables.

Данная проблема лечится еще проще:

1. Останавливаем zimbra
2. Переходим в каталог БД и удаляем файлы *log.frm (лучше их перенести куда-нибудь, удалить всегда успеется):
cd /opt/zimbra/db/data/mysql
mv *log.frm /tmp/ 
3. Стартуем zimbra, новые (правильные) версии файлов *log.frm будут созданы автоматически
4. Проверяем БД на ошибки
su - zimbra
/opt/zimbra/libexec/zmdbintegrityreport -r

3.

Database errors found.
/opt/zimbra/mysql/bin/mysqlcheck --defaults-file=/opt/zimbra/conf/my.cnf -S /opt/zimbra/db/mysql.sock -A -C -s -u root --password=XXXXXXXX
mboxgroup100.revision_dumpster
 Error    : Incorrect information in file: './mboxgroup100/revision_dumpster.frm'
 error    : Corrupt
 mboxgroup19.mail_item_dumpster
 Error    : Incorrect information in file: './mboxgroup19/mail_item_dumpster.frm'
 error    : Corrupt

Повреждение базы данных после сбоя, плохо. Нам поможет то, что все эти таблицы, находящиеся в разных mboxgroup — одинаковы.

1. Останавливаем zimbra
2. Переходим в каталог БД
cd /opt/zimbra/db/data
3. Копируем файлы frm вместо поврежденных из другого каталога mboxgroup. Например:
cp mboxgroup1/revision_dumpster.frm mboxgroup100/
cp mboxgroup1/mail_item_dumpster.frm mboxgroup19/
3. Стартуем zimbra
4. Проверяем БД на ошибки
su - zimbra
/opt/zimbra/libexec/zmdbintegrityreport -r

В случае появления битых таблиц делаем следующее

su - zimbra
Для битой таблицы выполняем оптимизацию, например так:
mysql -e 'use mboxgroup24; optimize table mail_item;'

Не коллекционируйте ошибки… избавьтесь от них!

Взято тут https://as.zabedu.ru/linux/zcs/zimbra-errors

Добавить комментарий