Problem Description
There is a known bug relating to event data in versions 2009R1.4B-2011R1.1. This bug has been patched and will be available in releases later than the versions posted above, but if you're experiencing this error, and/or the nagios service is taking an excessively long time to start, you may have a corrupted mysql table that needs repair.
This KB article exists for historic purposes only, you should attempt the steps in the following KB article first to see if it resolves your problem:
Nagios XI - Crashed Database Tables
Resolving The Problem
Stop the following services:
service nagios stop
service ndo2db stop
service mysqld stop
Run the repair script for mysql tables:
/usr/local/nagiosxi/scripts/repairmysql.sh nagios
Unzip and copy the the following dbmaint file to /usr/local/nagiosxi/cron/. This will overwrite the previous version.
cd /tmp
wget http://assets.nagios.com/downloads/nagiosxi/patches/dbmaint.zip
unzip dbmaint.zip
chmod +x dbmaint.php
cp dbmaint.php /usr/local/nagiosxi/cron
Run the following commands:
service mysqld start
rm -f /usr/local/nagiosxi/var/dbmaint.lock
/usr/local/nagiosxi/cron/dbmaint.php
After running this script, start these services:
service ndo2db start
service nagios start
However, if you see any error output from this script, similar to this one:
SQL: DELETE FROM nagios_logentries WHERE logentry_time < FROM_UNIXTIME(1293570334)
SQL: SQL Error [ndoutils] :</b> Table './nagios/nagios_logentries' is marked
as crashed and last (automatic?) repair failedCLEANING ndoutils TABLE 'notifications'...
You may need to run a force repair on the tables:
service mysqld stop
cd /var/lib/mysql/nagios
myisamchk -r -f nagios_<corrupted_table>
service mysqld start
rm -f /usr/local/nagiosxi/var/dbmaint.lock
/usr/local/nagiosxi/cron/dbmaint.php
Final Thoughts
For any support related questions please visit the Nagios Support Forums at: