Mysql Crash Recovery

Revision as of 05:06, 1 December 2008 by Jholder (talk | contribs) (added 6)

Mysql Crash Recovery

BUG ""

Mysql Crash recovery is performed when Mysql stops responding and there is error in the /opt/zimbra/db/data/hostname.err [Please check the BUG above for more information]

Steps to perform Recovery:

  • Edit /opt/zimbra/conf/my.cnf: Put an entry innodb_force_recovery = 3 in the [mysqld] section (in extreme cases where mysql still will not start up, replace 3 with 6)
  • Dump the database: mysqldump zimbra and mboxgroup DB's
  • Drop all Database's.
  • Create all Database's.
  • Restore dump data.

1) Edit the /opt/zimbra/conf/my.cnf file and put innodb_force_recovery = 3 under the [mysqld] section

Save the file and start mysql with mysql.server start


mysql -NB -e "show databases" | grep mbox > /tmp/mysql.db.list

[Make a list of the existing databases] 3)

mkdir /tmp/mysql.sql 


 mysqldump zimbra -S /opt/zimbra/db/mysql.sock -u root --password=''password_for_mysql_root'' > /tmp/mysql.sql/zimbra.sql 

[Mysql Root Password you can get this by zmlocalconfig -s -m nokey mysql_root_password]

5) Dumping Databases: Run the following command from the prompt:

for db in `< /tmp/mysql.db.list`;
    /opt/zimbra/mysql/bin/mysqldump $db -S /opt/zimbra/db/mysql.sock -u root --password=password_for_mysql_root > /tmp/mysql.sql/$db.sql
    echo -e "Dumped $db\n"

[Mysql Zimbra Password You can get the password: zmlocalconfig -s -m nokey zimbra_mysql_password]

6) Drop the Database:

for db in `< /tmp/mysql.db.list`
    mysql -u root --password=''password_for_mysql_root'' -e "drop database $db"
    echo -e "Dropped $db"


 mysql -e "drop database zimbra" 

8) Run Mysql in Non-Recovery Mode:

Remove the innodb_force_recovery = 3 from the /opt/zimbra/conf/my.cnf file.

9)Stop Mysql Server and Start again.

10)Create Database:

 mysql -e "create database zimbra character set utf8" 

11) Create the existed Database:

for db in `< /tmp/mysql.db.list`
    mysql -e "create database $db character set utf8"
    echo -e "Created $db \n"


mysql zimbra < /tmp/mysql.sql/zimbra.sql

13) Update Mboxgroup:

for sql in /tmp/mysql.sql/mbox*
    mysql `basename $sql .sql` < $sql
    echo -e "Updated `basename $sql .sql` \n"


zmcontrol start

15) Verify mail delivery and account creation & deletion. Check /opt/zimbra/log/mailbox.log for database errors.

Verified Against: Zimbra Collaboration Suite 4.5.6 Date Created: 8/13/2007
Article ID: Date Modified: 2008-12-01

Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search