Mysql Crash Recovery

Revision as of 17:01, 21 November 2007 by Jason (talk | contribs)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Mysql Crash Recovery


BUG "http://bugzilla.zimbra.com/show_bug.cgi?id=15797"


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
  • 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

2)

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

[Make a list of the existing databases] 3)

mkdir /tmp/mysql.sql 

4)

 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 zimbra_mysql_password]

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


for db in `< /tmp/mysql.db.list`;
do
    /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"
done

[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`
do
    mysql -u root --password=''password_for_mysql_root'' -e "drop database $db"
    echo -e "Dropped $db"
done

7)

 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`
do
    mysql -e "create database $db character set utf8"
    echo -e "Created $db \n"
done


12)

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


13) Update Mboxgroup:

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


14)

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: https://wiki.zimbra.com/index.php?title=Mysql_Crash_Recovery Date Modified: 2007-11-21



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